From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: [PATCH 2/6] drm/i915: Add second slice l3 remapping Date: Tue, 17 Sep 2013 21:12:43 -0700 Message-ID: <1379477575-2164-2-git-send-email-benjamin.widawsky@intel.com> References: <1379477575-2164-1-git-send-email-benjamin.widawsky@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bwidawsk.net (bwidawsk.net [166.78.191.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 5AC43E5C0A for ; Tue, 17 Sep 2013 21:13:17 -0700 (PDT) In-Reply-To: <1379477575-2164-1-git-send-email-benjamin.widawsky@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Intel GFX Cc: Bryan Bell , Ben Widawsky , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org Q2VydGFpbiBIU1cgU0tVcyBoYXZlIGEgc2Vjb25kIGJhbmsgb2YgTDMuIFRoaXMgTDMgcmVtYXBw aW5nIGhhcyBhCnNlcGFyYXRlIHJlZ2lzdGVyIHNldCwgYW5kIGludGVycnVwdCBmcm9tIHRoZSBm aXJzdCAic2xpY2UiLiBBIHNsaWNlIGlzCnNpbXBseSBhIHRlcm0gdG8gZGVmaW5lIHNvbWUgc3Vi c2V0IG9mIHRoZSBHUFUncyBsMyBjYWNoZS4gVGhpcyBwYXRjaAppbXBsZW1lbnRzIGJvdGggdGhl IGludGVycnVwdCBoYW5kbGVyLCBhbmQgYWJpbGl0eSB0byBjb21tdW5pY2F0ZSB3aXRoCnVzZXJz cGFjZSBhYm91dCB0aGlzIHNlY29uZCBzbGljZS4KCnYyOiAgUmVtb3ZlIHJlZHVuZGFudCBjaGVj ayBhYm91dCBub24tZXhpc3RlbnQgc2xpY2UuCkNoYW5nZSB3YXJuaW5nIGFib3V0IGludGVycnVw dHMgb2YgdW5rbm93biBzbGljZXMgdG8gV0FSTl9PTl9PTkNFCkhhbmRsZSB0aGUgY2FzZSB3aGVy ZSB3ZSBnZXQgMiBzbGljZSBpbnRlcnJ1cHRzIGNvbmN1cnJlbnRseSwgYW5kIHN3aXRjaAp0aGUg dHJhY2tpbmcgb2YgaW50ZXJydXB0cyB0byBiZSBub24tZGVzdHJ1Y3RpdmUgKGFsbCBWaWxsZSkK RG9uJ3QgZW5hYmxlL21hc2sgdGhlIHNlY29uZCBzbGljZSBwYXJpdHkgaW50ZXJydXB0IGZvciBp dmIvdmx2IChldmVuCnRob3VnaCBhbGwgZG9jcyBJIGNhbiBmaW5kIGNsYWltIGl0J3MgcnN2ZCkg KFZpbGxlICsgQnJ5YW4pCktlZXAgQllUIGV4Y2x1ZGVkIGZyb20gTDMgcGFyaXR5CgpDQzogVmls bGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1i eTogQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICA3ICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyAgICAgICAgIHwgMjYgKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYyAgICAgICAgIHwgODggKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgfCAgNyArKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYyAgICAgICB8IDM0ICsrKysrKysrKystLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICA3ICsrLQogaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oICAgICAgICAgICAgIHwgIDggKy0tCiA3IGZpbGVzIGNoYW5nZWQsIDEx NiBpbnNlcnRpb25zKCspLCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApp bmRleCA4YjE2ZDQ3Li5jNmU4ZGY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTkxNyw5 ICs5MTcsMTEgQEAgc3RydWN0IGk5MTVfdW1zX3N0YXRlIHsKIAlpbnQgbW1fc3VzcGVuZGVkOwog fTsKIAorI2RlZmluZSBNQVhfTDNfU0xJQ0VTIDIKIHN0cnVjdCBpbnRlbF9sM19wYXJpdHkgewot CXUzMiAqcmVtYXBfaW5mbzsKKwl1MzIgKnJlbWFwX2luZm9bTUFYX0wzX1NMSUNFU107CiAJc3Ry dWN0IHdvcmtfc3RydWN0IGVycm9yX3dvcms7CisJaW50IHdoaWNoX3NsaWNlOwogfTsKIAogc3Ry dWN0IGk5MTVfZ2VtX21tIHsKQEAgLTE2ODYsNiArMTY4OCw3IEBAIHN0cnVjdCBkcm1faTkxNV9m aWxlX3ByaXZhdGUgewogI2RlZmluZSBIQVNfRk9SQ0VfV0FLRShkZXYpIChJTlRFTF9JTkZPKGRl diktPmhhc19mb3JjZV93YWtlKQogCiAjZGVmaW5lIEhBU19MM19HUFVfQ0FDSEUoZGV2KSAoSVNf SVZZQlJJREdFKGRldikgfHwgSVNfSEFTV0VMTChkZXYpKQorI2RlZmluZSBOVU1fTDNfU0xJQ0VT KGRldikgKElTX0hTV19HVDMoZGV2KSA/IDIgOiBIQVNfTDNfR1BVX0NBQ0hFKGRldikpCiAKICNk ZWZpbmUgR1RfRlJFUVVFTkNZX01VTFRJUExJRVIgNTAKIApAQCAtMTk0Niw3ICsxOTQ5LDcgQEAg Ym9vbCBpOTE1X2dlbV9jbGZsdXNoX29iamVjdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLCBib29sIGZvcmNlKTsKIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fb2JqZWN0X2Zpbmlz aF9ncHUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiBpbnQgX19tdXN0X2NoZWNr IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgX19tdXN0X2NoZWNr IGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci12b2lkIGk5MTVfZ2Vt X2wzX3JlbWFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwordm9pZCBpOTE1X2dlbV9sM19yZW1h cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2xpY2UpOwogdm9pZCBpOTE1X2dlbV9pbml0 X3N3aXp6bGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaTkxNV9nZW1fY2xlYW51 cF9yaW5nYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IF9fbXVzdF9jaGVjayBp OTE1X2dwdV9pZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKaW5kZXggM2QzZGU2ZS4uNjZiZjc1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC00 MjUyLDE2ICs0MjUyLDE1IEBAIGk5MTVfZ2VtX2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAlyZXR1cm4gMDsKIH0KIAotdm9pZCBpOTE1X2dlbV9sM19yZW1hcChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQordm9pZCBpOTE1X2dlbV9sM19yZW1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBp bnQgc2xpY2UpCiB7CiAJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7CisJdTMyIHJlZ19iYXNlID0gR0VON19MM0xPR19CQVNFICsgKHNsaWNlICogMHgyMDAp OworCXUzMiAqcmVtYXBfaW5mbyA9IGRldl9wcml2LT5sM19wYXJpdHkucmVtYXBfaW5mb1tzbGlj ZV07CiAJdTMyIG1pc2NjcGN0bDsKIAlpbnQgaTsKIAotCWlmICghSEFTX0wzX0dQVV9DQUNIRShk ZXYpKQotCQlyZXR1cm47Ci0KLQlpZiAoIWRldl9wcml2LT5sM19wYXJpdHkucmVtYXBfaW5mbykK KwlpZiAoIUhBU19MM19HUFVfQ0FDSEUoZGV2KSB8fCAhcmVtYXBfaW5mbykKIAkJcmV0dXJuOwog CiAJbWlzY2NwY3RsID0gSTkxNV9SRUFEKEdFTjdfTUlTQ0NQQ1RMKTsKQEAgLTQyNjksMTcgKzQy NjgsMTcgQEAgdm9pZCBpOTE1X2dlbV9sM19yZW1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CVBPU1RJTkdfUkVBRChHRU43X01JU0NDUENUTCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgR0VON19M M0xPR19TSVpFOyBpICs9IDQpIHsKLQkJdTMyIHJlbWFwID0gSTkxNV9SRUFEKEdFTjdfTDNMT0df QkFTRSArIGkpOwotCQlpZiAocmVtYXAgJiYgcmVtYXAgIT0gZGV2X3ByaXYtPmwzX3Bhcml0eS5y ZW1hcF9pbmZvW2kvNF0pCisJCXUzMiByZW1hcCA9IEk5MTVfUkVBRChyZWdfYmFzZSArIGkpOwor CQlpZiAocmVtYXAgJiYgcmVtYXAgIT0gcmVtYXBfaW5mb1tpLzRdKQogCQkJRFJNX0RFQlVHKCIw eCV4IHdhcyBhbHJlYWR5IHByb2dyYW1tZWQgdG8gJXhcbiIsCi0JCQkJICBHRU43X0wzTE9HX0JB U0UgKyBpLCByZW1hcCk7Ci0JCWlmIChyZW1hcCAmJiAhZGV2X3ByaXYtPmwzX3Bhcml0eS5yZW1h cF9pbmZvW2kvNF0pCisJCQkJICByZWdfYmFzZSArIGksIHJlbWFwKTsKKwkJaWYgKHJlbWFwICYm ICFyZW1hcF9pbmZvW2kvNF0pCiAJCQlEUk1fREVCVUdfRFJJVkVSKCJDbGVhcmluZyByZW1hcHBl ZCByZWdpc3RlclxuIik7Ci0JCUk5MTVfV1JJVEUoR0VON19MM0xPR19CQVNFICsgaSwgZGV2X3By aXYtPmwzX3Bhcml0eS5yZW1hcF9pbmZvW2kvNF0pOworCQlJOTE1X1dSSVRFKHJlZ19iYXNlICsg aSwgcmVtYXBfaW5mb1tpLzRdKTsKIAl9CiAKIAkvKiBNYWtlIHN1cmUgYWxsIHRoZSB3cml0ZXMg bGFuZCBiZWZvcmUgZGlzYWJsaW5nIGRvcCBjbG9jayBnYXRpbmcgKi8KLQlQT1NUSU5HX1JFQUQo R0VON19MM0xPR19CQVNFKTsKKwlQT1NUSU5HX1JFQUQocmVnX2Jhc2UpOwogCiAJSTkxNV9XUklU RShHRU43X01JU0NDUENUTCwgbWlzY2NwY3RsKTsKIH0KQEAgLTQzNzMsNyArNDM3Miw3IEBAIGlu dAogaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCWRybV9pOTE1 X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCByZXQ7CisJaW50 IHJldCwgaTsKIAogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDYgJiYgIWludGVsX2VuYWJs ZV9ndHQoKSkKIAkJcmV0dXJuIC1FSU87CkBAIC00MzkyLDcgKzQzOTEsOCBAQCBpOTE1X2dlbV9p bml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCUk5MTVfV1JJVEUoR0VON19NU0dfQ1RM LCB0ZW1wKTsKIAl9CiAKLQlpOTE1X2dlbV9sM19yZW1hcChkZXYpOworCWZvciAoaSA9IDA7IGkg PCBOVU1fTDNfU0xJQ0VTKGRldik7IGkrKykKKwkJaTkxNV9nZW1fbDNfcmVtYXAoZGV2LCBpKTsK IAogCWk5MTVfZ2VtX2luaXRfc3dpenpsaW5nKGRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j CmluZGV4IGE0MmYzMGIuLmIxMWVlMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtODg4 LDkgKzg4OCwxMCBAQCBzdGF0aWMgdm9pZCBpdnlicmlkZ2VfcGFyaXR5X3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBjb250YWlu ZXJfb2Yod29yaywgZHJtX2k5MTVfcHJpdmF0ZV90LAogCQkJCQkJICAgIGwzX3Bhcml0eS5lcnJv cl93b3JrKTsKIAl1MzIgZXJyb3Jfc3RhdHVzLCByb3csIGJhbmssIHN1YmJhbms7Ci0JY2hhciAq cGFyaXR5X2V2ZW50WzVdOworCWNoYXIgKnBhcml0eV9ldmVudFs2XTsKIAl1aW50MzJfdCBtaXNj Y3BjdGw7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1aW50OF90IHNsaWNlID0gMDsKIAogCS8q IFdlIG11c3QgdHVybiBvZmYgRE9QIGxldmVsIGNsb2NrIGdhdGluZyB0byBhY2Nlc3MgdGhlIEwz IHJlZ2lzdGVycy4KIAkgKiBJbiBvcmRlciB0byBwcmV2ZW50IGEgZ2V0L3B1dCBzdHlsZSBpbnRl cmZhY2UsIGFjcXVpcmUgc3RydWN0IG11dGV4CkBAIC04OTgsNDUgKzg5OSw2MyBAQCBzdGF0aWMg dm9pZCBpdnlicmlkZ2VfcGFyaXR5X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCSAq LwogCW11dGV4X2xvY2soJmRldl9wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7CiAKKwkvKiBJZiB3 ZSd2ZSBzY3Jld2VkIHVwIHRyYWNraW5nLCBqdXN0IGxldCB0aGUgaW50ZXJydXB0IGZpcmUgYWdh aW4gKi8KKwlpZiAoV0FSTl9PTighZGV2X3ByaXYtPmwzX3Bhcml0eS53aGljaF9zbGljZSkpCisJ CWdvdG8gb3V0OworCiAJbWlzY2NwY3RsID0gSTkxNV9SRUFEKEdFTjdfTUlTQ0NQQ1RMKTsKIAlJ OTE1X1dSSVRFKEdFTjdfTUlTQ0NQQ1RMLCBtaXNjY3BjdGwgJiB+R0VON19ET1BfQ0xPQ0tfR0FU RV9FTkFCTEUpOwogCVBPU1RJTkdfUkVBRChHRU43X01JU0NDUENUTCk7CiAKLQllcnJvcl9zdGF0 dXMgPSBJOTE1X1JFQUQoR0VON19MM0NERVJSU1QxKTsKLQlyb3cgPSBHRU43X1BBUklUWV9FUlJP Ul9ST1coZXJyb3Jfc3RhdHVzKTsKLQliYW5rID0gR0VON19QQVJJVFlfRVJST1JfQkFOSyhlcnJv cl9zdGF0dXMpOwotCXN1YmJhbmsgPSBHRU43X1BBUklUWV9FUlJPUl9TVUJCQU5LKGVycm9yX3N0 YXR1cyk7CisJd2hpbGUgKChzbGljZSA9IGZmcyhkZXZfcHJpdi0+bDNfcGFyaXR5LndoaWNoX3Ns aWNlKSkgIT0gMCkgeworCQl1MzIgcmVnOwogCi0JSTkxNV9XUklURShHRU43X0wzQ0RFUlJTVDEs IEdFTjdfUEFSSVRZX0VSUk9SX1ZBTElEIHwKLQkJCQkgICAgR0VON19MM0NERVJSU1QxX0VOQUJM RSk7Ci0JUE9TVElOR19SRUFEKEdFTjdfTDNDREVSUlNUMSk7CisJCWlmIChXQVJOX09OX09OQ0Uo c2xpY2UgPj0gTlVNX0wzX1NMSUNFUyhkZXZfcHJpdi0+ZGV2KSkpCisJCQlicmVhazsKIAotCUk5 MTVfV1JJVEUoR0VON19NSVNDQ1BDVEwsIG1pc2NjcGN0bCk7CisJCWRldl9wcml2LT5sM19wYXJp dHkud2hpY2hfc2xpY2UgJj0gfigxPDxzbGljZSk7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2 X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Ci0JaWxrX2VuYWJsZV9ndF9pcnEoZGV2X3ByaXYsIEdU X1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUKTsKLQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKKwkJcmVnID0gR0VON19MM0NERVJSU1Qx ICsgKHNsaWNlICogMHgyMDApOwogCi0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1 Y3RfbXV0ZXgpOworCQllcnJvcl9zdGF0dXMgPSBJOTE1X1JFQUQocmVnKTsKKwkJcm93ID0gR0VO N19QQVJJVFlfRVJST1JfUk9XKGVycm9yX3N0YXR1cyk7CisJCWJhbmsgPSBHRU43X1BBUklUWV9F UlJPUl9CQU5LKGVycm9yX3N0YXR1cyk7CisJCXN1YmJhbmsgPSBHRU43X1BBUklUWV9FUlJPUl9T VUJCQU5LKGVycm9yX3N0YXR1cyk7CisKKwkJSTkxNV9XUklURShyZWcsIEdFTjdfUEFSSVRZX0VS Uk9SX1ZBTElEIHwgR0VON19MM0NERVJSU1QxX0VOQUJMRSk7CisJCVBPU1RJTkdfUkVBRChyZWcp OworCisJCXBhcml0eV9ldmVudFswXSA9IEk5MTVfTDNfUEFSSVRZX1VFVkVOVCAiPTEiOworCQlw YXJpdHlfZXZlbnRbMV0gPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIlJPVz0lZCIsIHJvdyk7CisJ CXBhcml0eV9ldmVudFsyXSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiQkFOSz0lZCIsIGJhbmsp OworCQlwYXJpdHlfZXZlbnRbM10gPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIlNVQkJBTks9JWQi LCBzdWJiYW5rKTsKKwkJcGFyaXR5X2V2ZW50WzRdID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICJT TElDRT0lZCIsIHNsaWNlKTsKKwkJcGFyaXR5X2V2ZW50WzVdID0gTlVMTDsKKworCQlrb2JqZWN0 X3VldmVudF9lbnYoJmRldl9wcml2LT5kZXYtPnByaW1hcnktPmtkZXYua29iaiwKKwkJCQkgICBL T0JKX0NIQU5HRSwgcGFyaXR5X2V2ZW50KTsKIAotCXBhcml0eV9ldmVudFswXSA9IEk5MTVfTDNf UEFSSVRZX1VFVkVOVCAiPTEiOwotCXBhcml0eV9ldmVudFsxXSA9IGthc3ByaW50ZihHRlBfS0VS TkVMLCAiUk9XPSVkIiwgcm93KTsKLQlwYXJpdHlfZXZlbnRbMl0gPSBrYXNwcmludGYoR0ZQX0tF Uk5FTCwgIkJBTks9JWQiLCBiYW5rKTsKLQlwYXJpdHlfZXZlbnRbM10gPSBrYXNwcmludGYoR0ZQ X0tFUk5FTCwgIlNVQkJBTks9JWQiLCBzdWJiYW5rKTsKLQlwYXJpdHlfZXZlbnRbNF0gPSBOVUxM OworCQlEUk1fREVCVUcoIlBhcml0eSBlcnJvcjogU2xpY2UgPSAlZCwgUm93ID0gJWQsIEJhbmsg PSAlZCwgU3ViIGJhbmsgPSAlZC5cbiIsCisJCQkgIHNsaWNlLCByb3csIGJhbmssIHN1YmJhbmsp OwogCi0Ja29iamVjdF91ZXZlbnRfZW52KCZkZXZfcHJpdi0+ZGV2LT5wcmltYXJ5LT5rZGV2Lmtv YmosCi0JCQkgICBLT0JKX0NIQU5HRSwgcGFyaXR5X2V2ZW50KTsKKwkJa2ZyZWUocGFyaXR5X2V2 ZW50WzRdKTsKKwkJa2ZyZWUocGFyaXR5X2V2ZW50WzNdKTsKKwkJa2ZyZWUocGFyaXR5X2V2ZW50 WzJdKTsKKwkJa2ZyZWUocGFyaXR5X2V2ZW50WzFdKTsKKwl9CiAKLQlEUk1fREVCVUcoIlBhcml0 eSBlcnJvcjogUm93ID0gJWQsIEJhbmsgPSAlZCwgU3ViIGJhbmsgPSAlZC5cbiIsCi0JCSAgcm93 LCBiYW5rLCBzdWJiYW5rKTsKKwlJOTE1X1dSSVRFKEdFTjdfTUlTQ0NQQ1RMLCBtaXNjY3BjdGwp OwogCi0Ja2ZyZWUocGFyaXR5X2V2ZW50WzNdKTsKLQlrZnJlZShwYXJpdHlfZXZlbnRbMl0pOwot CWtmcmVlKHBhcml0eV9ldmVudFsxXSk7CitvdXQ6CisJV0FSTl9PTihkZXZfcHJpdi0+bDNfcGFy aXR5LndoaWNoX3NsaWNlKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2Nr LCBmbGFncyk7CisJaWxrX2VuYWJsZV9ndF9pcnEoZGV2X3ByaXYsIEdUX1BBUklUWV9FUlJPUihk ZXZfcHJpdi0+ZGV2KSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9s b2NrLCBmbGFncyk7CisKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kZXYtPnN0cnVjdF9tdXRl eCk7CiB9CiAKLXN0YXRpYyB2b2lkIGl2eWJyaWRnZV9wYXJpdHlfZXJyb3JfaXJxX2hhbmRsZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIGl2eWJyaWRnZV9wYXJpdHlfZXJy b3JfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGlpcikKIHsKIAlkcm1f aTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRl dl9wcml2YXRlOwogCkBAIC05NDQsOSArOTYzLDE2IEBAIHN0YXRpYyB2b2lkIGl2eWJyaWRnZV9w YXJpdHlfZXJyb3JfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmV0dXJu OwogCiAJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwotCWlsa19kaXNhYmxlX2d0X2ly cShkZXZfcHJpdiwgR1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpOworCWlsa19k aXNhYmxlX2d0X2lycShkZXZfcHJpdiwgR1RfUEFSSVRZX0VSUk9SKGRldikpOwogCXNwaW5fdW5s b2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCisJaWlyICY9IEdUX1BBUklUWV9FUlJPUihkZXYp OworCWlmIChpaXIgJiBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVF9TMSkKKwkJ ZGV2X3ByaXYtPmwzX3Bhcml0eS53aGljaF9zbGljZSB8PSAxIDw8IDE7CisKKwlpZiAoaWlyICYg R1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpCisJCWRldl9wcml2LT5sM19wYXJp dHkud2hpY2hfc2xpY2UgfD0gMSA8PCAwOworCiAJcXVldWVfd29yayhkZXZfcHJpdi0+d3EsICZk ZXZfcHJpdi0+bDNfcGFyaXR5LmVycm9yX3dvcmspOwogfQogCkBAIC05ODEsOCArMTAwNyw4IEBA IHN0YXRpYyB2b2lkIHNuYl9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQlpOTE1X2hhbmRsZV9lcnJvcihkZXYsIGZhbHNlKTsKIAl9CiAKLQlpZiAoZ3RfaWlyICYgR1Rf UkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpCi0JCWl2eWJyaWRnZV9wYXJpdHlfZXJy b3JfaXJxX2hhbmRsZXIoZGV2KTsKKwlpZiAoZ3RfaWlyICYgR1RfUEFSSVRZX0VSUk9SKGRldikp CisJCWl2eWJyaWRnZV9wYXJpdHlfZXJyb3JfaXJxX2hhbmRsZXIoZGV2LCBndF9paXIpOwogfQog CiAjZGVmaW5lIEhQRF9TVE9STV9ERVRFQ1RfUEVSSU9EIDEwMDAKQEAgLTIyNjcsOCArMjI5Myw4 IEBAIHN0YXRpYyB2b2lkIGdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJZGV2X3ByaXYtPmd0X2lycV9tYXNrID0gfjA7CiAJaWYgKEhBU19MM19HUFVfQ0FD SEUoZGV2KSkgewogCQkvKiBMMyBwYXJpdHkgaW50ZXJydXB0IGlzIGFsd2F5cyB1bm1hc2tlZC4g Ki8KLQkJZGV2X3ByaXYtPmd0X2lycV9tYXNrID0gfkdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1Jf SU5URVJSVVBUOwotCQlndF9pcnFzIHw9IEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJS VVBUOworCQlkZXZfcHJpdi0+Z3RfaXJxX21hc2sgPSB+R1RfUEFSSVRZX0VSUk9SKGRldik7CisJ CWd0X2lycXMgfD0gR1RfUEFSSVRZX0VSUk9SKGRldik7CiAJfQogCiAJZ3RfaXJxcyB8PSBHVF9S RU5ERVJfVVNFUl9JTlRFUlJVUFQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCAzODRhZGZi Li5jOTQ5NDZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTkyNyw2ICs5MjcsNyBAQAog I2RlZmluZSBHVF9CTFRfVVNFUl9JTlRFUlJVUFQJCQkoMSA8PCAyMikKICNkZWZpbmUgR1RfQlNE X0NTX0VSUk9SX0lOVEVSUlVQVAkJKDEgPDwgMTUpCiAjZGVmaW5lIEdUX0JTRF9VU0VSX0lOVEVS UlVQVAkJCSgxIDw8IDEyKQorI2RlZmluZSBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVS UlVQVF9TMQkoMSA8PCAxMSkgLyogaHN3KzsgcnN2ZCBvbiBzbmIsIGl2Yiwgdmx2ICovCiAjZGVm aW5lIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUCSgxIDw8ICA1KSAvKiAhc25i ICovCiAjZGVmaW5lIEdUX1JFTkRFUl9QSVBFQ1RMX05PVElGWV9JTlRFUlJVUFQJKDEgPDwgIDQp CiAjZGVmaW5lIEdUX1JFTkRFUl9DU19NQVNURVJfRVJST1JfSU5URVJSVVBUCSgxIDw8ICAzKQpA QCAtOTM3LDYgKzkzOCwxMCBAQAogI2RlZmluZSBQTV9WRUJPWF9DU19FUlJPUl9JTlRFUlJVUFQJ CSgxIDw8IDEyKSAvKiBoc3crICovCiAjZGVmaW5lIFBNX1ZFQk9YX1VTRVJfSU5URVJSVVBUCQkJ KDEgPDwgMTApIC8qIGhzdysgKi8KIAorI2RlZmluZSBHVF9QQVJJVFlfRVJST1IoZGV2KSBcCisJ KEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUIHwgXAorCSBJU19IQVNXRUxMKGRl dikgPyBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVF9TMSA6IDApCisKIC8qIFRo ZXNlIGFyZSBhbGwgdGhlICJvbGQiIGludGVycnVwdHMgKi8KICNkZWZpbmUgSUxLX0JTRF9VU0VS X0lOVEVSUlVQVAkJCQkoMTw8NSkKICNkZWZpbmUgSTkxNV9QSVBFX0NPTlRST0xfTk9USUZZX0lO VEVSUlVQVAkJKDE8PDE4KQpAQCAtNDc0Myw2ICs0NzQ4LDcgQEAKIAogLyogSVZZQlJJREdFIERQ RiAqLwogI2RlZmluZSBHRU43X0wzQ0RFUlJTVDEJCQkweEIwMDggLyogTDNDRCBFcnJvciBTdGF0 dXMgMSAqLworI2RlZmluZSBIU1dfTDNDREVSUlNUMTEJCQkweEIyMDggLyogTDNDRCBFcnJvciBT dGF0dXMgcmVnaXN0ZXIgMSBzbGljZSAxICovCiAjZGVmaW5lICAgR0VON19MM0NERVJSU1QxX1JP V19NQVNLCSgweDdmZjw8MTQpCiAjZGVmaW5lICAgR0VON19QQVJJVFlfRVJST1JfVkFMSUQJKDE8 PDEzKQogI2RlZmluZSAgIEdFTjdfTDNDREVSUlNUMV9CQU5LX01BU0sJKDM8PDExKQpAQCAtNDc1 Niw2ICs0NzYyLDcgQEAKICNkZWZpbmUgICBHRU43X0wzQ0RFUlJTVDFfRU5BQkxFCSgxPDw3KQog CiAjZGVmaW5lIEdFTjdfTDNMT0dfQkFTRQkJCTB4QjA3MAorI2RlZmluZSBIU1dfTDNMT0dfQkFT RV9TTElDRTEJCTB4QjI3MAogI2RlZmluZSBHRU43X0wzTE9HX1NJWkUJCQkweDgwCiAKICNkZWZp bmUgR0VON19IQUxGX1NMSUNFX0NISUNLRU4xCTB4ZTEwMCAvKiBJVkIgR1QxICsgVkxWICovCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKaW5kZXggNzFmNmRlMi4uM2E4YmYwYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc3lzZnMuYwpAQCAtMTE5LDYgKzExOSw3IEBAIGk5MTVfbDNfcmVhZChzdHJ1 Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJc3RydWN0IGRybV9kZXZpY2Ug KmRybV9kZXYgPSBkbWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkcm1fZGV2LT5kZXZfcHJpdmF0ZTsKIAl1aW50MzJfdCBtaXNjY3BjdGw7CisJaW50IHNs aWNlID0gKGludCkodWludHB0cl90KWF0dHItPnByaXZhdGU7CiAJaW50IGksIHJldDsKIAogCWNv dW50ID0gcm91bmRfZG93bihjb3VudCwgNCk7CkBAIC0xMzQsOSArMTM1LDkgQEAgaTkxNV9sM19y ZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJcmV0dXJuIHJl dDsKIAogCWlmIChJU19IQVNXRUxMKGRybV9kZXYpKSB7Ci0JCWlmIChkZXZfcHJpdi0+bDNfcGFy aXR5LnJlbWFwX2luZm8pCisJCWlmIChkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm9bc2xp Y2VdKQogCQkJbWVtY3B5KGJ1ZiwKLQkJCSAgICAgICBkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFw X2luZm8gKyAob2Zmc2V0LzQpLAorCQkJICAgICAgIGRldl9wcml2LT5sM19wYXJpdHkucmVtYXBf aW5mb1tzbGljZV0gKyAob2Zmc2V0LzQpLAogCQkJICAgICAgIGNvdW50KTsKIAkJZWxzZQogCQkJ bWVtc2V0KGJ1ZiwgMCwgY291bnQpOwpAQCAtMTY4LDYgKzE2OSw3IEBAIGk5MTVfbDNfd3JpdGUo c3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm1fZGV2ID0gZG1pbm9yLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZHJtX2Rldi0+ZGV2X3ByaXZhdGU7CiAJdTMyICp0ZW1wID0gTlVMTDsgLyogSnVz dCBoZXJlIHRvIG1ha2UgaGFuZGxpbmcgZmFpbHVyZXMgZWFzeSAqLworCWludCBzbGljZSA9IChp bnQpKHVpbnRwdHJfdClhdHRyLT5wcml2YXRlOwogCWludCByZXQ7CiAKIAlyZXQgPSBsM19hY2Nl c3NfdmFsaWQoZHJtX2Rldiwgb2Zmc2V0KTsKQEAgLTE3OCw3ICsxODAsNyBAQCBpOTE1X2wzX3dy aXRlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCi0JaWYgKCFkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm8pIHsK KwlpZiAoIWRldl9wcml2LT5sM19wYXJpdHkucmVtYXBfaW5mb1tzbGljZV0pIHsKIAkJdGVtcCA9 IGt6YWxsb2MoR0VON19MM0xPR19TSVpFLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCF0ZW1wKSB7CiAJ CQltdXRleF91bmxvY2soJmRybV9kZXYtPnN0cnVjdF9tdXRleCk7CkBAIC0xOTgsMTEgKzIwMCwx MSBAQCBpOTE1X2wzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29i aiwKIAkgKiBhdCB0aGlzIHBvaW50IGl0IGlzIGxlZnQgYXMgYSBUT0RPLgogCSovCiAJaWYgKHRl bXApCi0JCWRldl9wcml2LT5sM19wYXJpdHkucmVtYXBfaW5mbyA9IHRlbXA7CisJCWRldl9wcml2 LT5sM19wYXJpdHkucmVtYXBfaW5mb1tzbGljZV0gPSB0ZW1wOwogCi0JbWVtY3B5KGRldl9wcml2 LT5sM19wYXJpdHkucmVtYXBfaW5mbyArIChvZmZzZXQvNCksIGJ1ZiwgY291bnQpOworCW1lbWNw eShkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm9bc2xpY2VdICsgKG9mZnNldC80KSwgYnVm LCBjb3VudCk7CiAKLQlpOTE1X2dlbV9sM19yZW1hcChkcm1fZGV2KTsKKwlpOTE1X2dlbV9sM19y ZW1hcChkcm1fZGV2LCBzbGljZSk7CiAKIAltdXRleF91bmxvY2soJmRybV9kZXYtPnN0cnVjdF9t dXRleCk7CiAKQEAgLTIxNCw3ICsyMTYsMTcgQEAgc3RhdGljIHN0cnVjdCBiaW5fYXR0cmlidXRl IGRwZl9hdHRycyA9IHsKIAkuc2l6ZSA9IEdFTjdfTDNMT0dfU0laRSwKIAkucmVhZCA9IGk5MTVf bDNfcmVhZCwKIAkud3JpdGUgPSBpOTE1X2wzX3dyaXRlLAotCS5tbWFwID0gTlVMTAorCS5tbWFw ID0gTlVMTCwKKwkucHJpdmF0ZSA9ICh2b2lkICopMAorfTsKKworc3RhdGljIHN0cnVjdCBiaW5f YXR0cmlidXRlIGRwZl9hdHRyc18xID0geworCS5hdHRyID0gey5uYW1lID0gImwzX3Bhcml0eV9z bGljZV8xIiwgLm1vZGUgPSAoU19JUlVTUiB8IFNfSVdVU1IpfSwKKwkuc2l6ZSA9IEdFTjdfTDNM T0dfU0laRSwKKwkucmVhZCA9IGk5MTVfbDNfcmVhZCwKKwkud3JpdGUgPSBpOTE1X2wzX3dyaXRl LAorCS5tbWFwID0gTlVMTCwKKwkucHJpdmF0ZSA9ICh2b2lkICopMQogfTsKIAogc3RhdGljIHNz aXplX3QgZ3RfY3VyX2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2RldiwKQEAgLTUyNSw2 ICs1MzcsMTMgQEAgdm9pZCBpOTE1X3NldHVwX3N5c2ZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJCXJldCA9IGRldmljZV9jcmVhdGVfYmluX2ZpbGUoJmRldi0+cHJpbWFyeS0+a2RldiwgJmRw Zl9hdHRycyk7CiAJCWlmIChyZXQpCiAJCQlEUk1fRVJST1IoImwzIHBhcml0eSBzeXNmcyBzZXR1 cCBmYWlsZWRcbiIpOworCisJCWlmIChOVU1fTDNfU0xJQ0VTKGRldikgPiAxKSB7CisJCQlyZXQg PSBkZXZpY2VfY3JlYXRlX2Jpbl9maWxlKCZkZXYtPnByaW1hcnktPmtkZXYsCisJCQkJCQkgICAg ICZkcGZfYXR0cnNfMSk7CisJCQlpZiAocmV0KQorCQkJCURSTV9FUlJPUigibDMgcGFyaXR5IHNs aWNlIDEgc2V0dXAgZmFpbGVkXG4iKTsKKwkJfQogCX0KIAogCXJldCA9IDA7CkBAIC01NDgsNiAr NTY3LDcgQEAgdm9pZCBpOTE1X3RlYXJkb3duX3N5c2ZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJCXN5c2ZzX3JlbW92ZV9maWxlcygmZGV2LT5wcmltYXJ5LT5rZGV2LmtvYmosIHZsdl9hdHRy cyk7CiAJZWxzZQogCQlzeXNmc19yZW1vdmVfZmlsZXMoJmRldi0+cHJpbWFyeS0+a2Rldi5rb2Jq LCBnZW42X2F0dHJzKTsKKwlkZXZpY2VfcmVtb3ZlX2Jpbl9maWxlKCZkZXYtPnByaW1hcnktPmtk ZXYsICAmZHBmX2F0dHJzXzEpOwogCWRldmljZV9yZW1vdmVfYmluX2ZpbGUoJmRldi0+cHJpbWFy eS0+a2RldiwgICZkcGZfYXR0cnMpOwogI2lmZGVmIENPTkZJR19QTQogCXN5c2ZzX3VubWVyZ2Vf Z3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rldi5rb2JqLCAmcmM2X2F0dHJfZ3JvdXApOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDY4NmU1YjIuLjk1OGI3ZDggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTU3MCw3ICs1NzAsNyBA QCBzdGF0aWMgaW50IGluaXRfcmVuZGVyX3Jpbmcoc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpy aW5nKQogCQlJOTE1X1dSSVRFKElOU1RQTSwgX01BU0tFRF9CSVRfRU5BQkxFKElOU1RQTV9GT1JD RV9PUkRFUklORykpOwogCiAJaWYgKEhBU19MM19HUFVfQ0FDSEUoZGV2KSkKLQkJSTkxNV9XUklU RV9JTVIocmluZywgfkdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUKTsKKwkJSTkx NV9XUklURV9JTVIocmluZywgfkdUX1BBUklUWV9FUlJPUihkZXYpKTsKIAogCXJldHVybiByZXQ7 CiB9CkBAIC0xMDAwLDcgKzEwMDAsNyBAQCBnZW42X3JpbmdfZ2V0X2lycShzdHJ1Y3QgaW50ZWxf cmluZ19idWZmZXIgKnJpbmcpCiAJCWlmIChIQVNfTDNfR1BVX0NBQ0hFKGRldikgJiYgcmluZy0+ aWQgPT0gUkNTKQogCQkJSTkxNV9XUklURV9JTVIocmluZywKIAkJCQkgICAgICAgfihyaW5nLT5p cnFfZW5hYmxlX21hc2sgfAotCQkJCQkgR1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJV UFQpKTsKKwkJCQkJIEdUX1BBUklUWV9FUlJPUihkZXYpKSk7CiAJCWVsc2UKIAkJCUk5MTVfV1JJ VEVfSU1SKHJpbmcsIH5yaW5nLT5pcnFfZW5hYmxlX21hc2spOwogCQlpbGtfZW5hYmxlX2d0X2ly cShkZXZfcHJpdiwgcmluZy0+aXJxX2VuYWJsZV9tYXNrKTsKQEAgLTEwMjAsOCArMTAyMCw3IEBA IGdlbjZfcmluZ19wdXRfaXJxKHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZykKIAlzcGlu X2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7CiAJaWYgKC0tcmluZy0+ aXJxX3JlZmNvdW50ID09IDApIHsKIAkJaWYgKEhBU19MM19HUFVfQ0FDSEUoZGV2KSAmJiByaW5n LT5pZCA9PSBSQ1MpCi0JCQlJOTE1X1dSSVRFX0lNUihyaW5nLAotCQkJCSAgICAgICB+R1RfUkVO REVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpOworCQkJSTkxNV9XUklURV9JTVIocmluZywg fkdUX1BBUklUWV9FUlJPUihkZXYpKTsKIAkJZWxzZQogCQkJSTkxNV9XUklURV9JTVIocmluZywg fjApOwogCQlpbGtfZGlzYWJsZV9ndF9pcnEoZGV2X3ByaXYsIHJpbmctPmlycV9lbmFibGVfbWFz ayk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggNTViYjU3Mi4uM2E0ZTk3YiAxMDA2NDQKLS0tIGEvaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0u aApAQCAtMzgsMTAgKzM4LDEwIEBACiAgKgogICogSTkxNV9MM19QQVJJVFlfVUVWRU5UIC0gR2Vu ZXJhdGVkIHdoZW4gdGhlIGRyaXZlciByZWNlaXZlcyBhIHBhcml0eSBtaXNtYXRjaAogICoJZXZl bnQgZnJvbSB0aGUgZ3B1IGwzIGNhY2hlLiBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIHN1cHBsaWVk IGlzIFJPVywKLSAqCUJBTkssIFNVQkJBTksgb2YgdGhlIGFmZmVjdGVkIGNhY2hlbGluZS4gVXNl cnNwYWNlIHNob3VsZCBrZWVwIHRyYWNrIG9mCi0gKgl0aGVzZSBldmVudHMgYW5kIGlmIGEgc3Bl Y2lmaWMgY2FjaGUtbGluZSBzZWVtcyB0byBoYXZlIGEgcGVyc2lzdGVudAotICoJZXJyb3IgcmVt YXAgaXQgd2l0aCB0aGUgbDMgcmVtYXBwaW5nIHRvb2wgc3VwcGxpZWQgaW4gaW50ZWwtZ3B1LXRv b2xzLgotICoJVGhlIHZhbHVlIHN1cHBsaWVkIHdpdGggdGhlIGV2ZW50IGlzIGFsd2F5cyAxLgor ICoJQkFOSywgU1VCQkFOSywgU0xJQ0Ugb2YgdGhlIGFmZmVjdGVkIGNhY2hlbGluZS4gVXNlcnNw YWNlIHNob3VsZCBrZWVwCisgKgl0cmFjayBvZiB0aGVzZSBldmVudHMgYW5kIGlmIGEgc3BlY2lm aWMgY2FjaGUtbGluZSBzZWVtcyB0byBoYXZlIGEKKyAqCXBlcnNpc3RlbnQgZXJyb3IgcmVtYXAg aXQgd2l0aCB0aGUgbDMgcmVtYXBwaW5nIHRvb2wgc3VwcGxpZWQgaW4KKyAqCWludGVsLWdwdS10 b29scy4gIFRoZSB2YWx1ZSBzdXBwbGllZCB3aXRoIHRoZSBldmVudCBpcyBhbHdheXMgMS4KICAq CiAgKiBJOTE1X0VSUk9SX1VFVkVOVCAtIEdlbmVyYXRlZCB1cG9uIGVycm9yIGRldGVjdGlvbiwg Y3VycmVudGx5IG9ubHkgdmlhCiAgKgloYW5nY2hlY2suIFRoZSBlcnJvciBkZXRlY3Rpb24gZXZl bnQgaXMgYSBnb29kIGluZGljYXRvciBvZiB3aGVuIHRoaW5ncwotLSAKMS44LjQKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==