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.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,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 311C4C4743C for ; Mon, 21 Jun 2021 19:37:17 +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 AEF0061353 for ; Mon, 21 Jun 2021 19:37:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AEF0061353 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 42A886E40C; Mon, 21 Jun 2021 19:37:08 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 198A06E408; Mon, 21 Jun 2021 19:37:05 +0000 (UTC) IronPort-SDR: uygZZSYsZf6FQFkE2FTAV9vY1cX6Pydtows08gnEBnxGQsmRC58waMkzO5YCt1gzoYP599AOJY DpR9v0DtnNBw== X-IronPort-AV: E=McAfee;i="6200,9189,10022"; a="292548371" X-IronPort-AV: E=Sophos;i="5.83,289,1616482800"; d="scan'208";a="292548371" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2021 12:37:04 -0700 IronPort-SDR: C0AoWzX1qLUkqRwgtAr9wfZkgUR4nKA4lEIxm2xvP49wBMB+Jk0x9uRxL/NF3lBF1qmu7Zi1T1 jDFAHWbCo3TQ== X-IronPort-AV: E=Sophos;i="5.83,289,1616482800"; d="scan'208";a="489989537" Received: from gperry-mobl.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.94]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2021 12:37:03 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Date: Mon, 21 Jun 2021 21:36:43 +0200 Message-Id: <20210621193644.105627-3-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210621193644.105627-1-thomas.hellstrom@linux.intel.com> References: <20210621193644.105627-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v6 2/3] drm/i915/ttm: Adjust gem flags and caching settings after a move X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , matthew.auld@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" QWZ0ZXIgYSBUVE0gbW92ZSBvciBvYmplY3QgaW5pdCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaTkx NSBnZW0gZmxhZ3MgYW5kCmNhY2hpbmcgc2V0dGluZ3MgdG8gcmVmbGVjdCB0aGUgbmV3IHBsYWNl bWVudC4gQ3VycmVudGx5IGNhY2hpbmcgc2V0dGluZ3MKYXJlIG5vdCBjaGFuZ2VkIGR1cmluZyB0 aGUgbGlmZXRpbWUgb2YgYW4gb2JqZWN0LCBhbHRob3VnaCB0aGF0IG1pZ2h0CmNoYW5nZSBtb3Zp bmcgZm9yd2FyZCBpZiB3ZSBydW4gaW50byBwZXJmb3JtYW5jZSBpc3N1ZXMgb3IgaXNzdWVzIHdp dGgKV0Mgc3lzdGVtIHBhZ2UgYWxsb2NhdGlvbnMuCkFsc28gaW50cm9kdWNlIGdwdV9iaW5kc19p b21lbSgpIGFuZCBjcHVfbWFwc19pb21lbSgpIHRvIGNsZWFuIHVwIHRoZQp2YXJpb3VzIHdheXMg d2UgcHJldmlvdXNseSB1c2VkIHRvIGRldGVjdCB0aGlzLgpGaW5hbGx5LCBpbml0aWFsaXplIHRo ZSBUVE0gb2JqZWN0IHJlc2VydmVkIHRvIGJlIGFibGUgdG8gdXBkYXRlCmZsYWdzIGFuZCBjYWNo aW5nIGJlZm9yZSBhbnlvbmUgZWxzZSBnZXRzIGhvbGQgb2YgdGhlIG9iamVjdC4KClNpZ25lZC1v ZmYtYnk6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KCnY2 OgotIFJlYmFzZSBvbiBhY2NlbGVyYXRlZCB0dG0gbW92ZXMuCi0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX3R0bS5jIHwgMTQzICsrKysrKysrKysrKysrKysrKy0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdHRtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdHRtLmMKaW5kZXggYjVkZDNiNzAzN2Y0Li45NjZi MjkyZDA3ZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90 dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdHRtLmMKQEAgLTkx LDYgKzkxLDI2IEBAIHN0YXRpYyBpbnQgaTkxNV90dG1fZXJyX3RvX2dlbShpbnQgZXJyKQogCXJl dHVybiBlcnI7CiB9CiAKK3N0YXRpYyBib29sIGdwdV9iaW5kc19pb21lbShzdHJ1Y3QgdHRtX3Jl c291cmNlICptZW0pCit7CisJcmV0dXJuIG1lbS0+bWVtX3R5cGUgIT0gVFRNX1BMX1NZU1RFTTsK K30KKworc3RhdGljIGJvb2wgY3B1X21hcHNfaW9tZW0oc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVt KQoreworCS8qIE9uY2UgLyBpZiB3ZSBzdXBwb3J0IEdHVFQsIHRoaXMgaXMgYWxzbyBmYWxzZSBm b3IgY2FjaGVkIHR0bV90dHMgKi8KKwlyZXR1cm4gbWVtLT5tZW1fdHlwZSAhPSBUVE1fUExfU1lT VEVNOworfQorCitzdGF0aWMgZW51bSBpOTE1X2NhY2hlX2xldmVsCitpOTE1X3R0bV9jYWNoZV9s ZXZlbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IHR0bV9yZXNvdXJjZSAq cmVzLAorCQkgICAgIHN0cnVjdCB0dG1fdHQgKnR0bSkKK3sKKwlyZXR1cm4gKChIQVNfTExDKGk5 MTUpIHx8IEhBU19TTk9PUChpOTE1KSkgJiYgIWdwdV9iaW5kc19pb21lbShyZXMpICYmCisJCXR0 bS0+Y2FjaGluZyA9PSB0dG1fY2FjaGVkKSA/IEk5MTVfQ0FDSEVfTExDIDoKKwkJSTkxNV9DQUNI RV9OT05FOworfQorCiBzdGF0aWMgdm9pZCBpOTE1X3R0bV9hZGp1c3RfbHJ1KHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopOwogCiBzdGF0aWMgZW51bSB0dG1fY2FjaGluZwpAQCAtMjQ4 LDYgKzI2OCwzNSBAQCBzdGF0aWMgdm9pZCBpOTE1X3R0bV9mcmVlX2NhY2hlZF9pb19zdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCW9iai0+dHRtLmNhY2hlZF9pb19zdCA9IE5V TEw7CiB9CiAKK3N0YXRpYyB2b2lkCitpOTE1X3R0bV9hZGp1c3RfZG9tYWluc19hZnRlcl9tb3Zl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibyA9IGk5MTVfZ2VtX3RvX3R0bShvYmopOworCisJaWYgKGNwdV9tYXBzX2lvbWVt KGJvLT5yZXNvdXJjZSkgfHwgYm8tPnR0bS0+Y2FjaGluZyAhPSB0dG1fY2FjaGVkKSB7CisJCW9i ai0+d3JpdGVfZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX1dDOworCQlvYmotPnJlYWRfZG9tYWlu cyA9IEk5MTVfR0VNX0RPTUFJTl9XQzsKKwl9IGVsc2UgeworCQlvYmotPndyaXRlX2RvbWFpbiA9 IEk5MTVfR0VNX0RPTUFJTl9DUFU7CisJCW9iai0+cmVhZF9kb21haW5zID0gSTkxNV9HRU1fRE9N QUlOX0NQVTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfdHRtX2FkanVzdF9nZW1fYWZ0ZXJf bW92ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCXN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8gPSBpOTE1X2dlbV90b190dG0ob2JqKTsKKwl1bnNpZ25lZCBpbnQgY2Fj aGVfbGV2ZWw7CisKKwlvYmotPm1lbV9mbGFncyAmPSB+KEk5MTVfQk9fRkxBR19TVFJVQ1RfUEFH RSB8IEk5MTVfQk9fRkxBR19JT01FTSk7CisKKwlvYmotPm1lbV9mbGFncyB8PSBjcHVfbWFwc19p b21lbShiby0+cmVzb3VyY2UpID8gSTkxNV9CT19GTEFHX0lPTUVNIDoKKwkJSTkxNV9CT19GTEFH X1NUUlVDVF9QQUdFOworCisJY2FjaGVfbGV2ZWwgPSBpOTE1X3R0bV9jYWNoZV9sZXZlbCh0b19p OTE1KGJvLT5iYXNlLmRldiksIGJvLT5yZXNvdXJjZSwKKwkJCQkJICAgYm8tPnR0bSk7CisJaTkx NV9nZW1fb2JqZWN0X3NldF9jYWNoZV9jb2hlcmVuY3kob2JqLCBjYWNoZV9sZXZlbCk7Cit9CisK IHN0YXRpYyB2b2lkIGk5MTVfdHRtX3B1cmdlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopCiB7CiAJc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyA9IGk5MTVfZ2VtX3RvX3R0bShv YmopOwpAQCAtMjYzLDggKzMxMiwxMCBAQCBzdGF0aWMgdm9pZCBpOTE1X3R0bV9wdXJnZShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCiAJLyogVFRNJ3MgcHVyZ2UgaW50ZXJmYWNl LiBOb3RlIHRoYXQgd2UgbWlnaHQgYmUgcmVlbnRlcmluZy4gKi8KIAlyZXQgPSB0dG1fYm9fdmFs aWRhdGUoYm8sICZwbGFjZSwgJmN0eCk7Ci0KIAlpZiAoIXJldCkgeworCQlvYmotPndyaXRlX2Rv bWFpbiA9IDA7CisJCW9iai0+cmVhZF9kb21haW5zID0gMDsKKwkJaTkxNV90dG1fYWRqdXN0X2dl bV9hZnRlcl9tb3ZlKG9iaik7CiAJCWk5MTVfdHRtX2ZyZWVfY2FjaGVkX2lvX3N0KG9iaik7CiAJ CW9iai0+bW0ubWFkdiA9IF9fSTkxNV9NQURWX1BVUkdFRDsKIAl9CkBAIC0zNDcsMTIgKzM5OCwx NSBAQCBpOTE1X3R0bV9yZXNvdXJjZV9nZXRfc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwKIAkJCSBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZXMpCiB7CiAJc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibyA9IGk5MTVfZ2VtX3RvX3R0bShvYmopOwotCXN0cnVjdCB0dG1fcmVzb3Vy Y2VfbWFuYWdlciAqbWFuID0KLQkJdHRtX21hbmFnZXJfdHlwZShiby0+YmRldiwgcmVzLT5tZW1f dHlwZSk7CiAKLQlpZiAobWFuLT51c2VfdHQpCisJaWYgKCFncHVfYmluZHNfaW9tZW0ocmVzKSkK IAkJcmV0dXJuIGk5MTVfdHRtX3R0X2dldF9zdChiby0+dHRtKTsKIAorCS8qCisJICogSWYgQ1BV IG1hcHBpbmcgZGlmZmVycywgd2UgbmVlZCB0byBhZGQgdGhlIHR0bV90dCBwYWdlcyB0bworCSAq IHRoZSByZXN1bHRpbmcgc3QuIE1pZ2h0IG1ha2Ugc2Vuc2UgZm9yIEdHVFQuCisJICovCisJR0VN X1dBUk5fT04oIWNwdV9tYXBzX2lvbWVtKHJlcykpOwogCXJldHVybiBpbnRlbF9yZWdpb25fdHRt X3Jlc291cmNlX3RvX3N0KG9iai0+bW0ucmVnaW9uLCByZXMpOwogfQogCkBAIC0zNjcsMjMgKzQy MSwyNSBAQCBzdGF0aWMgaW50IGk5MTVfdHRtX2FjY2VsX21vdmUoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaTkxNV90dG1f dG9fZ2VtKGJvKTsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnNyY19zdDsKIAlzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpycTsKKwlzdHJ1Y3QgdHRtX3R0ICp0dG0gPSBiby0+dHRtOworCWVudW0gaTkxNV9jYWNo ZV9sZXZlbCBzcmNfbGV2ZWwsIGRzdF9sZXZlbDsKIAlpbnQgcmV0OwogCiAJaWYgKCFpOTE1LT5n dC5taWdyYXRlLmNvbnRleHQpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKCFiby0+dHRtIHx8 ICF0dG1fdHRfaXNfcG9wdWxhdGVkKGJvLT50dG0pKSB7CisJZHN0X2xldmVsID0gaTkxNV90dG1f Y2FjaGVfbGV2ZWwoaTkxNSwgZHN0X21lbSwgdHRtKTsKKwlpZiAoIXR0bSB8fCAhdHRtX3R0X2lz X3BvcHVsYXRlZCh0dG0pKSB7CiAJCWlmIChiby0+dHlwZSA9PSB0dG1fYm9fdHlwZV9rZXJuZWwp CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQlpZiAoYm8tPnR0bSAmJgotCQkgICAgIShiby0+dHRt LT5wYWdlX2ZsYWdzICYgVFRNX1BBR0VfRkxBR19aRVJPX0FMTE9DKSkKKwkJaWYgKHR0bSAmJiAh KHR0bS0+cGFnZV9mbGFncyAmIFRUTV9QQUdFX0ZMQUdfWkVST19BTExPQykpCiAJCQlyZXR1cm4g MDsKIAogCQlpbnRlbF9lbmdpbmVfcG1fZ2V0KGk5MTUtPmd0Lm1pZ3JhdGUuY29udGV4dC0+ZW5n aW5lKTsKIAkJcmV0ID0gaW50ZWxfY29udGV4dF9taWdyYXRlX2NsZWFyKGk5MTUtPmd0Lm1pZ3Jh dGUuY29udGV4dCwgTlVMTCwKLQkJCQkJCSAgZHN0X3N0LT5zZ2wsIEk5MTVfQ0FDSEVfTk9ORSwK LQkJCQkJCSAgZHN0X21lbS0+bWVtX3R5cGUgPj0gSTkxNV9QTF9MTUVNMCwKKwkJCQkJCSAgZHN0 X3N0LT5zZ2wsIGRzdF9sZXZlbCwKKwkJCQkJCSAgZ3B1X2JpbmRzX2lvbWVtKGRzdF9tZW0pLAog CQkJCQkJICAwLCAmcnEpOwogCiAJCWlmICghcmV0ICYmIHJxKSB7CkBAIC0zOTIsMTUgKzQ0OCwx NiBAQCBzdGF0aWMgaW50IGk5MTVfdHRtX2FjY2VsX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibywKIAkJfQogCQlpbnRlbF9lbmdpbmVfcG1fcHV0KGk5MTUtPmd0Lm1pZ3JhdGUuY29u dGV4dC0+ZW5naW5lKTsKIAl9IGVsc2UgewotCQlzcmNfc3QgPSBzcmNfbWFuLT51c2VfdHQgPyBp OTE1X3R0bV90dF9nZXRfc3QoYm8tPnR0bSkgOgotCQkJCQkJb2JqLT50dG0uY2FjaGVkX2lvX3N0 OworCQlzcmNfc3QgPSBzcmNfbWFuLT51c2VfdHQgPyBpOTE1X3R0bV90dF9nZXRfc3QodHRtKSA6 CisJCQlvYmotPnR0bS5jYWNoZWRfaW9fc3Q7CiAKKwkJc3JjX2xldmVsID0gaTkxNV90dG1fY2Fj aGVfbGV2ZWwoaTkxNSwgYm8tPnJlc291cmNlLCB0dG0pOwogCQlpbnRlbF9lbmdpbmVfcG1fZ2V0 KGk5MTUtPmd0Lm1pZ3JhdGUuY29udGV4dC0+ZW5naW5lKTsKIAkJcmV0ID0gaW50ZWxfY29udGV4 dF9taWdyYXRlX2NvcHkoaTkxNS0+Z3QubWlncmF0ZS5jb250ZXh0LAotCQkJCQkJIE5VTEwsIHNy Y19zdC0+c2dsLCBJOTE1X0NBQ0hFX05PTkUsCi0JCQkJCQkgYm8tPnJlc291cmNlLT5tZW1fdHlw ZSA+PSBJOTE1X1BMX0xNRU0wLAotCQkJCQkJIGRzdF9zdC0+c2dsLCBJOTE1X0NBQ0hFX05PTkUs Ci0JCQkJCQkgZHN0X21lbS0+bWVtX3R5cGUgPj0gSTkxNV9QTF9MTUVNMCwKKwkJCQkJCSBOVUxM LCBzcmNfc3QtPnNnbCwgc3JjX2xldmVsLAorCQkJCQkJIGdwdV9iaW5kc19pb21lbShiby0+cmVz b3VyY2UpLAorCQkJCQkJIGRzdF9zdC0+c2dsLCBkc3RfbGV2ZWwsCisJCQkJCQkgZ3B1X2JpbmRz X2lvbWVtKGRzdF9tZW0pLAogCQkJCQkJICZycSk7CiAJCWlmICghcmV0ICYmIHJxKSB7CiAJCQlp OTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwpAQCAtNDIwLDgg KzQ3Nyw2IEBAIHN0YXRpYyBpbnQgaTkxNV90dG1fbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLCBib29sIGV2aWN0LAogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBp OTE1X3R0bV90b19nZW0oYm8pOwogCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqZHN0X21h biA9CiAJCXR0bV9tYW5hZ2VyX3R5cGUoYm8tPmJkZXYsIGRzdF9tZW0tPm1lbV90eXBlKTsKLQlz dHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKnNyY19tYW4gPQotCQl0dG1fbWFuYWdlcl90eXBl KGJvLT5iZGV2LCBiby0+cmVzb3VyY2UtPm1lbV90eXBlKTsKIAlzdHJ1Y3QgaW50ZWxfbWVtb3J5 X3JlZ2lvbiAqZHN0X3JlZywgKnNyY19yZWc7CiAJdW5pb24gewogCQlzdHJ1Y3QgdHRtX2ttYXBf aXRlcl90dCB0dDsKQEAgLTQ2NSwxMiArNTIwLDEyIEBAIHN0YXRpYyBpbnQgaTkxNV90dG1fbW92 ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBib29sIGV2aWN0LAogCXJldCA9IGk5MTVf dHRtX2FjY2VsX21vdmUoYm8sIGRzdF9tZW0sIGRzdF9zdCk7CiAJaWYgKHJldCkgewogCQkvKiBJ ZiB3ZSBzdGFydCBtYXBwaW5nIEdHVFQsIHdlIGNhbiBubyBsb25nZXIgdXNlIG1hbjo6dXNlX3R0 IGhlcmUuICovCi0JCWRzdF9pdGVyID0gZHN0X21hbi0+dXNlX3R0ID8KKwkJZHN0X2l0ZXIgPSAh Y3B1X21hcHNfaW9tZW0oZHN0X21lbSkgPwogCQkJdHRtX2ttYXBfaXRlcl90dF9pbml0KCZfZHN0 X2l0ZXIudHQsIGJvLT50dG0pIDoKIAkJCXR0bV9rbWFwX2l0ZXJfaW9tYXBfaW5pdCgmX2RzdF9p dGVyLmlvLCAmZHN0X3JlZy0+aW9tYXAsCiAJCQkJCQkgZHN0X3N0LCBkc3RfcmVnLT5yZWdpb24u c3RhcnQpOwogCi0JCXNyY19pdGVyID0gc3JjX21hbi0+dXNlX3R0ID8KKwkJc3JjX2l0ZXIgPSAh Y3B1X21hcHNfaW9tZW0oYm8tPnJlc291cmNlKSA/CiAJCQl0dG1fa21hcF9pdGVyX3R0X2luaXQo Jl9zcmNfaXRlci50dCwgYm8tPnR0bSkgOgogCQkJdHRtX2ttYXBfaXRlcl9pb21hcF9pbml0KCZf c3JjX2l0ZXIuaW8sICZzcmNfcmVnLT5pb21hcCwKIAkJCQkJCSBvYmotPnR0bS5jYWNoZWRfaW9f c3QsCkBAIC00NzgsMjEgKzUzMywyNCBAQCBzdGF0aWMgaW50IGk5MTVfdHRtX21vdmUoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKIAogCQl0dG1fbW92ZV9tZW1jcHko Ym8sIGRzdF9tZW0tPm51bV9wYWdlcywgZHN0X2l0ZXIsIHNyY19pdGVyKTsKIAl9CisJLyogQmVs b3cgZHN0X21lbSBiZWNvbWVzIGJvLT5yZXNvdXJjZS4gKi8KIAl0dG1fYm9fbW92ZV9zeW5jX2Ns ZWFudXAoYm8sIGRzdF9tZW0pOworCWk5MTVfdHRtX2FkanVzdF9kb21haW5zX2FmdGVyX21vdmUo b2JqKTsKIAlpOTE1X3R0bV9mcmVlX2NhY2hlZF9pb19zdChvYmopOwogCi0JaWYgKCFkc3RfbWFu LT51c2VfdHQpIHsKKwlpZiAoZ3B1X2JpbmRzX2lvbWVtKGRzdF9tZW0pIHx8IGNwdV9tYXBzX2lv bWVtKGRzdF9tZW0pKSB7CiAJCW9iai0+dHRtLmNhY2hlZF9pb19zdCA9IGRzdF9zdDsKIAkJb2Jq LT50dG0uZ2V0X2lvX3BhZ2Uuc2dfcG9zID0gZHN0X3N0LT5zZ2w7CiAJCW9iai0+dHRtLmdldF9p b19wYWdlLnNnX2lkeCA9IDA7CiAJfQogCisJaTkxNV90dG1fYWRqdXN0X2dlbV9hZnRlcl9tb3Zl KG9iaik7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgaTkxNV90dG1faW9fbWVtX3Jlc2Vy dmUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSkKIHsK LQlpZiAobWVtLT5tZW1fdHlwZSA8IEk5MTVfUExfTE1FTTApCisJaWYgKCFjcHVfbWFwc19pb21l bShtZW0pKQogCQlyZXR1cm4gMDsKIAogCW1lbS0+YnVzLmNhY2hpbmcgPSB0dG1fd3JpdGVfY29t YmluZWQ7CkBAIC01OTAsNiArNjQ4LDE2IEBAIHN0YXRpYyBpbnQgaTkxNV90dG1fZ2V0X3BhZ2Vz KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCQlyZXR1cm4gaTkxNV90dG1fZXJy X3RvX2dlbShyZXQpOwogCX0KIAorCWk5MTVfdHRtX2FkanVzdF9scnUob2JqKTsKKwlpZiAoYm8t PnR0bSAmJiAhdHRtX3R0X2lzX3BvcHVsYXRlZChiby0+dHRtKSkgeworCQlyZXQgPSB0dG1fdHRf cG9wdWxhdGUoYm8tPmJkZXYsIGJvLT50dG0sICZjdHgpOworCQlpZiAocmV0KQorCQkJcmV0dXJu IHJldDsKKworCQlpOTE1X3R0bV9hZGp1c3RfZG9tYWluc19hZnRlcl9tb3ZlKG9iaik7CisJCWk5 MTVfdHRtX2FkanVzdF9nZW1fYWZ0ZXJfbW92ZShvYmopOworCX0KKwogCS8qIE9iamVjdCBlaXRo ZXIgaGFzIGEgcGFnZSB2ZWN0b3Igb3IgaXMgYW4gaW9tZW0gb2JqZWN0ICovCiAJc3QgPSBiby0+ dHRtID8gaTkxNV90dG1fdHRfZ2V0X3N0KGJvLT50dG0pIDogb2JqLT50dG0uY2FjaGVkX2lvX3N0 OwogCWlmIChJU19FUlIoc3QpKQpAQCAtNTk3LDggKzY2NSw2IEBAIHN0YXRpYyBpbnQgaTkxNV90 dG1fZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAKIAlfX2k5MTVf Z2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBzdCwgaTkxNV9zZ19kbWFfc2l6ZXMoc3QtPnNnbCkp OwogCi0JaTkxNV90dG1fYWRqdXN0X2xydShvYmopOwotCiAJcmV0dXJuIHJldDsKIH0KIApAQCAt NzY4LDYgKzgzNCwxMCBAQCBpbnQgX19pOTE1X2dlbV90dG1fb2JqZWN0X2luaXQoc3RydWN0IGlu dGVsX21lbW9yeV9yZWdpb24gKm1lbSwKIHsKIAlzdGF0aWMgc3RydWN0IGxvY2tfY2xhc3Nfa2V5 IGxvY2tfY2xhc3M7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBtZW0tPmk5MTU7 CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKKwkJLmludGVycnVwdGlibGUgPSB0 cnVlLAorCQkubm9fd2FpdF9ncHUgPSBmYWxzZSwKKwl9OwogCWVudW0gdHRtX2JvX3R5cGUgYm9f dHlwZTsKIAlpbnQgcmV0OwogCkBAIC03NzUsMTQgKzg0NSwxMyBAQCBpbnQgX19pOTE1X2dlbV90 dG1fb2JqZWN0X2luaXQoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKIAlpOTE1X2dl bV9vYmplY3RfaW5pdChvYmosICZpOTE1X2dlbV90dG1fb2JqX29wcywgJmxvY2tfY2xhc3MsIGZs YWdzKTsKIAlpOTE1X2dlbV9vYmplY3RfaW5pdF9tZW1vcnlfcmVnaW9uKG9iaiwgbWVtKTsKIAlp OTE1X2dlbV9vYmplY3RfbWFrZV91bnNocmlua2FibGUob2JqKTsKLQlvYmotPnJlYWRfZG9tYWlu cyA9IEk5MTVfR0VNX0RPTUFJTl9XQyB8IEk5MTVfR0VNX0RPTUFJTl9HVFQ7Ci0Jb2JqLT5tZW1f ZmxhZ3MgfD0gSTkxNV9CT19GTEFHX0lPTUVNOwotCWk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVf Y29oZXJlbmN5KG9iaiwgSTkxNV9DQUNIRV9OT05FKTsKIAlJTklUX1JBRElYX1RSRUUoJm9iai0+ dHRtLmdldF9pb19wYWdlLnJhZGl4LCBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOKTsKIAltdXRl eF9pbml0KCZvYmotPnR0bS5nZXRfaW9fcGFnZS5sb2NrKTsKIAlib190eXBlID0gKG9iai0+Zmxh Z3MgJiBJOTE1X0JPX0FMTE9DX1VTRVIpID8gdHRtX2JvX3R5cGVfZGV2aWNlIDoKIAkJdHRtX2Jv X3R5cGVfa2VybmVsOwogCisJb2JqLT5iYXNlLnZtYV9ub2RlLmRyaXZlcl9wcml2YXRlID0gaTkx NV9nZW1fdG9fdHRtKG9iaik7CisKIAkvKgogCSAqIElmIHRoaXMgZnVuY3Rpb24gZmFpbHMsIGl0 IHdpbGwgY2FsbCB0aGUgZGVzdHJ1Y3RvciwgYnV0CiAJICogb3VyIGNhbGxlciBzdGlsbCBvd25z IHRoZSBvYmplY3QuIFNvIG5vIGZyZWVpbmcgaW4gdGhlCkBAIC03OTAsMTQgKzg1OSwxNiBAQCBp bnQgX19pOTE1X2dlbV90dG1fb2JqZWN0X2luaXQoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24g Km1lbSwKIAkgKiBTaW1pbGFybHksIGluIGRlbGF5ZWRfZGVzdHJveSwgd2UgY2FuJ3QgY2FsbCB0 dG1fYm9fcHV0KCkKIAkgKiB1bnRpbCBzdWNjZXNzZnVsIGluaXRpYWxpemF0aW9uLgogCSAqLwot CW9iai0+YmFzZS52bWFfbm9kZS5kcml2ZXJfcHJpdmF0ZSA9IGk5MTVfZ2VtX3RvX3R0bShvYmop OwotCXJldCA9IHR0bV9ib19pbml0KCZpOTE1LT5iZGV2LCBpOTE1X2dlbV90b190dG0ob2JqKSwg c2l6ZSwKLQkJCSAgYm9fdHlwZSwgJmk5MTVfc3lzX3BsYWNlbWVudCwKLQkJCSAgbWVtLT5taW5f cGFnZV9zaXplID4+IFBBR0VfU0hJRlQsCi0JCQkgIHRydWUsIE5VTEwsIE5VTEwsIGk5MTVfdHRt X2JvX2Rlc3Ryb3kpOwotCWlmICghcmV0KQotCQlvYmotPnR0bS5jcmVhdGVkID0gdHJ1ZTsKLQot CS8qIGk5MTUgd2FudHMgLUVOWElPIHdoZW4gb3V0IG9mIG1lbW9yeSByZWdpb24gc3BhY2UuICov Ci0JcmV0dXJuIGk5MTVfdHRtX2Vycl90b19nZW0ocmV0KTsKKwlyZXQgPSB0dG1fYm9faW5pdF9y ZXNlcnZlZCgmaTkxNS0+YmRldiwgaTkxNV9nZW1fdG9fdHRtKG9iaiksIHNpemUsCisJCQkJICAg Ym9fdHlwZSwgJmk5MTVfc3lzX3BsYWNlbWVudCwgMSwKKwkJCQkgICAmY3R4LCBOVUxMLCBOVUxM LCBpOTE1X3R0bV9ib19kZXN0cm95KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gaTkxNV90dG1fZXJy X3RvX2dlbShyZXQpOworCisJb2JqLT50dG0uY3JlYXRlZCA9IHRydWU7CisJaTkxNV90dG1fYWRq dXN0X2RvbWFpbnNfYWZ0ZXJfbW92ZShvYmopOworCWk5MTVfdHRtX2FkanVzdF9nZW1fYWZ0ZXJf bW92ZShvYmopOworCWk5MTVfZ2VtX29iamVjdF91bmxvY2sob2JqKTsKKworCXJldHVybiAwOwog fQotLSAKMi4zMS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK