From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH 1/3] drm/i915/gtt: pde entry encoding is identical Date: Thu, 4 Jul 2019 18:44:05 +0300 Message-ID: <20190704154407.25551-1-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 25235892D5 for ; Thu, 4 Jul 2019 15:44:25 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Matthew Auld List-Id: intel-gfx@lists.freedesktop.org Rm9yIGFsbCBwYWdlIGRpcmVjdG9yeSBlbnRyaWVzLCB0aGUgcGRlIGVuY29kaW5nIGlzCmlkZW50 aWNhbC4gRG9uJ3QgY29tcGlsaWNhdGUgY2FsbCBzaXRlcyB3aXRoIGRpZmZlcmVudAp2ZXJzaW9u cyBvZiBkb2luZyB0aGUgc2FtZSB0aGluZy4gV2UgY2hlY2sgdGhlIGV4aXN0ZW5jZSBvZgpwaHlz aWNhbCBwYWdlIGJlZm9yZSB3cml0aW5nIHRoZSBlbnRyeSBpbnRvIGl0LiBUaGlzIGZ1cnRoZXIK Z2VuZXJhbGl6ZXMgdGhlIHBkIHNvIHRoYXQgbWFuaXB1bGF0aW9uIGluIGNhbGxzaXRlcyB3aWxs IGJlCmlkZW50aWNhbCwgcmVtb3ZpbmcgdGhlIG5lZWQgdG8gaGFuZGxlIHBkcHMgZGlmZmVyZW50 bHkgZm9yIGdlbjguCgp2Mjogc3F1YXNoCnYzOiBpbmMvZGVjIHdpdGggc2V0L2NsZWFyIChDaHJp cykKCkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IE1hdHRo ZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWlrYSBLdW9w cGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCAxMzcgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggfCAgIDMgLQogMiBmaWxlcyBjaGFu Z2VkLCA1MiBpbnNlcnRpb25zKCspLCA4OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCmluZGV4IDk3NTZmMWI2NzBlOS4uNDcwOTk0OGE2YzBlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMjExLDEwICsyMTEsMTAgQEAgc3RhdGljIHU2NCBn ZW44X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAogCXJldHVybiBwdGU7CiB9CiAKLXN0YXRp YyBnZW44X3BkZV90IGdlbjhfcGRlX2VuY29kZShjb25zdCBkbWFfYWRkcl90IGFkZHIsCi0JCQkJ ICBjb25zdCBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwpCitzdGF0aWMgdTY0IGdlbjhfcGRl X2VuY29kZShjb25zdCBkbWFfYWRkcl90IGFkZHIsCisJCQkgICBjb25zdCBlbnVtIGk5MTVfY2Fj aGVfbGV2ZWwgbGV2ZWwpCiB7Ci0JZ2VuOF9wZGVfdCBwZGUgPSBfUEFHRV9QUkVTRU5UIHwgX1BB R0VfUlc7CisJdTY0IHBkZSA9IF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9SVzsKIAlwZGUgfD0gYWRk cjsKIAlpZiAobGV2ZWwgIT0gSTkxNV9DQUNIRV9OT05FKQogCQlwZGUgfD0gUFBBVF9DQUNIRURf UERFOwpAQCAtMjIzLDkgKzIyMyw2IEBAIHN0YXRpYyBnZW44X3BkZV90IGdlbjhfcGRlX2VuY29k ZShjb25zdCBkbWFfYWRkcl90IGFkZHIsCiAJcmV0dXJuIHBkZTsKIH0KIAotI2RlZmluZSBnZW44 X3BkcGVfZW5jb2RlIGdlbjhfcGRlX2VuY29kZQotI2RlZmluZSBnZW44X3BtbDRlX2VuY29kZSBn ZW44X3BkZV9lbmNvZGUKLQogc3RhdGljIHU2NCBzbmJfcHRlX2VuY29kZShkbWFfYWRkcl90IGFk ZHIsCiAJCQkgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKIAkJCSAgdTMyIGZsYWdzKQpA QCAtNzc3LDI0ICs3NzQsNDMgQEAgc3RhdGljIHZvaWQgZnJlZV9wZChzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKIAlrZnJlZShwZCk7CiB9CiAKLXN0YXRpYyB2b2lkIGluaXRfcGRfd2l0 aF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJICAgICAgc3RydWN0IGk5 MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBwZCwKLQkJCSAgICAgIHN0cnVjdCBpOTE1X3BhZ2Vf dGFibGUgKnB0KQotewotCWZpbGxfcHgodm0sIHBkLCBnZW44X3BkZV9lbmNvZGUocHhfZG1hKHB0 KSwgSTkxNV9DQUNIRV9MTEMpKTsKLQltZW1zZXRfcChwZC0+ZW50cnksIHB0LCA1MTIpOworI2Rl ZmluZSBpbml0X3BkKHZtLCBwZCwgdG8pIHsJCQkJCVwKKwlHRU1fREVCVUdfQlVHX09OKCFwZF9o YXNfcGh5c19wYWdlKHBkKSk7CQlcCisJZmlsbF9weCgodm0pLCAocGQpLCBnZW44X3BkZV9lbmNv ZGUocHhfZG1hKHRvKSwgSTkxNV9DQUNIRV9MTEMpKTsgXAorCW1lbXNldF9wKChwZCktPmVudHJ5 LCAodG8pLCA1MTIpOwkJCQlcCiB9CiAKLXN0YXRpYyB2b2lkIGluaXRfcGQoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCi0JCSAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNv bnN0IHBkLAotCQkgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCB0bykKK3N0 YXRpYyB2b2lkIF9fd3JpdGVfZG1hX2VudHJ5KHN0cnVjdCBpOTE1X3BhZ2VfZG1hICogY29uc3Qg cGRtYSwKKwkJCSAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IHBkZSwKKwkJCSAgICAgIGNvbnN0 IHU2NCBlbmNvZGVkX2VudHJ5KQogewotCUdFTV9ERUJVR19CVUdfT04oIXBkX2hhc19waHlzX3Bh Z2UocGQpKTsKKwl1NjQgKnZhZGRyOwogCi0JZmlsbF9weCh2bSwgcGQsIGdlbjhfcGRwZV9lbmNv ZGUocHhfZG1hKHRvKSwgSTkxNV9DQUNIRV9MTEMpKTsKLQltZW1zZXRfcChwZC0+ZW50cnksIHRv LCA1MTIpOworCXZhZGRyID0ga21hcF9hdG9taWMocGRtYS0+cGFnZSk7CisJdmFkZHJbcGRlXSA9 IGVuY29kZWRfZW50cnk7CisJa3VubWFwX2F0b21pYyh2YWRkcik7CiB9CiAKK3N0YXRpYyBpbmxp bmUgdm9pZAorX193cml0ZV9wZF9lbnRyeShzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqIGNv bnN0IHBkLAorCQkgY29uc3QgdW5zaWduZWQgc2hvcnQgcGRlLAorCQkgc3RydWN0IGk5MTVfcGFn ZV9kbWEgKiBjb25zdCB0bywKKwkJIHU2NCAoKmVuY29kZSkoY29uc3QgZG1hX2FkZHJfdCwgY29u c3QgZW51bSBpOTE1X2NhY2hlX2xldmVsKSkKK3sKKwlwZC0+ZW50cnlbcGRlXSA9IHRvOworCV9f d3JpdGVfZG1hX2VudHJ5KHB4X2Jhc2UocGQpLCBwZGUsIGVuY29kZSh0by0+ZGFkZHIsIEk5MTVf Q0FDSEVfTExDKSk7Cit9CisKKyNkZWZpbmUgc2V0X3BkX2VudHJ5KHBkLCBwZGUsIHRvKSAgKHsJ CQkJICAgXAorCV9fd3JpdGVfcGRfZW50cnkoKHBkKSwgKHBkZSksIHB4X2Jhc2UodG8pLCBnZW44 X3BkZV9lbmNvZGUpOyBcCisJYXRvbWljX2luYygmKHBkKS0+dXNlZCk7CQkJCSAgIFwKK30pCisK KyNkZWZpbmUgY2xlYXJfcGRfZW50cnkocGQsIHBkZSwgdG8pICh7CQkJCSAgICAgXAorCV9fd3Jp dGVfcGRfZW50cnkoKHBkKSwgKHBkZSksIHB4X2Jhc2UodG8pLCBnZW44X3BkZV9lbmNvZGUpOyBc CisJYXRvbWljX2RlYygmcGQtPnVzZWQpOwkJCQkJICAgICBcCit9KQorCiAvKgogICogUERFIFRM QnMgYXJlIGEgcGFpbiB0byBpbnZhbGlkYXRlIG9uIEdFTjgrLiBXaGVuIHdlIG1vZGlmeQogICog dGhlIHBhZ2UgdGFibGUgc3RydWN0dXJlcywgd2UgbWFyayB0aGVtIGRpcnR5IHNvIHRoYXQKQEAg LTgyNCwxOCArODQwLDYgQEAgc3RhdGljIGJvb2wgZ2VuOF9wcGd0dF9jbGVhcl9wdChjb25zdCBz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlyZXR1cm4gIWF0b21pY19zdWJfcmV0dXJu KG51bV9lbnRyaWVzLCAmcHQtPnVzZWQpOwogfQogCi1zdGF0aWMgdm9pZCBnZW44X3BwZ3R0X3Nl dF9wZGUoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0JCQkgICAgICAgc3RydWN0IGk5 MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAotCQkJICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUg KnB0LAotCQkJICAgICAgIHVuc2lnbmVkIGludCBwZGUpCi17Ci0JZ2VuOF9wZGVfdCAqdmFkZHI7 Ci0KLQl2YWRkciA9IGttYXBfYXRvbWljX3B4KHBkKTsKLQl2YWRkcltwZGVdID0gZ2VuOF9wZGVf ZW5jb2RlKHB4X2RtYShwdCksIEk5MTVfQ0FDSEVfTExDKTsKLQlrdW5tYXBfYXRvbWljKHZhZGRy KTsKLX0KLQogc3RhdGljIGJvb2wgZ2VuOF9wcGd0dF9jbGVhcl9wZChzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKIAkJCQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQsCiAJCQkJ dTY0IHN0YXJ0LCB1NjQgbGVuZ3RoKQpAQCAtODUzLDExICs4NTcsOCBAQCBzdGF0aWMgYm9vbCBn ZW44X3BwZ3R0X2NsZWFyX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiAJCXNw aW5fbG9jaygmcGQtPmxvY2spOwogCQlpZiAoIWF0b21pY19yZWFkKCZwdC0+dXNlZCkpIHsKLQkJ CWdlbjhfcHBndHRfc2V0X3BkZSh2bSwgcGQsIHZtLT5zY3JhdGNoX3B0LCBwZGUpOwotCQkJcGQt PmVudHJ5W3BkZV0gPSB2bS0+c2NyYXRjaF9wdDsKLQogCQkJR0VNX0JVR19PTighYXRvbWljX3Jl YWQoJnBkLT51c2VkKSk7Ci0JCQlhdG9taWNfZGVjKCZwZC0+dXNlZCk7CisJCQljbGVhcl9wZF9l bnRyeShwZCwgcGRlLCB2bS0+c2NyYXRjaF9wdCk7CiAJCQlmcmVlID0gdHJ1ZTsKIAkJfQogCQlz cGluX3VubG9jaygmcGQtPmxvY2spOwpAQCAtODY4LDIwICs4NjksNiBAQCBzdGF0aWMgYm9vbCBn ZW44X3BwZ3R0X2NsZWFyX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCXJldHVy biAhYXRvbWljX3JlYWQoJnBkLT51c2VkKTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9z ZXRfcGRwZShzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwLAotCQkJCXN0cnVjdCBpOTE1 X3BhZ2VfZGlyZWN0b3J5ICpwZCwKLQkJCQl1bnNpZ25lZCBpbnQgcGRwZSkKLXsKLQlnZW44X3Bw Z3R0X3BkcGVfdCAqdmFkZHI7Ci0KLQlpZiAoIXBkX2hhc19waHlzX3BhZ2UocGRwKSkKLQkJcmV0 dXJuOwotCi0JdmFkZHIgPSBrbWFwX2F0b21pY19weChwZHApOwotCXZhZGRyW3BkcGVdID0gZ2Vu OF9wZHBlX2VuY29kZShweF9kbWEocGQpLCBJOTE1X0NBQ0hFX0xMQyk7Ci0Ja3VubWFwX2F0b21p Yyh2YWRkcik7Ci19Ci0KIC8qIFJlbW92ZXMgZW50cmllcyBmcm9tIGEgc2luZ2xlIHBhZ2UgZGly IHBvaW50ZXIsIHJlbGVhc2luZyBpdCBpZiBpdCdzIGVtcHR5LgogICogQ2FsbGVyIGNhbiB1c2Ug dGhlIHJldHVybiB2YWx1ZSB0byB1cGRhdGUgaGlnaGVyLWxldmVsIGVudHJpZXMKICAqLwpAQCAt OTAyLDExICs4ODksOCBAQCBzdGF0aWMgYm9vbCBnZW44X3BwZ3R0X2NsZWFyX3BkcChzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAogCQlzcGluX2xvY2soJnBkcC0+bG9jayk7CiAJCWlm ICghYXRvbWljX3JlYWQoJnBkLT51c2VkKSkgewotCQkJZ2VuOF9wcGd0dF9zZXRfcGRwZShwZHAs IHZtLT5zY3JhdGNoX3BkLCBwZHBlKTsKLQkJCXBkcC0+ZW50cnlbcGRwZV0gPSB2bS0+c2NyYXRj aF9wZDsKLQogCQkJR0VNX0JVR19PTighYXRvbWljX3JlYWQoJnBkcC0+dXNlZCkpOwotCQkJYXRv bWljX2RlYygmcGRwLT51c2VkKTsKKwkJCWNsZWFyX3BkX2VudHJ5KHBkcCwgcGRwZSwgdm0tPnNj cmF0Y2hfcGQpOwogCQkJZnJlZSA9IHRydWU7CiAJCX0KIAkJc3Bpbl91bmxvY2soJnBkcC0+bG9j ayk7CkBAIC05MjMsMTcgKzkwNyw2IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYXJfM2x2 bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlnZW44X3BwZ3R0X2NsZWFyX3BkcCh2 bSwgaTkxNV92bV90b19wcGd0dCh2bSktPnBkLCBzdGFydCwgbGVuZ3RoKTsKIH0KIAotc3RhdGlj IHZvaWQgZ2VuOF9wcGd0dF9zZXRfcG1sNGUoc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBt bDQsCi0JCQkJIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZHAsCi0JCQkJIHVuc2lnbmVk IGludCBwbWw0ZSkKLXsKLQlnZW44X3BwZ3R0X3BtbDRlX3QgKnZhZGRyOwotCi0JdmFkZHIgPSBr bWFwX2F0b21pY19weChwbWw0KTsKLQl2YWRkcltwbWw0ZV0gPSBnZW44X3BtbDRlX2VuY29kZShw eF9kbWEocGRwKSwgSTkxNV9DQUNIRV9MTEMpOwotCWt1bm1hcF9hdG9taWModmFkZHIpOwotfQot CiAvKiBSZW1vdmVzIGVudHJpZXMgZnJvbSBhIHNpbmdsZSBwbWw0LgogICogVGhpcyBpcyB0aGUg dG9wLWxldmVsIHN0cnVjdHVyZSBpbiA0LWxldmVsIHBhZ2UgdGFibGVzIHVzZWQgb24gZ2VuOCsu CiAgKiBFbXB0eSBlbnRyaWVzIGFyZSBhbHdheXMgc2NyYXRjaCBwbWw0ZS4KQEAgLTk1Nyw4ICs5 MzAsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyXzRsdmwoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sCiAKIAkJc3Bpbl9sb2NrKCZwbWw0LT5sb2NrKTsKIAkJaWYgKCFhdG9t aWNfcmVhZCgmcGRwLT51c2VkKSkgewotCQkJZ2VuOF9wcGd0dF9zZXRfcG1sNGUocG1sNCwgdm0t PnNjcmF0Y2hfcGRwLCBwbWw0ZSk7Ci0JCQlwbWw0LT5lbnRyeVtwbWw0ZV0gPSB2bS0+c2NyYXRj aF9wZHA7CisJCQljbGVhcl9wZF9lbnRyeShwbWw0LCBwbWw0ZSwgdm0tPnNjcmF0Y2hfcGRwKTsK IAkJCWZyZWUgPSB0cnVlOwogCQl9CiAJCXNwaW5fdW5sb2NrKCZwbWw0LT5sb2NrKTsKQEAgLTEy NzUsNyArMTI0Nyw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9pbml0X3NjcmF0Y2goc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0pCiAJfQogCiAJZ2VuOF9pbml0aWFsaXplX3B0KHZtLCB2bS0+c2Ny YXRjaF9wdCk7Ci0JaW5pdF9wZF93aXRoX3BhZ2Uodm0sIHZtLT5zY3JhdGNoX3BkLCB2bS0+c2Ny YXRjaF9wdCk7CisJaW5pdF9wZCh2bSwgdm0tPnNjcmF0Y2hfcGQsIHZtLT5zY3JhdGNoX3B0KTsK IAlpZiAoaTkxNV92bV9pc180bHZsKHZtKSkKIAkJaW5pdF9wZCh2bSwgdm0tPnNjcmF0Y2hfcGRw LCB2bS0+c2NyYXRjaF9wZCk7CiAKQEAgLTEyOTgsNiArMTI3MCwxMSBAQCBzdGF0aWMgaW50IGdl bjhfcHBndHRfbm90aWZ5X3ZndChzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQsIGJvb2wgY3JlYXRl KQogCWVudW0gdmd0X2cydl90eXBlIG1zZzsKIAlpbnQgaTsKIAorCWlmIChjcmVhdGUpCisJCWF0 b21pY19pbmMoJnBwZ3R0LT5wZC0+dXNlZCk7IC8qIG5ldmVyIHJlbW92ZSAqLworCWVsc2UKKwkJ YXRvbWljX2RlYygmcHBndHQtPnBkLT51c2VkKTsKKwogCWlmIChpOTE1X3ZtX2lzXzRsdmwodm0p KSB7CiAJCWNvbnN0IHU2NCBkYWRkciA9IHB4X2RtYShwcGd0dC0+cGQpOwogCkBAIC0xNDE0LDkg KzEzOTEsNyBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGQoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sCiAKIAkJCXNwaW5fbG9jaygmcGQtPmxvY2spOwogCQkJaWYgKHBkLT5l bnRyeVtwZGVdID09IHZtLT5zY3JhdGNoX3B0KSB7Ci0JCQkJZ2VuOF9wcGd0dF9zZXRfcGRlKHZt LCBwZCwgcHQsIHBkZSk7Ci0JCQkJcGQtPmVudHJ5W3BkZV0gPSBwdDsKLQkJCQlhdG9taWNfaW5j KCZwZC0+dXNlZCk7CisJCQkJc2V0X3BkX2VudHJ5KHBkLCBwZGUsIHB0KTsKIAkJCX0gZWxzZSB7 CiAJCQkJYWxsb2MgPSBwdDsKIAkJCQlwdCA9IHBkLT5lbnRyeVtwZGVdOwpAQCAtMTQ1OCwxMyAr MTQzMywxMSBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGRwKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtLAogCQkJCWdvdG8gdW53aW5kOwogCQkJfQogCi0JCQlpbml0X3BkX3dp dGhfcGFnZSh2bSwgcGQsIHZtLT5zY3JhdGNoX3B0KTsKKwkJCWluaXRfcGQodm0sIHBkLCB2bS0+ c2NyYXRjaF9wdCk7CiAKIAkJCXNwaW5fbG9jaygmcGRwLT5sb2NrKTsKIAkJCWlmIChwZHAtPmVu dHJ5W3BkcGVdID09IHZtLT5zY3JhdGNoX3BkKSB7Ci0JCQkJZ2VuOF9wcGd0dF9zZXRfcGRwZShw ZHAsIHBkLCBwZHBlKTsKLQkJCQlwZHAtPmVudHJ5W3BkcGVdID0gcGQ7Ci0JCQkJYXRvbWljX2lu YygmcGRwLT51c2VkKTsKKwkJCQlzZXRfcGRfZW50cnkocGRwLCBwZHBlLCBwZCk7CiAJCQl9IGVs c2UgewogCQkJCWFsbG9jID0gcGQ7CiAJCQkJcGQgPSBwZHAtPmVudHJ5W3BkcGVdOwpAQCAtMTQ5 MCwxMSArMTQ2MywxMCBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGRwKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCX0KIAlzcGluX2xvY2soJnBkcC0+bG9jayk7CiAJaWYg KGF0b21pY19kZWNfYW5kX3Rlc3QoJnBkLT51c2VkKSkgewotCQlnZW44X3BwZ3R0X3NldF9wZHBl KHBkcCwgdm0tPnNjcmF0Y2hfcGQsIHBkcGUpOwogCQlHRU1fQlVHX09OKCFhdG9taWNfcmVhZCgm cGRwLT51c2VkKSk7Ci0JCWF0b21pY19kZWMoJnBkcC0+dXNlZCk7CiAJCUdFTV9CVUdfT04oYWxs b2MpOwogCQlhbGxvYyA9IHBkOyAvKiBkZWZlciB0aGUgZnJlZSB0byBhZnRlciB0aGUgbG9jayAq LworCQljbGVhcl9wZF9lbnRyeShwZHAsIHBkcGUsIHZtLT5zY3JhdGNoX3BkKTsKIAl9CiAJc3Bp bl91bmxvY2soJnBkcC0+bG9jayk7CiB1bndpbmQ6CkBAIC0xNTM5LDggKzE1MTEsNyBAQCBzdGF0 aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfNGx2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2 bSwKIAogCQkJc3Bpbl9sb2NrKCZwbWw0LT5sb2NrKTsKIAkJCWlmIChwbWw0LT5lbnRyeVtwbWw0 ZV0gPT0gdm0tPnNjcmF0Y2hfcGRwKSB7Ci0JCQkJZ2VuOF9wcGd0dF9zZXRfcG1sNGUocG1sNCwg cGRwLCBwbWw0ZSk7Ci0JCQkJcG1sNC0+ZW50cnlbcG1sNGVdID0gcGRwOworCQkJCXNldF9wZF9l bnRyeShwbWw0LCBwbWw0ZSwgcGRwKTsKIAkJCX0gZWxzZSB7CiAJCQkJYWxsb2MgPSBwZHA7CiAJ CQkJcGRwID0gcG1sNC0+ZW50cnlbcG1sNGVdOwpAQCAtMTU2Niw5ICsxNTM3LDkgQEAgc3RhdGlj IGludCBnZW44X3BwZ3R0X2FsbG9jXzRsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s CiAJfQogCXNwaW5fbG9jaygmcG1sNC0+bG9jayk7CiAJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3Qo JnBkcC0+dXNlZCkpIHsKLQkJZ2VuOF9wcGd0dF9zZXRfcG1sNGUocG1sNCwgdm0tPnNjcmF0Y2hf cGRwLCBwbWw0ZSk7CiAJCUdFTV9CVUdfT04oYWxsb2MpOwogCQlhbGxvYyA9IHBkcDsgLyogZGVm ZXIgdGhlIGZyZWUgdW50aWwgYWZ0ZXIgdGhlIGxvY2sgKi8KKwkJc2V0X3BkX2VudHJ5KHBtbDQs IHBtbDRlLCB2bS0+c2NyYXRjaF9wZHApOwogCX0KIAlzcGluX3VubG9jaygmcG1sNC0+bG9jayk7 CiB1bndpbmQ6CkBAIC0xNTkzLDIwICsxNTY0LDE2IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcmVhbGxv Y2F0ZV90b3BfbGV2ZWxfcGRwKHN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCkKIAkJaWYgKElTX0VS UihwZCkpCiAJCQlnb3RvIHVud2luZDsKIAotCQlpbml0X3BkX3dpdGhfcGFnZSh2bSwgcGQsIHZt LT5zY3JhdGNoX3B0KTsKLQkJZ2VuOF9wcGd0dF9zZXRfcGRwZShwZHAsIHBkLCBwZHBlKTsKLQot CQlhdG9taWNfaW5jKCZwZHAtPnVzZWQpOworCQlpbml0X3BkKHZtLCBwZCwgdm0tPnNjcmF0Y2hf cHQpOworCQlzZXRfcGRfZW50cnkocGRwLCBwZHBlLCBwZCk7CiAJfQogCi0JYXRvbWljX2luYygm cGRwLT51c2VkKTsgLyogbmV2ZXIgcmVtb3ZlICovCi0KIAlyZXR1cm4gMDsKIAogdW53aW5kOgog CXN0YXJ0IC09IGZyb207CiAJZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCBwZHAsIGZyb20sIHN0YXJ0 LCBwZHBlKSB7Ci0JCWdlbjhfcHBndHRfc2V0X3BkcGUocGRwLCB2bS0+c2NyYXRjaF9wZCwgcGRw ZSk7CisJCWNsZWFyX3BkX2VudHJ5KHBkcCwgcGRwZSwgdm0tPnNjcmF0Y2hfcGQpOwogCQlmcmVl X3BkKHZtLCBwZCk7CiAJfQogCWF0b21pY19zZXQoJnBkcC0+dXNlZCwgMCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5oCmluZGV4IGQwZTA5MDVhY2JiYi4uNTdhNjhlZjRlZGE3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaApAQCAtNzIsOSArNzIsNiBAQCBzdHJ1Y3QgaW50 ZWxfZ3Q7CiAKIHR5cGVkZWYgdTMyIGdlbjZfcHRlX3Q7CiB0eXBlZGVmIHU2NCBnZW44X3B0ZV90 OwotdHlwZWRlZiB1NjQgZ2VuOF9wZGVfdDsKLXR5cGVkZWYgdTY0IGdlbjhfcHBndHRfcGRwZV90 OwotdHlwZWRlZiB1NjQgZ2VuOF9wcGd0dF9wbWw0ZV90OwogCiAjZGVmaW5lIGdndHRfdG90YWxf ZW50cmllcyhnZ3R0KSAoKGdndHQpLT52bS50b3RhbCA+PiBQQUdFX1NISUZUKQogCi0tIAoyLjE3 LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==