From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Paauwe Subject: [PATCH] drm/i915: Make 48bit full ppgtt configuration generic (v7) Date: Mon, 8 Oct 2018 11:14:06 -0700 Message-ID: <20181008181406.5745-1-bob.j.paauwe@intel.com> References: <20181002173914.1011414-1-bob.j.paauwe@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 84CCE6E154 for ; Mon, 8 Oct 2018 18:14:07 +0000 (UTC) In-Reply-To: <20181002173914.1011414-1-bob.j.paauwe@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx Cc: Michel Thierry , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org NDggYml0IHBwZ3R0IGRldmljZSBjb25maWd1cmF0aW9uIGlzIHJlYWxseSBqdXN0IGV4dGVuZGVk IGFkZHJlc3MKcmFuZ2UgZnVsbCBwcGd0dCBhbmQgbWF5IGFjdHVhbGx5IGJlIHNvbWV0aGluZyBv dGhlciB0aGFuIDQ4IGJpdHMuCgpDaGFuZ2UgSEFTX0ZVTExfNDhCSVRfUFBHVFQoKSB0byBIQVNf NExWTF9QUEdUVCgpIHRvIGJldHRlcgpkZXNjcmliZSB0aGF0IGEgNCBsZXZlbCB3YWxrIHRhYmxl IGV4dGVuZGVkIHJhbmdlIFBQR1RUIGlzIGJlaW5nCnVzZWQuIEFkZCBhIG5ldyBkZXZpY2UgaW5m byBmaWVsZCB0aGF0IHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mCmJpdHMgdG8gcHJlcGFyZSBmb3Ig Y2FzZXMgd2hlcmUgdGhlIHJhbmdlIGlzIG5vdCAzMiBvciA0OCBiaXRzLgpBbHNvIHJlbmFtZSBv dGhlciBmdW5jdGlvbnMgYW5kIGNvbW1lbnRzIGZyb20gNDhiaXQgdG8gNC1sZXZlbC4KCk1ha2lu ZyB1c2Ugb2YgdGhlIGRldmljZSBpbmZvIGFkZHJlc3MgcmFuZ2UgZm9yIGdlbjYgaGlnaGxpZ2h0 cwpzaW11bGFyaXRpZXMgaW4gdGhlIGdlbjYgYW5kIGdlbjggY29kZSBwYXRocyBzbyBtb3ZlIHRo ZSBjb21tb24KY29kZSBpbiB0byBhIGNvbW1vbiBmdW5jdGlvbi4KCnYyOiBLZWVwIEhBU19GVUxM X1BQR1RUKCkgdW5jaGFuZ2VkIChDaHJpcykKdjM6IFNpbXBsaWZ5IGNvbmRpdGlvbiBpbiBnZW44 X3BwZ3R0X2NyZWF0ZSgpIChDaHJpcykKICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBsaW5lIGNvbmlu dWF0aW9ucyAoQm9iKQogICAgUmVuYW1lIGZ1bmN0aW9ucy9kZWZpbmVzL2NvbW1lbnRzIGZyb20g NDhiaXQgdG8gNGx2bCAoUm9kcmlnby9Cb2IpCnY0OiBSZW5hbWUgRlVMTF80TFZMX1BQR1RUIHRv IHNpbXBseSA0TFZMX1BQR1RUIChSb2RyaWdvKQogICAgQmUgZXhwbGlzZWQgaW4gc2V0dGluZyB2 bS50b3RhbCB0byAxVUxMIDw8IDMyIChSb2RyaWdvKQogICAgR2VuIDcgaXMgMzEgYml0cywgbm90 IDMyIChDaHJpcykKdjU6IE1vY2sgZGV2aWNlIGlzIDY0Yig2M2IpIG5vdCA0OGIgKENocmlzKQp2 NjogUmViYXNlIHRvIGxhdGVzdCBkcm0tdGlwIChCb2IpCnY3OiBDb21iaW5lIGNvbW1vbiBjb2Rl IGZvciBnZW42L2dlbjggcHBndHQgY3JlYXRlIChDaHJpcykKICAgIEltcHJvdmUgY29tbWVudCBv biBkZXZpY2UgaW5mbyBmaWVsZCAoQ2hyaXMpCgpTaWduZWQtb2ZmLWJ5OiBCb2IgUGFhdXdlIDxi b2Iuai5wYWF1d2VAaW50ZWwuY29tPgpDQzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50 ZWwuY29tPgpDQzogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4KQ0M6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KCkNocmlzLCBpcyB0 aGlzIHdoYXQgeW91IHdlcmUgbG9va2luZyBmb3IgV1JUIGhhbmRsaW5nIEdFTjYvNz8gCgogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYyAgICAgICAgICAgICAgICAgIHwgICAyICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICAgICB8ICAgMiAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgICAgICAgIHwgICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAgICAgICAgfCAx MzkgKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5oICAgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w Y2kuYyAgICAgICAgICAgICAgICAgIHwgICA2ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cHZpbmZvLmggICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV92Z3B1LmMgICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3ZncHUuaCAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RldmljZV9pbmZvLmggICAgICAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYyAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jIHwgICAyICsKIDE0IGZpbGVzIGNoYW5n ZWQsIDg5IGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC92Z3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvdmdw dS5jCmluZGV4IGM2MjhiZTA1ZmJmZS4uNjAwMmRlZDAwNDJiIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvdmdwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC92 Z3B1LmMKQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBwb3B1bGF0ZV9wdmluZm9fcGFnZShzdHJ1Y3Qg aW50ZWxfdmdwdSAqdmdwdSkKIAl2Z3B1X3ZyZWdfdCh2Z3B1LCB2Z3RpZl9yZWcoZGlzcGxheV9y ZWFkeSkpID0gMDsKIAl2Z3B1X3ZyZWdfdCh2Z3B1LCB2Z3RpZl9yZWcodmd0X2lkKSkgPSB2Z3B1 LT5pZDsKIAotCXZncHVfdnJlZ190KHZncHUsIHZndGlmX3JlZyh2Z3RfY2FwcykpID0gVkdUX0NB UFNfRlVMTF80OEJJVF9QUEdUVDsKKwl2Z3B1X3ZyZWdfdCh2Z3B1LCB2Z3RpZl9yZWcodmd0X2Nh cHMpKSA9IFZHVF9DQVBTXzRMVkxfUFBHVFQ7CiAJdmdwdV92cmVnX3QodmdwdSwgdmd0aWZfcmVn KHZndF9jYXBzKSkgfD0gVkdUX0NBUFNfSFdTUF9FTVVMQVRJT047CiAJdmdwdV92cmVnX3Qodmdw dSwgdmd0aWZfcmVnKHZndF9jYXBzKSkgfD0gVkdUX0NBUFNfSFVHRV9HVFQ7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCmluZGV4IDFiMDI4ZjQyOWU5Mi4uM2I0ODUyYTg5NDQxIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMKQEAgLTEzNjUsNyArMTM2NSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2 ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlpZiAoSEFT X1BQR1RUKGRldl9wcml2KSkgewogCQlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoZGV2X3ByaXYpICYm Ci0JCSAgICAhaW50ZWxfdmdwdV9oYXNfZnVsbF80OGJpdF9wcGd0dChkZXZfcHJpdikpIHsKKwkJ ICAgICFpbnRlbF92Z3B1X2hhc180bHZsX3BwZ3R0KGRldl9wcml2KSkgewogCQkJaTkxNV9yZXBv cnRfZXJyb3IoZGV2X3ByaXYsCiAJCQkJCSAgImluY29tcGF0aWJsZSB2R1BVIGZvdW5kLCBzdXBw b3J0IGZvciBpc29sYXRlZCBwcEdUVCByZXF1aXJlZFxuIik7CiAJCQlyZXR1cm4gLUVOWElPOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMzAxOTE1MjNjMzA5Li41NGE0NDI3MGQzNTAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjYwMiw3ICsyNjAyLDcgQEAgaW50ZWxfaW5mbyhj b25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJKElOVEVMX1BQR1RUKGRl dl9wcml2KSAhPSBJTlRFTF9QUEdUVF9OT05FKQogI2RlZmluZSBIQVNfRlVMTF9QUEdUVChkZXZf cHJpdikgXAogCShJTlRFTF9QUEdUVChkZXZfcHJpdikgPj0gSU5URUxfUFBHVFRfRlVMTCkKLSNk ZWZpbmUgSEFTX0ZVTExfNDhCSVRfUFBHVFQoZGV2X3ByaXYpCVwKKyNkZWZpbmUgSEFTXzRMVkxf UFBHVFQoZGV2X3ByaXYpCVwKIAkoSU5URUxfUFBHVFQoZGV2X3ByaXYpID49IElOVEVMX1BQR1RU X0ZVTExfNExWTCkKIAogI2RlZmluZSBIQVNfUEFHRV9TSVpFUyhkZXZfcHJpdiwgc2l6ZXMpICh7 IFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCAxNWM5MmY3NWIx YjguLjVkZTU0YWU5NDljMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu YwpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyB1MzIgZGVmYXVsdF9kZXNjX3RlbXBsYXRlKGNv bnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWRlc2MgPSBHRU44X0NUWF9WQUxJ RCB8IEdFTjhfQ1RYX1BSSVZJTEVHRTsKIAogCWFkZHJlc3NfbW9kZSA9IElOVEVMX0xFR0FDWV8z MkJfQ09OVEVYVDsKLQlpZiAocHBndHQgJiYgaTkxNV92bV9pc180OGJpdCgmcHBndHQtPnZtKSkK KwlpZiAocHBndHQgJiYgaTkxNV92bV9pc180bHZsKCZwcGd0dC0+dm0pKQogCQlhZGRyZXNzX21v ZGUgPSBJTlRFTF9MRUdBQ1lfNjRCX0NPTlRFWFQ7CiAJZGVzYyB8PSBhZGRyZXNzX21vZGUgPDwg R0VOOF9DVFhfQUREUkVTU0lOR19NT0RFX1NISUZUOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCmluZGV4IDI5Y2E5MDA3YTcwNC4uMmY2MDNjZTk0YWQ0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwpAQCAtNTc5LDE0ICs1NzksMTQgQEAgc2V0dXBfc2NyYXRjaF9wYWdl KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBnZnBfdCBnZnApCiAJICogcGFnZS10YWJs ZSBvcGVyYXRpbmcgaW4gNjRLIG1vZGUgbXVzdCBwb2ludCB0byBhIHByb3Blcmx5IGFsaWduZWQg NjRLCiAJICogcmVnaW9uLCBpbmNsdWRpbmcgYW55IFBURXMgd2hpY2ggaGFwcGVuIHRvIHBvaW50 IHRvIHNjcmF0Y2guCiAJICoKLQkgKiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgZm9yIHRoZSA0OGIg UFBHVFQgd2hlcmUgd2Ugc3VwcG9ydAorCSAqIFRoaXMgaXMgb25seSByZWxldmFudCBmb3IgdGhl IDQtbGV2ZWwgUFBHVFQgd2hlcmUgd2Ugc3VwcG9ydAogCSAqIGh1Z2UtZ3R0LXBhZ2VzLCBzZWUg YWxzbyBpOTE1X3ZtYV9pbnNlcnQoKS4KIAkgKgogCSAqIFRPRE86IHdlIHNob3VsZCByZWFsbHkg Y29uc2lkZXIgd3JpdGUtcHJvdGVjdGluZyB0aGUgc2NyYXRjaC1wYWdlIGFuZAogCSAqIHNoYXJp bmcgYmV0d2VlbiBwcGd0dAogCSAqLwogCXNpemUgPSBJOTE1X0dUVF9QQUdFX1NJWkVfNEs7Ci0J aWYgKGk5MTVfdm1faXNfNDhiaXQodm0pICYmCisJaWYgKGk5MTVfdm1faXNfNGx2bCh2bSkgJiYK IAkgICAgSEFTX1BBR0VfU0laRVModm0tPmk5MTUsIEk5MTVfR1RUX1BBR0VfU0laRV82NEspKSB7 CiAJCXNpemUgPSBJOTE1X0dUVF9QQUdFX1NJWkVfNjRLOwogCQlnZnAgfD0gX19HRlBfTk9XQVJO OwpAQCAtNzMxLDcgKzczMSw3IEBAIHN0YXRpYyB2b2lkIF9fcGRwX2Zpbmkoc3RydWN0IGk5MTVf cGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwKQogCiBzdGF0aWMgaW5saW5lIGJvb2wgdXNlXzRs dmwoY29uc3Qgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCiB7Ci0JcmV0dXJuIGk5MTVf dm1faXNfNDhiaXQodm0pOworCXJldHVybiBpOTE1X3ZtX2lzXzRsdmwodm0pOwogfQogCiBzdGF0 aWMgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqCkBAIC0xNTg0LDQyICsxNTg0 LDE0IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcmVhbGxvY2F0ZV90b3BfbGV2ZWxfcGRwKHN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpwcGd0dCkKICAqIHNwYWNlLgogICoKICAqLwotc3RhdGljIHN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpnZW44X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKK3N0YXRpYyBpbnQgZ2VuOF9wcGd0dF9jcmVhdGUoc3RydWN0IGk5MTVfaHdfcHBndHQg KnBwZ3R0KQogewotCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dDsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSA9IHBwZ3R0LT52bS5pOTE1OwogCWludCBlcnI7CiAKLQlwcGd0dCA9 IGt6YWxsb2Moc2l6ZW9mKCpwcGd0dCksIEdGUF9LRVJORUwpOwotCWlmICghcHBndHQpCi0JCXJl dHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCi0Ja3JlZl9pbml0KCZwcGd0dC0+cmVmKTsKLQotCXBw Z3R0LT52bS5pOTE1ID0gaTkxNTsKLQlwcGd0dC0+dm0uZG1hID0gJmk5MTUtPmRybS5wZGV2LT5k ZXY7Ci0KLQlwcGd0dC0+dm0udG90YWwgPSBIQVNfRlVMTF80OEJJVF9QUEdUVChpOTE1KSA/Ci0J CTFVTEwgPDwgNDggOgotCQkxVUxMIDw8IDMyOwotCi0JLyoKLQkgKiBGcm9tIGJkdywgdGhlcmUg aXMgc3VwcG9ydCBmb3IgcmVhZC1vbmx5IHBhZ2VzIGluIHRoZSBQUEdUVC4KLQkgKgotCSAqIFhY WCBHVlQgaXMgbm90IGhvbm91cmluZyB0aGUgbGFjayBvZiBSVyBpbiB0aGUgUFRFIGJpdHMuCi0J ICovCi0JcHBndHQtPnZtLmhhc19yZWFkX29ubHkgPSAhaW50ZWxfdmdwdV9hY3RpdmUoaTkxNSk7 Ci0KLQlpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdCgmcHBndHQtPnZtLCBpOTE1KTsKLQotCS8qIFRo ZXJlIGFyZSBvbmx5IGZldyBleGNlcHRpb25zIGZvciBnZW4gPj02LiBjaHYgYW5kIGJ4dC4KLQkg KiBBbmQgd2UgYXJlIG5vdCBzdXJlIGFib3V0IHRoZSBsYXR0ZXIgc28gcGxheSBzYWZlIGZvciBu b3cuCi0JICovCi0JaWYgKElTX0NIRVJSWVZJRVcoaTkxNSkgfHwgSVNfQlJPWFRPTihpOTE1KSkK LQkJcHBndHQtPnZtLnB0X2ttYXBfd2MgPSB0cnVlOwotCiAJZXJyID0gZ2VuOF9pbml0X3NjcmF0 Y2goJnBwZ3R0LT52bSk7CiAJaWYgKGVycikKLQkJZ290byBlcnJfZnJlZTsKKwkJcmV0dXJuIGVy cjsKIAogCWlmICh1c2VfNGx2bCgmcHBndHQtPnZtKSkgewogCQllcnIgPSBzZXR1cF9weCgmcHBn dHQtPnZtLCAmcHBndHQtPnBtbDQpOwpAQCAtMTY0Myw3ICsxNjE1LDYgQEAgc3RhdGljIHN0cnVj dCBpOTE1X2h3X3BwZ3R0ICpnZW44X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKIAkJCQlnb3RvIGVycl9zY3JhdGNoOwogCQkJfQogCQl9Ci0KIAkJcHBndHQtPnZt LmFsbG9jYXRlX3ZhX3JhbmdlID0gZ2VuOF9wcGd0dF9hbGxvY18zbHZsOwogCQlwcGd0dC0+dm0u aW5zZXJ0X2VudHJpZXMgPSBnZW44X3BwZ3R0X2luc2VydF8zbHZsOwogCQlwcGd0dC0+dm0uY2xl YXJfcmFuZ2UgPSBnZW44X3BwZ3R0X2NsZWFyXzNsdmw7CkBAIC0xNjU1LDE4ICsxNjI2LDExIEBA IHN0YXRpYyBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqZ2VuOF9wcGd0dF9jcmVhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcHBndHQtPnZtLmNsZWFudXAgPSBnZW44X3BwZ3R0X2Ns ZWFudXA7CiAJcHBndHQtPmRlYnVnX2R1bXAgPSBnZW44X2R1bXBfcHBndHQ7CiAKLQlwcGd0dC0+ dm0udm1hX29wcy5iaW5kX3ZtYSAgICA9IHBwZ3R0X2JpbmRfdm1hOwotCXBwZ3R0LT52bS52bWFf b3BzLnVuYmluZF92bWEgID0gcHBndHRfdW5iaW5kX3ZtYTsKLQlwcGd0dC0+dm0udm1hX29wcy5z ZXRfcGFnZXMgICA9IHBwZ3R0X3NldF9wYWdlczsKLQlwcGd0dC0+dm0udm1hX29wcy5jbGVhcl9w YWdlcyA9IGNsZWFyX3BhZ2VzOwotCi0JcmV0dXJuIHBwZ3R0OworCXJldHVybiAwOwogCiBlcnJf c2NyYXRjaDoKIAlnZW44X2ZyZWVfc2NyYXRjaCgmcHBndHQtPnZtKTsKLWVycl9mcmVlOgotCWtm cmVlKHBwZ3R0KTsKLQlyZXR1cm4gRVJSX1BUUihlcnIpOworCXJldHVybiBlcnI7CiB9CiAKIHN0 YXRpYyB2b2lkIGdlbjZfZHVtcF9wcGd0dChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqYmFzZSwgc3Ry dWN0IHNlcV9maWxlICptKQpAQCAtMjA4Nyw1NSArMjA1MSwzMSBAQCB2b2lkIGdlbjZfcHBndHRf dW5waW4oc3RydWN0IGk5MTVfaHdfcHBndHQgKmJhc2UpCiAJaTkxNV92bWFfdW5waW4ocHBndHQt PnZtYSk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqZ2VuNl9wcGd0dF9jcmVh dGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgaW50IGdlbjZfcHBndHRf Y3JlYXRlKHN0cnVjdCBnZW42X2h3X3BwZ3R0ICpwcGd0dCwKKwkJCSAgICAgc3RydWN0IGk5MTVf Z2d0dCAqIGNvbnN0IGdndHQpCiB7Ci0Jc3RydWN0IGk5MTVfZ2d0dCAqIGNvbnN0IGdndHQgPSAm aTkxNS0+Z2d0dDsKLQlzdHJ1Y3QgZ2VuNl9od19wcGd0dCAqcHBndHQ7CiAJaW50IGVycjsKIAot CXBwZ3R0ID0ga3phbGxvYyhzaXplb2YoKnBwZ3R0KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFwcGd0 dCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQlrcmVmX2luaXQoJnBwZ3R0LT5iYXNl LnJlZik7Ci0KLQlwcGd0dC0+YmFzZS52bS5pOTE1ID0gaTkxNTsKLQlwcGd0dC0+YmFzZS52bS5k bWEgPSAmaTkxNS0+ZHJtLnBkZXYtPmRldjsKLQotCXBwZ3R0LT5iYXNlLnZtLnRvdGFsID0gSTkx NV9QREVTICogR0VONl9QVEVTICogSTkxNV9HVFRfUEFHRV9TSVpFOwotCi0JaTkxNV9hZGRyZXNz X3NwYWNlX2luaXQoJnBwZ3R0LT5iYXNlLnZtLCBpOTE1KTsKLQogCXBwZ3R0LT5iYXNlLnZtLmFs bG9jYXRlX3ZhX3JhbmdlID0gZ2VuNl9hbGxvY192YV9yYW5nZTsKIAlwcGd0dC0+YmFzZS52bS5j bGVhcl9yYW5nZSA9IGdlbjZfcHBndHRfY2xlYXJfcmFuZ2U7CiAJcHBndHQtPmJhc2Uudm0uaW5z ZXJ0X2VudHJpZXMgPSBnZW42X3BwZ3R0X2luc2VydF9lbnRyaWVzOwogCXBwZ3R0LT5iYXNlLnZt LmNsZWFudXAgPSBnZW42X3BwZ3R0X2NsZWFudXA7CiAJcHBndHQtPmJhc2UuZGVidWdfZHVtcCA9 IGdlbjZfZHVtcF9wcGd0dDsKIAotCXBwZ3R0LT5iYXNlLnZtLnZtYV9vcHMuYmluZF92bWEgICAg PSBwcGd0dF9iaW5kX3ZtYTsKLQlwcGd0dC0+YmFzZS52bS52bWFfb3BzLnVuYmluZF92bWEgID0g cHBndHRfdW5iaW5kX3ZtYTsKLQlwcGd0dC0+YmFzZS52bS52bWFfb3BzLnNldF9wYWdlcyAgID0g cHBndHRfc2V0X3BhZ2VzOwotCXBwZ3R0LT5iYXNlLnZtLnZtYV9vcHMuY2xlYXJfcGFnZXMgPSBj bGVhcl9wYWdlczsKLQogCXBwZ3R0LT5iYXNlLnZtLnB0ZV9lbmNvZGUgPSBnZ3R0LT52bS5wdGVf ZW5jb2RlOwogCiAJZXJyID0gZ2VuNl9wcGd0dF9pbml0X3NjcmF0Y2gocHBndHQpOwogCWlmIChl cnIpCi0JCWdvdG8gZXJyX2ZyZWU7CisJCXJldHVybiBlcnI7CiAKIAlwcGd0dC0+dm1hID0gcGRf dm1hX2NyZWF0ZShwcGd0dCwgR0VONl9QRF9TSVpFKTsKIAlpZiAoSVNfRVJSKHBwZ3R0LT52bWEp KSB7CiAJCWVyciA9IFBUUl9FUlIocHBndHQtPnZtYSk7Ci0JCWdvdG8gZXJyX3NjcmF0Y2g7CisJ CWdlbjZfcHBndHRfZnJlZV9zY3JhdGNoKCZwcGd0dC0+YmFzZS52bSk7CisJCXJldHVybiBlcnI7 CiAJfQogCi0JcmV0dXJuICZwcGd0dC0+YmFzZTsKLQotZXJyX3NjcmF0Y2g6Ci0JZ2VuNl9wcGd0 dF9mcmVlX3NjcmF0Y2goJnBwZ3R0LT5iYXNlLnZtKTsKLWVycl9mcmVlOgotCWtmcmVlKHBwZ3R0 KTsKLQlyZXR1cm4gRVJSX1BUUihlcnIpOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBn dHRfd3JpdGVfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpA QCAtMjE4NywxMCArMjEyNyw1MyBAQCBpbnQgaTkxNV9wcGd0dF9pbml0X2h3KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqCiBf X2h3X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlpZiAo SU5URUxfR0VOKGk5MTUpIDwgOCkKLQkJcmV0dXJuIGdlbjZfcHBndHRfY3JlYXRlKGk5MTUpOwot CWVsc2UKLQkJcmV0dXJuIGdlbjhfcHBndHRfY3JlYXRlKGk5MTUpOworCXN0cnVjdCBnZW42X2h3 X3BwZ3R0ICpwcGd0dDsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKKwlpbnQgZXJy OworCisJcHBndHQgPSBremFsbG9jKHNpemVvZigqcHBndHQpLCBHRlBfS0VSTkVMKTsKKwlpZiAo IXBwZ3R0KQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCXZtID0gJnBwZ3R0LT5iYXNl LnZtOworCisJa3JlZl9pbml0KCZwcGd0dC0+YmFzZS5yZWYpOworCisJdm0tPmk5MTUgPSBpOTE1 OworCXZtLT5kbWEgPSAmaTkxNS0+ZHJtLnBkZXYtPmRldjsKKworCXZtLT50b3RhbCA9IEJJVF9V TEwoaTkxNS0+aW5mby5wcGd0dF9iaXRzKTsKKworCS8qCisJICogRnJvbSBiZHcsIHRoZXJlIGlz IHN1cHBvcnQgZm9yIHJlYWQtb25seSBwYWdlcyBpbiB0aGUgUFBHVFQuCisJICoKKwkgKiBYWFgg R1ZUIGlzIG5vdCBob25vcmluZyB0aGUgbGFjayBvZiBSVyBpbiB0aGUgUFRFIGJpdHMuCisJICov CisJdm0tPmhhc19yZWFkX29ubHkgPQorCQkoSU5URUxfR0VOKGk5MTUpIDwgOCkgPyBmYWxzZSA6 IWludGVsX3ZncHVfYWN0aXZlKGk5MTUpOworCisJaTkxNV9hZGRyZXNzX3NwYWNlX2luaXQodm0s IGk5MTUpOworCisJLyogVGhlcmUgYXJlIG9ubHkgZmV3IGV4Y2VwdGlvbnMgZm9yIGdlbiA+PSA2 LiBjaHYgYW5kIGJ4dC4KKwkgKiBBbmQgd2UgYXJlIG5vdCBzdXJlIGFib3UgdGhlIGxhdHRlciBz byBwbGF5IHNhZmUgZm9yIG5vdy4KKwkgKi8KKwlpZiAoSVNfQ0hFUlJZVklFVyhpOTE1KSB8fCBJ U19CUk9YVE9OKGk5MTUpKQorCQl2bS0+cHRfa21hcF93YyA9IHRydWU7CisKKwllcnIgPSAoSU5U RUxfR0VOKGk5MTUpIDwgOCkgPyAgZ2VuNl9wcGd0dF9jcmVhdGUocHBndHQsICZpOTE1LT5nZ3R0 KSA6CisJCWdlbjhfcHBndHRfY3JlYXRlKCZwcGd0dC0+YmFzZSk7CisKKwlpZiAoZXJyKSB7CisJ CWtmcmVlKHBwZ3R0KTsKKwkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKKwl9CisKKwl2bS0+dm1hX29w cy5iaW5kX3ZtYSAgICA9IHBwZ3R0X2JpbmRfdm1hOworCXZtLT52bWFfb3BzLnVuYmluZF92bWEg ID0gcHBndHRfdW5iaW5kX3ZtYTsKKwl2bS0+dm1hX29wcy5zZXRfcGFnZXMgICA9IHBwZ3R0X3Nl dF9wYWdlczsKKwl2bS0+dm1hX29wcy5jbGVhcl9wYWdlcyA9IGNsZWFyX3BhZ2VzOworCisJcmV0 dXJuICZwcGd0dC0+YmFzZTsKIH0KIAogc3RydWN0IGk5MTVfaHdfcHBndHQgKgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuaAppbmRleCA3ZTJhZjVmNGYzOWIuLmIyYTcwOWEyN2NiOSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKQEAgLTM2Myw3ICszNjMsNyBAQCBzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlIHsKICNkZWZpbmUgaTkxNV9pc19nZ3R0KHZtKSAoKHZtKS0+aXNf Z2d0dCkKIAogc3RhdGljIGlubGluZSBib29sCi1pOTE1X3ZtX2lzXzQ4Yml0KGNvbnN0IHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQoraTkxNV92bV9pc180bHZsKGNvbnN0IHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogewogCXJldHVybiAodm0tPnRvdGFsIC0gMSkgPj4gMzI7 CiB9CkBAIC01MDYsNyArNTA2LDcgQEAgc3RhdGljIGlubGluZSB1MzIgZ2VuNl9wZGVfaW5kZXgo dTMyIGFkZHIpCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAogaTkxNV9wZHBlc19wZXJfcGRw KGNvbnN0IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogewotCWlmIChpOTE1X3ZtX2lz XzQ4Yml0KHZtKSkKKwlpZiAoaTkxNV92bV9pc180bHZsKHZtKSkKIAkJcmV0dXJuIEdFTjhfUE1M NEVTX1BFUl9QTUw0OwogCiAJcmV0dXJuIEdFTjhfM0xWTF9QRFBFUzsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BjaS5jCmluZGV4IDlkZGQyZGI5MDZjZS4uMDdkNzdkMmU3OWQ4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcGNpLmMKQEAgLTI1Myw2ICsyNTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rl dmljZV9pbmZvIGludGVsX2lyb25sYWtlX21faW5mbyA9IHsKIAkuaGFzX3JjNiA9IDEsIFwKIAku aGFzX3JjNnAgPSAxLCBcCiAJLnBwZ3R0ID0gSU5URUxfUFBHVFRfQUxJQVNJTkcsIFwKKwkucHBn dHRfYml0cyA9IDMxLCBcCiAJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsIFwKIAlHRU5fREVGQVVM VF9QQUdFX1NJWkVTLCBcCiAJQ1VSU09SX09GRlNFVFMKQEAgLTI5OCw2ICsyOTksNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3NhbmR5YnJpZGdlX21fZ3Qy X2luZm8gPSB7CiAJLmhhc19yYzYgPSAxLCBcCiAJLmhhc19yYzZwID0gMSwgXAogCS5wcGd0dCA9 IElOVEVMX1BQR1RUX0ZVTEwsIFwKKwkucHBndHRfYml0cyA9IDMxLCBcCiAJR0VOX0RFRkFVTFRf UElQRU9GRlNFVFMsIFwKIAlHRU5fREVGQVVMVF9QQUdFX1NJWkVTLCBcCiAJSVZCX0NVUlNPUl9P RkZTRVRTCkBAIC0zNTEsNiArMzUzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZp Y2VfaW5mbyBpbnRlbF92YWxsZXl2aWV3X2luZm8gPSB7CiAJLmhhc19nbWNoX2Rpc3BsYXkgPSAx LAogCS5oYXNfaG90cGx1ZyA9IDEsCiAJLnBwZ3R0ID0gSU5URUxfUFBHVFRfRlVMTCwKKwkucHBn dHRfYml0cyA9IDMxLAogCS5oYXNfc25vb3AgPSB0cnVlLAogCS5oYXNfY29oZXJlbnRfZ2d0dCA9 IGZhbHNlLAogCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcs CkBAIC0zOTgsNiArNDAxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5m byBpbnRlbF9oYXN3ZWxsX2d0M19pbmZvID0gewogCQkgICAgICBJOTE1X0dUVF9QQUdFX1NJWkVf Mk0sIFwKIAkuaGFzX2xvZ2ljYWxfcmluZ19jb250ZXh0cyA9IDEsIFwKIAkucHBndHQgPSBJTlRF TF9QUEdUVF9GVUxMXzRMVkwsIFwKKwkucHBndHRfYml0cyA9IDQ4LCBcCiAJLmhhc182NGJpdF9y ZWxvYyA9IDEsIFwKIAkuaGFzX3Jlc2V0X2VuZ2luZSA9IDEKIApAQCAtNDQyLDYgKzQ0Niw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfY2hlcnJ5dmlld19p bmZvID0gewogCS5oYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzID0gMSwKIAkuaGFzX2dtY2hfZGlz cGxheSA9IDEsCiAJLnBwZ3R0ID0gSU5URUxfUFBHVFRfRlVMTCwKKwkucHBndHRfYml0cyA9IDMy LAogCS5oYXNfcmVzZXRfZW5naW5lID0gMSwKIAkuaGFzX3Nub29wID0gdHJ1ZSwKIAkuaGFzX2Nv aGVyZW50X2dndHQgPSBmYWxzZSwKQEAgLTUxOCw2ICs1MjMsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3NreWxha2VfZ3Q0X2luZm8gPSB7CiAJLmhhc19s b2dpY2FsX3JpbmdfcHJlZW1wdGlvbiA9IDEsIFwKIAkuaGFzX2d1YyA9IDEsIFwKIAkucHBndHQg PSBJTlRFTF9QUEdUVF9GVUxMXzRMVkwsIFwKKwkucHBndHRfYml0cyA9IDQ4LCBcCiAJLmhhc19y ZXNldF9lbmdpbmUgPSAxLCBcCiAJLmhhc19zbm9vcCA9IHRydWUsIFwKIAkuaGFzX2NvaGVyZW50 X2dndHQgPSBmYWxzZSwgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w dmluZm8uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZvLmgKaW5kZXggZWVhYTNk NTA2ZDk1Li5iYzdjYmRjYTAyYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcHZpbmZvLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaApAQCAt NTIsNyArNTIsNyBAQCBlbnVtIHZndF9nMnZfdHlwZSB7CiAvKgogICogVkdUIGNhcGFiaWxpdGll cyB0eXBlCiAgKi8KLSNkZWZpbmUgVkdUX0NBUFNfRlVMTF80OEJJVF9QUEdUVAlCSVQoMikKKyNk ZWZpbmUgVkdUX0NBUFNfNExWTF9QUEdUVAkJQklUKDIpCiAjZGVmaW5lIFZHVF9DQVBTX0hXU1Bf RU1VTEFUSU9OCQlCSVQoMykKICNkZWZpbmUgVkdUX0NBUFNfSFVHRV9HVFQJCUJJVCg0KQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfdmdwdS5jCmluZGV4IDg2OWNmNGEzYjZkZS4uNGVjYjRkNmU2N2Y4IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwpAQCAtODEsOSArODEsOSBAQCB2b2lkIGk5MTVfY2hl Y2tfdmdwdShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJRFJNX0lORk8oIlZp cnR1YWwgR1BVIGZvciBJbnRlbCBHVlQtZyBkZXRlY3RlZC5cbiIpOwogfQogCi1ib29sIGludGVs X3ZncHVfaGFzX2Z1bGxfNDhiaXRfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQorYm9vbCBpbnRlbF92Z3B1X2hhc180bHZsX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKLQlyZXR1cm4gZGV2X3ByaXYtPnZncHUuY2FwcyAmIFZHVF9DQVBT X0ZVTExfNDhCSVRfUFBHVFQ7CisJcmV0dXJuIGRldl9wcml2LT52Z3B1LmNhcHMgJiBWR1RfQ0FQ U180TFZMX1BQR1RUOwogfQogCiBzdHJ1Y3QgX2JhbGxvb25faW5mb18gewpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3ZncHUuaAppbmRleCA1NTFhY2MzOTAwNDYuLjUyNjViNjM1N2ZiYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV92Z3B1LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogdm9pZCBpOTE1X2NoZWNrX3ZncHUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIAotYm9vbCBpbnRlbF92Z3B1X2hh c19mdWxsXzQ4Yml0X3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Citi b29sIGludGVsX3ZncHVfaGFzXzRsdmxfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKIAogc3RhdGljIGlubGluZSBib29sCiBpbnRlbF92Z3B1X2hhc19od3NwX2VtdWxh dGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGV2aWNlX2luZm8uaAppbmRleCBhZjcwMDI2NDBjZGYuLjQ5ODBkYThjY2ZjMyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCkBAIC0xODksNiArMTg5 LDkgQEAgc3RydWN0IGludGVsX2RldmljZV9pbmZvIHsKIAkJdTE2IGRlZ2FtbWFfbHV0X3NpemU7 CiAJCXUxNiBnYW1tYV9sdXRfc2l6ZTsKIAl9IGNvbG9yOworCisJLyogRnVsbCBQUEdUVCBhZGRy ZXNzIHJhbmdlIHNpemUgKi8KKwlpbnQgcHBndHRfYml0czsKIH07CiAKIHN0cnVjdCBpbnRlbF9k cml2ZXJfY2FwcyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDE1MzQ1ZTc0ZDhjZS4u Yjg4OTUxNTkyYmMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtNDI0LDcgKzQyNCw3 IEBAIHN0YXRpYyB1NjQgZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVl c3QgKnJxKQogCSAqIFBNTDQgaXMgYWxsb2NhdGVkIGR1cmluZyBwcGd0dCBpbml0LCBzbyB0aGlz IGlzIG5vdCBuZWVkZWQKIAkgKiBpbiA0OC1iaXQgbW9kZS4KIAkgKi8KLQlpZiAoIWk5MTVfdm1f aXNfNDhiaXQoJnBwZ3R0LT52bSkpCisJaWYgKCFpOTE1X3ZtX2lzXzRsdmwoJnBwZ3R0LT52bSkp CiAJCWV4ZWNsaXN0c191cGRhdGVfY29udGV4dF9wZHBzKHBwZ3R0LCByZWdfc3RhdGUpOwogCiAJ cmV0dXJuIGNlLT5scmNfZGVzYzsKQEAgLTIwNTAsNyArMjA1MCw3IEBAIHN0YXRpYyBpbnQgZ2Vu OF9lbWl0X2JiX3N0YXJ0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCSAqIG5vdCBpZGxlKS4g UE1MNCBpcyBhbGxvY2F0ZWQgZHVyaW5nIHBwZ3R0IGluaXQgc28gdGhpcyBpcwogCSAqIG5vdCBu ZWVkZWQgaW4gNDgtYml0LiovCiAJaWYgKChpbnRlbF9lbmdpbmVfZmxhZyhycS0+ZW5naW5lKSAm IHJxLT5nZW1fY29udGV4dC0+cHBndHQtPnBkX2RpcnR5X3JpbmdzKSAmJgotCSAgICAhaTkxNV92 bV9pc180OGJpdCgmcnEtPmdlbV9jb250ZXh0LT5wcGd0dC0+dm0pICYmCisJICAgICFpOTE1X3Zt X2lzXzRsdmwoJnJxLT5nZW1fY29udGV4dC0+cHBndHQtPnZtKSAmJgogCSAgICAhaW50ZWxfdmdw dV9hY3RpdmUocnEtPmk5MTUpKSB7CiAJCXJldCA9IGludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3Bk cHMocnEpOwogCQlpZiAocmV0KQpAQCAtMjcyMiw3ICsyNzIyLDcgQEAgc3RhdGljIHZvaWQgZXhl Y2xpc3RzX2luaXRfcmVnX3N0YXRlKHUzMiAqcmVncywKIAlDVFhfUkVHKHJlZ3MsIENUWF9QRFAw X1VEVywgR0VOOF9SSU5HX1BEUF9VRFcoZW5naW5lLCAwKSwgMCk7CiAJQ1RYX1JFRyhyZWdzLCBD VFhfUERQMF9MRFcsIEdFTjhfUklOR19QRFBfTERXKGVuZ2luZSwgMCksIDApOwogCi0JaWYgKGk5 MTVfdm1faXNfNDhiaXQoJmN0eC0+cHBndHQtPnZtKSkgeworCWlmIChpOTE1X3ZtX2lzXzRsdmwo JmN0eC0+cHBndHQtPnZtKSkgewogCQkvKiA2NGIgUFBHVFQgKDQ4Yml0IGNhbm9uaWNhbCkKIAkJ ICogUERQMF9ERVNDUklQVE9SIGNvbnRhaW5zIHRoZSBiYXNlIGFkZHJlc3MgdG8gUE1MNCBhbmQK IAkJICogb3RoZXIgUERQIERlc2NyaXB0b3JzIGFyZSBpZ25vcmVkLgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMKaW5kZXggMDllYTY1YTI5ZDk4Li42MGIwMTI3 ODEwMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX3Bh Z2VzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYwpA QCAtMTQzNiw4ICsxNDM2LDggQEAgc3RhdGljIGludCBpZ3RfcHBndHRfcGluX3VwZGF0ZSh2b2lk ICphcmcpCiAJICogaHVnZS1ndHQtcGFnZXMuCiAJICovCiAKLQlpZiAoIUhBU19GVUxMXzQ4QklU X1BQR1RUKGRldl9wcml2KSkgewotCQlwcl9pbmZvKCI0OGIgUFBHVFQgbm90IHN1cHBvcnRlZCwg c2tpcHBpbmdcbiIpOworCWlmICghSEFTXzRMVkxfUFBHVFQoZGV2X3ByaXYpKSB7CisJCXByX2lu Zm8oIkV4dGVuZGVkIHJhbmdlIFBQR1RUIG5vdCBzdXBwb3J0ZWQsIHNraXBwaW5nXG4iKTsKIAkJ cmV0dXJuIDA7CiAJfQogCkBAIC0xNzA5LDggKzE3MDksOCBAQCBpbnQgaTkxNV9nZW1faHVnZV9w YWdlX21vY2tfc2VsZnRlc3RzKHZvaWQpCiAJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAKLQlpZiAo IWk5MTVfdm1faXNfNDhiaXQoJnBwZ3R0LT52bSkpIHsKLQkJcHJfZXJyKCJmYWlsZWQgdG8gY3Jl YXRlIDQ4YiBQUEdUVFxuIik7CisJaWYgKCFpOTE1X3ZtX2lzXzRsdmwoJnBwZ3R0LT52bSkpIHsK KwkJcHJfZXJyKCJmYWlsZWQgdG8gY3JlYXRlIGV4dGVuZGVkIFBQR1RUXG4iKTsKIAkJZXJyID0g LUVJTlZBTDsKIAkJZ290byBvdXRfY2xvc2U7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCmluZGV4IDQzZWQ4YjI4YWVhYS4uNzcxNTVk ZDZlMmE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19n ZW1fZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2Vt X2RldmljZS5jCkBAIC0xODEsNiArMTgxLDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKm1v Y2tfZ2VtX2RldmljZSh2b2lkKQogCQlJOTE1X0dUVF9QQUdFX1NJWkVfNjRLIHwKIAkJSTkxNV9H VFRfUEFHRV9TSVpFXzJNOwogCisJbWt3cml0ZV9kZXZpY2VfaW5mbyhpOTE1KS0+cHBndHRfYml0 cyA9IDYzOworCiAJbW9ja191bmNvcmVfaW5pdChpOTE1KTsKIAlpOTE1X2dlbV9pbml0X19tbShp OTE1KTsKIAotLSAKMi4xNC40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK