From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 876C2C64E7A for ; Fri, 27 Nov 2020 12:14:53 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 346C0208D5 for ; Fri, 27 Nov 2020 12:14:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 346C0208D5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A85226EDA0; Fri, 27 Nov 2020 12:12:24 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id B93046ED98; Fri, 27 Nov 2020 12:12:22 +0000 (UTC) IronPort-SDR: EVEnetAMC9EV5klCgK7fUHaLtcZH+EAOdqmCn4GmerNrR/A4AFISe0PBzhXrATt9NKjeB6agnU ItAH+PT1i1Nw== X-IronPort-AV: E=McAfee;i="6000,8403,9817"; a="168883870" X-IronPort-AV: E=Sophos;i="5.78,374,1599548400"; d="scan'208";a="168883870" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2020 04:12:22 -0800 IronPort-SDR: VLw7Kyboc/CaW6U9kXljsLS4vvyHwGYoGFI2tw8X7f2c7ToIfy12CnV7qVZzOwuwqWcAfknh3j Pk9xEYmyzihw== X-IronPort-AV: E=Sophos;i="5.78,374,1599548400"; d="scan'208";a="548030032" Received: from mjgleeso-mobl.ger.corp.intel.com (HELO mwauld-desk1.ger.corp.intel.com) ([10.251.85.2]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2020 04:12:20 -0800 From: Matthew Auld To: intel-gfx@lists.freedesktop.org Subject: [RFC PATCH 153/162] drm/i915: Implement eviction locking v2 Date: Fri, 27 Nov 2020 12:07:09 +0000 Message-Id: <20201127120718.454037-154-matthew.auld@intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201127120718.454037-1-matthew.auld@intel.com> References: <20201127120718.454037-1-matthew.auld@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dri-devel@lists.freedesktop.org, =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KClVzZSBhIHNlcGFyYXRlIGFjcXVpcmUgY29udGV4dCBsaXN0IGFuZCBhIHNlcGFyYXRlIGxv Y2tpbmcgZnVuY3Rpb24KZm9yIG9iamVjdHMgdGhhdCBhcmUgbG9ja2VkIGZvciBldmljdGlvbi4g VGhlc2Ugb2JqZWN0cyBhcmUgdGhlbgpwcm9wZXJseSByZWZlcmVuY2VkIHdoaWxlIG9uIHRoZSBs aXN0IGFuZCBjYW4gYmUgdW5sb2NrZWQgZWFybHkgaW4KdGhlIHd3IHRyYW5zYWN0aW9uLgoKQ28t ZGV2ZWxvcGVkLWJ5OiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5p bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0 cm9tQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1h YXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IE1hdHRoZXcgQXVsZCA8bWF0dGhl dy5hdWxkQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f b2JqZWN0LmggICAgfCA2NyArKysrKysrKysrKysrKysrKy0tCiAuLi4vZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAgNSArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMgIHwgMTQgKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fd3cuYyAgICAgICAgICAgIHwgNTEgKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3d3LmggICAgICAgICAgICB8ICAzICsKIDUgZmlsZXMgY2hhbmdl ZCwgMTIyIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaAppbmRleCA1MmEzNmI0MDUyZjAuLmUyMzdiMGZiMGU3 OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaApAQCAtMTU4 LDYgKzE1OCwzMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X29iamVjdF9oZWxkX3NoYXJl ZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQlhc3NlcnRfb2JqZWN0X2hlbGQo b2JqKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQKK2k5MTVfZ2VtX29iamVjdF9sb2NrX3RvX2V2 aWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCQkgICAgICBzdHJ1Y3QgaTkx NV9nZW1fd3dfY3R4ICp3dykKK3sKKwlpbnQgcmV0OworCisJaWYgKHd3LT5pbnRyKQorCQlyZXQg PSBkbWFfcmVzdl9sb2NrX2ludGVycnVwdGlibGUob2JqLT5iYXNlLnJlc3YsICZ3dy0+Y3R4KTsK KwllbHNlCisJCXJldCA9IGRtYV9yZXN2X2xvY2sob2JqLT5iYXNlLnJlc3YsICZ3dy0+Y3R4KTsK KworCWlmICghcmV0KSB7CisJCWxpc3RfYWRkX3RhaWwoJm9iai0+b2JqX2xpbmssICZ3dy0+ZXZp Y3Rpb25fbGlzdCk7CisJCWk5MTVfZ2VtX29iamVjdF9nZXQob2JqKTsKKwkJb2JqLT5ldmljdF9s b2NrZWQgPSB0cnVlOworCX0KKworCUdFTV9XQVJOX09OKHJldCA9PSAtRUFMUkVBRFkpOworCWlm IChyZXQgPT0gLUVERUFETEspIHsKKwkJd3ctPmNvbnRlbmRlZF9ldmljdCA9IHRydWU7CisJCXd3 LT5jb250ZW5kZWQgPSBpOTE1X2dlbV9vYmplY3RfZ2V0KG9iaik7CisJfQorCisJcmV0dXJuIHJl dDsKK30KKwogc3RhdGljIGlubGluZSBpbnQgX19pOTE1X2dlbV9vYmplY3RfbG9jayhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCQkgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAq d3csCiAJCQkJCSBib29sIGludHIpCkBAIC0xNjksMTMgKzE5NSwyNSBAQCBzdGF0aWMgaW5saW5l IGludCBfX2k5MTVfZ2VtX29iamVjdF9sb2NrKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCiAJZWxzZQogCQlyZXQgPSBkbWFfcmVzdl9sb2NrKG9iai0+YmFzZS5yZXN2LCB3dyA/ICZ3 dy0+Y3R4IDogTlVMTCk7CiAKLQlpZiAoIXJldCAmJiB3dykKKwlpZiAoIXJldCAmJiB3dykgewog CQlsaXN0X2FkZF90YWlsKCZvYmotPm9ial9saW5rLCAmd3ctPm9ial9saXN0KTsKLQlpZiAocmV0 ID09IC1FQUxSRUFEWSkKLQkJcmV0ID0gMDsKKwkJb2JqLT5ldmljdF9sb2NrZWQgPSBmYWxzZTsK Kwl9CiAKLQlpZiAocmV0ID09IC1FREVBRExLKQorCWlmIChyZXQgPT0gLUVBTFJFQURZKSB7CisJ CXJldCA9IDA7CisJCS8qIFdlJ3ZlIGFscmVhZHkgZXZpY3RlZCBhbiBvYmplY3QgbmVlZGVkIGZv ciB0aGlzIGJhdGNoLiAqLworCQlpZiAob2JqLT5ldmljdF9sb2NrZWQpIHsKKwkJCWxpc3RfbW92 ZV90YWlsKCZvYmotPm9ial9saW5rLCAmd3ctPm9ial9saXN0KTsKKwkJCWk5MTVfZ2VtX29iamVj dF9wdXQob2JqKTsKKwkJCW9iai0+ZXZpY3RfbG9ja2VkID0gZmFsc2U7CisJCX0KKwl9CisKKwlp ZiAocmV0ID09IC1FREVBRExLKSB7CisJCXd3LT5jb250ZW5kZWRfZXZpY3QgPSBmYWxzZTsKIAkJ d3ctPmNvbnRlbmRlZCA9IGk5MTVfZ2VtX29iamVjdF9nZXQob2JqKTsKKwl9CiAKIAlyZXR1cm4g cmV0OwogfQpAQCAtNTgwLDYgKzYxOCwyNyBAQCBpOTE1X2dlbV9vYmplY3RfaW52YWxpZGF0ZV9m cm9udGJ1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlfX2k5MTVfZ2Vt X29iamVjdF9pbnZhbGlkYXRlX2Zyb250YnVmZmVyKG9iaiwgb3JpZ2luKTsKIH0KIAorLyoqCisg KiBpOTE1X2dlbV9nZXRfbG9ja2luZ19jdHggLSBHZXQgdGhlIGxvY2tpbmcgY29udGV4dCBvZiBh IGxvY2tlZCBvYmplY3QKKyAqIGlmIGFueS4KKyAqCisgKiBAb2JqOiBUaGUgb2JqZWN0IHRvIGdl dCB0aGUgbG9ja2luZyBjdHggZnJvbQorICoKKyAqIFJFVFVSTjogVGhlIGxvY2tpbmcgY29udGV4 dCBpZiB0aGUgb2JqZWN0IHdhcyBsb2NrZWQgdXNpbmcgYSBjb250ZXh0LgorICogTlVMTCBvdGhl cndpc2UuCisgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqCitpOTE1 X2dlbV9nZXRfbG9ja2luZ19jdHgoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKK3sKKwlzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKmN0eDsKKworCWN0eCA9IG9iai0+YmFzZS5y ZXN2LT5sb2NrLmN0eDsKKwlpZiAoIWN0eCkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXR1cm4gY29u dGFpbmVyX29mKGN0eCwgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCwgY3R4KTsKK30KKwogI2lmZGVm IENPTkZJR19NTVVfTk9USUZJRVIKIHN0YXRpYyBpbmxpbmUgYm9vbAogaTkxNV9nZW1fb2JqZWN0 X2lzX3VzZXJwdHIoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAppbmRleCAzMzFkMTEz ZjdkNWIuLmM0MmMwZDNkNWQ2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9vYmplY3RfdHlwZXMuaApAQCAtMTQyLDYgKzE0MiwxMSBAQCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCB7CiAJICovCiAJc3RydWN0IGxpc3RfaGVhZCBvYmpfbGluazsKIAorCS8q KgorCSAqIEBldmljdF9sb2NrZWQ6IFdoZXRoZXIgQG9ial9saW5rIHNpdHMgb24gdGhlIGV2aWN0 aW9uX2xpc3QKKwkgKi8KKwlib29sIGV2aWN0X2xvY2tlZDsKKwogCS8qKiBTdG9sZW4gbWVtb3J5 IGZvciB0aGlzIG9iamVjdCwgaW5zdGVhZCBvZiBiZWluZyBiYWNrZWQgYnkgc2htZW0uICovCiAJ c3RydWN0IGRybV9tbV9ub2RlICpzdG9sZW47CiAJdW5pb24gewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fc2hyaW5rZXIuYwppbmRleCAyNzY3NDA0OGYxN2QuLjU5ZDBmMTRi OTBlYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlu a2VyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMK QEAgLTEwMCw2ICsxMDAsNyBAQCBpOTE1X2dlbV9zaHJpbmsoc3RydWN0IGk5MTVfZ2VtX3d3X2N0 eCAqd3csCiAJCXVuc2lnbmVkIGxvbmcgKm5yX3NjYW5uZWQsCiAJCXVuc2lnbmVkIGludCBzaHJp bmspCiB7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAljb25zdCBzdHJ1Y3Qg ewogCQlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0OwogCQl1bnNpZ25lZCBpbnQgYml0OwpAQCAtMTY0 LDcgKzE2NSw2IEBAIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dywK IAkgKi8KIAlmb3IgKHBoYXNlID0gcGhhc2VzOyBwaGFzZS0+bGlzdDsgcGhhc2UrKykgewogCQlz dHJ1Y3QgbGlzdF9oZWFkIHN0aWxsX2luX2xpc3Q7Ci0JCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmo7CiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAkJaWYgKChzaHJpbmsgJiBwaGFz ZS0+Yml0KSA9PSAwKQpAQCAtMTk3LDYgKzE5NywxMCBAQCBpOTE1X2dlbV9zaHJpbmsoc3RydWN0 IGk5MTVfZ2VtX3d3X2N0eCAqd3csCiAJCQlpZiAoIWNhbl9yZWxlYXNlX3BhZ2VzKG9iaikpCiAJ CQkJY29udGludWU7CiAKKwkJCS8qIEFscmVhZHkgbG9ja2VkIHRoaXMgb2JqZWN0PyAqLworCQkJ aWYgKHd3ICYmIHd3ID09IGk5MTVfZ2VtX2dldF9sb2NraW5nX2N0eChvYmopKQorCQkJCWNvbnRp bnVlOworCiAJCQlpZiAoIWtyZWZfZ2V0X3VubGVzc196ZXJvKCZvYmotPmJhc2UucmVmY291bnQp KQogCQkJCWNvbnRpbnVlOwogCkBAIC0yMDksNyArMjEzLDExIEBAIGk5MTVfZ2VtX3Nocmluayhz dHJ1Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dywKIAkJCQkJaWYgKCFpOTE1X2dlbV9vYmplY3RfdHJ5 bG9jayhvYmopKQogCQkJCQkJZ290byBza2lwOwogCQkJCX0gZWxzZSB7Ci0JCQkJCWVyciA9IGk5 MTVfZ2VtX29iamVjdF9sb2NrKG9iaiwgd3cpOworCQkJCQllcnIgPSBpOTE1X2dlbV9vYmplY3Rf bG9ja190b19ldmljdChvYmosIHd3KTsKKwkJCQkJaWYgKGVyciA9PSAtRUFMUkVBRFkpIHsKKwkJ CQkJCWVyciA9IDA7CisJCQkJCQlnb3RvIHNraXA7CisJCQkJCX0KIAkJCQkJaWYgKGVycikKIAkJ CQkJCWdvdG8gc2tpcDsKIAkJCQl9CkBAIC0yMzUsNiArMjQzLDggQEAgaTkxNV9nZW1fc2hyaW5r KHN0cnVjdCBpOTE1X2dlbV93d19jdHggKnd3LAogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsK IAl9CisJaWYgKHd3KQorCQlpOTE1X2dlbV93d19jdHhfdW5sb2NrX2V2aWN0aW9ucyh3dyk7CiAK IAlpZiAoc2hyaW5rICYgSTkxNV9TSFJJTktfQk9VTkQpCiAJCWludGVsX3J1bnRpbWVfcG1fcHV0 KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3d3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV93dy5j CmluZGV4IDQzOTYwZDg1OTVlYi4uODExYmY3Njc3ZDc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV93dy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3d3LmMKQEAgLTEwLDI0ICsxMCw0NSBAQCB2b2lkIGk5MTVfZ2VtX3d3X2N0eF9pbml0KHN0 cnVjdCBpOTE1X2dlbV93d19jdHggKnd3LCBib29sIGludHIpCiB7CiAJd3dfYWNxdWlyZV9pbml0 KCZ3dy0+Y3R4LCAmcmVzZXJ2YXRpb25fd3dfY2xhc3MpOwogCUlOSVRfTElTVF9IRUFEKCZ3dy0+ b2JqX2xpc3QpOworCUlOSVRfTElTVF9IRUFEKCZ3dy0+ZXZpY3Rpb25fbGlzdCk7CiAJd3ctPmlu dHIgPSBpbnRyOwogCXd3LT5jb250ZW5kZWQgPSBOVUxMOworCXd3LT5jb250ZW5kZWRfZXZpY3Qg PSBmYWxzZTsKK30KKwordm9pZCBpOTE1X2dlbV93d19jdHhfdW5sb2NrX2V2aWN0aW9ucyhzdHJ1 Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLCAqbmV4dDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIG5leHQsICZ3dy0+ ZXZpY3Rpb25fbGlzdCwgb2JqX2xpbmspIHsKKwkJbGlzdF9kZWwoJm9iai0+b2JqX2xpbmspOwor CQlHRU1fV0FSTl9PTighb2JqLT5ldmljdF9sb2NrZWQpOworCQlpOTE1X2dlbV9vYmplY3RfdW5s b2NrKG9iaik7CisJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKKwl9CiB9CiAKIHN0YXRpYyB2 b2lkIGk5MTVfZ2VtX3d3X2N0eF91bmxvY2tfYWxsKHN0cnVjdCBpOTE1X2dlbV93d19jdHggKnd3 KQogewotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwgKm5leHQ7CiAKLQl3aGlsZSAoKG9iaiA9IGxpc3RfZmlyc3RfZW50 cnlfb3JfbnVsbCgmd3ctPm9ial9saXN0LCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwgb2Jq X2xpbmspKSkgeworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIG5leHQsICZ3dy0+b2Jq X2xpc3QsIG9ial9saW5rKSB7CiAJCWxpc3RfZGVsKCZvYmotPm9ial9saW5rKTsKKwkJR0VNX1dB Uk5fT04ob2JqLT5ldmljdF9sb2NrZWQpOwogCQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7 CiAJfQorCisJaTkxNV9nZW1fd3dfY3R4X3VubG9ja19ldmljdGlvbnMod3cpOwogfQogCiB2b2lk IGk5MTVfZ2VtX3d3X3VubG9ja19zaW5nbGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKIHsKKwlib29sIGV2aWN0X2xvY2tlZCA9IG9iai0+ZXZpY3RfbG9ja2VkOworCiAJbGlzdF9k ZWwoJm9iai0+b2JqX2xpbmspOwogCWk5MTVfZ2VtX29iamVjdF91bmxvY2sob2JqKTsKKwlpZiAo ZXZpY3RfbG9ja2VkKQorCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiB9CiAKIHZvaWQgaTkx NV9nZW1fd3dfY3R4X2Zpbmkoc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3cpCkBAIC0zOSwyNyAr NjAsMzMgQEAgdm9pZCBpOTE1X2dlbV93d19jdHhfZmluaShzdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4 ICp3dykKIAogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV93d19jdHhfYmFja29mZihzdHJ1Y3Qg aTkxNV9nZW1fd3dfY3R4ICp3dykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq ID0gd3ctPmNvbnRlbmRlZDsKIAlpbnQgcmV0ID0gMDsKIAotCWlmIChXQVJOX09OKCF3dy0+Y29u dGVuZGVkKSkKKwlpZiAoV0FSTl9PTighb2JqKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpOTE1 X2dlbV93d19jdHhfdW5sb2NrX2FsbCh3dyk7CiAJaWYgKHd3LT5pbnRyKQotCQlyZXQgPSBkbWFf cmVzdl9sb2NrX3Nsb3dfaW50ZXJydXB0aWJsZSh3dy0+Y29udGVuZGVkLT5iYXNlLnJlc3YsICZ3 dy0+Y3R4KTsKKwkJcmV0ID0gZG1hX3Jlc3ZfbG9ja19zbG93X2ludGVycnVwdGlibGUob2JqLT5i YXNlLnJlc3YsICZ3dy0+Y3R4KTsKIAllbHNlCi0JCWRtYV9yZXN2X2xvY2tfc2xvdyh3dy0+Y29u dGVuZGVkLT5iYXNlLnJlc3YsICZ3dy0+Y3R4KTsKKwkJZG1hX3Jlc3ZfbG9ja19zbG93KG9iai0+ YmFzZS5yZXN2LCAmd3ctPmN0eCk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CiAKIAkvKgotCSAq IFVubG9ja2luZyB0aGUgY29udGVuZGVkIGxvY2sgYWdhaW4sIGFzIG1pZ2h0IG5vdCBuZWVkIGl0 IGluCi0JICogdGhlIHJldHJpZWQgdHJhbnNhY3Rpb24uIFRoaXMgZG9lcyBub3QgaW5jcmVhc2Ug c3RhcnZhdGlvbiwKLQkgKiBidXQgaXQncyBvcGVuaW5nIHVwIGZvciBhIHdha2V1cCBmbG9vZCBp ZiB0aGVyZSBhcmUgbWFueQotCSAqIHRyYW5zYWN0aW9ucyByZWxheGluZyBvbiB0aGlzIG9iamVj dC4KKwkgKiBVbmxvY2tpbmcgdGhlIGNvbnRlbmRlZCBsb2NrIGFnYWluLCBpZiBpdCB3YXMgbG9j a2VkIGZvciBldmljdGlvbi4KKwkgKiBXZSB3aWxsIG1vc3QgbGlrZWx5IG5vdCBuZWVkIGl0IGlu IHRoZSByZXRyaWVkIHRyYW5zYWN0aW9uLgogCSAqLwotCWlmICghcmV0KQotCQlkbWFfcmVzdl91 bmxvY2sod3ctPmNvbnRlbmRlZC0+YmFzZS5yZXN2KTsKKwlpZiAod3ctPmNvbnRlbmRlZF9ldmlj dCkgeworCQlkbWFfcmVzdl91bmxvY2sob2JqLT5iYXNlLnJlc3YpOworCX0gZWxzZSB7CisJCW9i ai0+ZXZpY3RfbG9ja2VkID0gZmFsc2U7CisJCWxpc3RfYWRkX3RhaWwoJm9iai0+b2JqX2xpbmss ICZ3dy0+b2JqX2xpc3QpOworCX0KIAotCWk5MTVfZ2VtX29iamVjdF9wdXQod3ctPmNvbnRlbmRl ZCk7CitvdXQ6CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCXd3LT5jb250ZW5kZWQgPSBO VUxMOwogCiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3d3LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV93dy5oCmluZGV4IGY2 YjFhNzk2NjY3Yi4uMTE3OTNiMTcwY2MyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV93dy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3d3LmgK QEAgLTEwLDE1ICsxMCwxOCBAQAogc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCB7CiAJc3RydWN0IHd3 X2FjcXVpcmVfY3R4IGN0eDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG9ial9saXN0OworCXN0cnVjdCBs aXN0X2hlYWQgZXZpY3Rpb25fbGlzdDsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY29u dGVuZGVkOwogCXVuc2lnbmVkIHNob3J0IGludHI7CiAJdW5zaWduZWQgc2hvcnQgbG9vcDsKKwl1 bnNpZ25lZCBzaG9ydCBjb250ZW5kZWRfZXZpY3Q7CiB9OwogCiB2b2lkIGk5MTVfZ2VtX3d3X2N0 eF9pbml0KHN0cnVjdCBpOTE1X2dlbV93d19jdHggKmN0eCwgYm9vbCBpbnRyKTsKIHZvaWQgaTkx NV9nZW1fd3dfY3R4X2Zpbmkoc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqY3R4KTsKIGludCBfX211 c3RfY2hlY2sgaTkxNV9nZW1fd3dfY3R4X2JhY2tvZmYoc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAq Y3R4KTsKIHZvaWQgaTkxNV9nZW1fd3dfdW5sb2NrX3NpbmdsZShzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKTsKK3ZvaWQgaTkxNV9nZW1fd3dfY3R4X3VubG9ja19ldmljdGlvbnMoc3Ry dWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3cpOwogCiAvKiBJbnRlcm5hbCBmdW5jdGlvbnMgdXNlZCBi eSB0aGUgaW5saW5lcyEgRG9uJ3QgdXNlLiAqLwogc3RhdGljIGlubGluZSBpbnQgX19pOTE1X2dl bV93d19maW5pKHN0cnVjdCBpOTE1X2dlbV93d19jdHggKnd3LCBpbnQgZXJyKQotLSAKMi4yNi4y CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK