From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: [PATCH] [v3] drm/i915: Add second slice l3 remapping Date: Thu, 19 Sep 2013 11:13:41 -0700 Message-ID: <1379614421-2096-1-git-send-email-benjamin.widawsky@intel.com> References: <20130918073628.GA4531@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 22E18E5F82 for ; Thu, 19 Sep 2013 11:13:49 -0700 (PDT) In-Reply-To: <20130918073628.GA4531@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: Ben Widawsky , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org Q2VydGFpbiBIU1cgU0tVcyBoYXZlIGEgc2Vjb25kIGJhbmsgb2YgTDMuIFRoaXMgTDMgcmVtYXBw aW5nIGhhcyBhCnNlcGFyYXRlIHJlZ2lzdGVyIHNldCwgYW5kIGludGVycnVwdCBmcm9tIHRoZSBm aXJzdCAic2xpY2UiLiBBIHNsaWNlIGlzCnNpbXBseSBhIHRlcm0gdG8gZGVmaW5lIHNvbWUgc3Vi c2V0IG9mIHRoZSBHUFUncyBsMyBjYWNoZS4gVGhpcyBwYXRjaAppbXBsZW1lbnRzIGJvdGggdGhl IGludGVycnVwdCBoYW5kbGVyLCBhbmQgYWJpbGl0eSB0byBjb21tdW5pY2F0ZSB3aXRoCnVzZXJz cGFjZSBhYm91dCB0aGlzIHNlY29uZCBzbGljZS4KCnYyOiAgUmVtb3ZlIHJlZHVuZGFudCBjaGVj ayBhYm91dCBub24tZXhpc3RlbnQgc2xpY2UuCkNoYW5nZSB3YXJuaW5nIGFib3V0IGludGVycnVw dHMgb2YgdW5rbm93biBzbGljZXMgdG8gV0FSTl9PTl9PTkNFCkhhbmRsZSB0aGUgY2FzZSB3aGVy ZSB3ZSBnZXQgMiBzbGljZSBpbnRlcnJ1cHRzIGNvbmN1cnJlbnRseSwgYW5kIHN3aXRjaAp0aGUg dHJhY2tpbmcgb2YgaW50ZXJydXB0cyB0byBiZSBub24tZGVzdHJ1Y3RpdmUgKGFsbCBWaWxsZSkK RG9uJ3QgZW5hYmxlL21hc2sgdGhlIHNlY29uZCBzbGljZSBwYXJpdHkgaW50ZXJydXB0IGZvciBp dmIvdmx2IChldmVuCnRob3VnaCBhbGwgZG9jcyBJIGNhbiBmaW5kIGNsYWltIGl0J3MgcnN2ZCkg KFZpbGxlICsgQnJ5YW4pCktlZXAgQllUIGV4Y2x1ZGVkIGZyb20gTDMgcGFyaXR5Cgp2MzogRml4 IHRoZSBzbGljZSA9IGZmcyB0byBiZSBkZWNyZW1lbnRlZCBieSBvbmUgKGZvdW5kIGJ5IFZpbGxl KS4gV2hlbgpJIGluaXRpYWxseSBkaWQgbXkgdGVzdGluZyBvbiB0aGUgc2VyaWVzLCBJIHdhcyB1 c2luZyAxLWJhc2VkIHNsaWNlCmNvdW50aW5nLCBzbyB0aGlzIGNvZGUgd2FzIGNvcnJlY3QuIE5v dCBzdXJlIHdoeSBteSBzaW1wbGVyIHRlc3RzIHRoYXQKSSd2ZSBiZWVuIHJ1bm5pbmcgc2luY2Ug dGhlbiBkaWRuJ3QgcGljayBpdCB1cCBzb29uZXIuCgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQmVuIFdp ZGF3c2t5IDxiZW5AYndpZGF3c2submV0PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggICAgICAgICB8ICA3ICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAg ICAgICAgIHwgMjYgKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAg ICAgICAgIHwgODkgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgfCAgNyArKysKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfc3lzZnMuYyAgICAgICB8IDM0ICsrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICA3ICsrLQogaW5jbHVkZS91YXBpL2RybS9pOTE1 X2RybS5oICAgICAgICAgICAgIHwgIDggKy0tCiA3IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRp b25zKCspLCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA4YjE2 ZDQ3Li5jNmU4ZGY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTkxNyw5ICs5MTcsMTEg QEAgc3RydWN0IGk5MTVfdW1zX3N0YXRlIHsKIAlpbnQgbW1fc3VzcGVuZGVkOwogfTsKIAorI2Rl ZmluZSBNQVhfTDNfU0xJQ0VTIDIKIHN0cnVjdCBpbnRlbF9sM19wYXJpdHkgewotCXUzMiAqcmVt YXBfaW5mbzsKKwl1MzIgKnJlbWFwX2luZm9bTUFYX0wzX1NMSUNFU107CiAJc3RydWN0IHdvcmtf c3RydWN0IGVycm9yX3dvcms7CisJaW50IHdoaWNoX3NsaWNlOwogfTsKIAogc3RydWN0IGk5MTVf Z2VtX21tIHsKQEAgLTE2ODYsNiArMTY4OCw3IEBAIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZh dGUgewogI2RlZmluZSBIQVNfRk9SQ0VfV0FLRShkZXYpIChJTlRFTF9JTkZPKGRldiktPmhhc19m b3JjZV93YWtlKQogCiAjZGVmaW5lIEhBU19MM19HUFVfQ0FDSEUoZGV2KSAoSVNfSVZZQlJJREdF KGRldikgfHwgSVNfSEFTV0VMTChkZXYpKQorI2RlZmluZSBOVU1fTDNfU0xJQ0VTKGRldikgKElT X0hTV19HVDMoZGV2KSA/IDIgOiBIQVNfTDNfR1BVX0NBQ0hFKGRldikpCiAKICNkZWZpbmUgR1Rf RlJFUVVFTkNZX01VTFRJUExJRVIgNTAKIApAQCAtMTk0Niw3ICsxOTQ5LDcgQEAgYm9vbCBpOTE1 X2dlbV9jbGZsdXNoX29iamVjdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBib29s IGZvcmNlKTsKIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fb2JqZWN0X2ZpbmlzaF9ncHUoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2Vt X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2Vt X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci12b2lkIGk5MTVfZ2VtX2wzX3JlbWFw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwordm9pZCBpOTE1X2dlbV9sM19yZW1hcChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgc2xpY2UpOwogdm9pZCBpOTE1X2dlbV9pbml0X3N3aXp6bGlu ZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVm ZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dwdV9p ZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXgg M2QzZGU2ZS4uNjZiZjc1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC00MjUyLDE2ICs0 MjUyLDE1IEBAIGk5MTVfZ2VtX2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyZXR1cm4g MDsKIH0KIAotdm9pZCBpOTE1X2dlbV9sM19yZW1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQor dm9pZCBpOTE1X2dlbV9sM19yZW1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2xpY2Up CiB7CiAJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJ dTMyIHJlZ19iYXNlID0gR0VON19MM0xPR19CQVNFICsgKHNsaWNlICogMHgyMDApOworCXUzMiAq cmVtYXBfaW5mbyA9IGRldl9wcml2LT5sM19wYXJpdHkucmVtYXBfaW5mb1tzbGljZV07CiAJdTMy IG1pc2NjcGN0bDsKIAlpbnQgaTsKIAotCWlmICghSEFTX0wzX0dQVV9DQUNIRShkZXYpKQotCQly ZXR1cm47Ci0KLQlpZiAoIWRldl9wcml2LT5sM19wYXJpdHkucmVtYXBfaW5mbykKKwlpZiAoIUhB U19MM19HUFVfQ0FDSEUoZGV2KSB8fCAhcmVtYXBfaW5mbykKIAkJcmV0dXJuOwogCiAJbWlzY2Nw Y3RsID0gSTkxNV9SRUFEKEdFTjdfTUlTQ0NQQ1RMKTsKQEAgLTQyNjksMTcgKzQyNjgsMTcgQEAg dm9pZCBpOTE1X2dlbV9sM19yZW1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCVBPU1RJTkdf UkVBRChHRU43X01JU0NDUENUTCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgR0VON19MM0xPR19TSVpF OyBpICs9IDQpIHsKLQkJdTMyIHJlbWFwID0gSTkxNV9SRUFEKEdFTjdfTDNMT0dfQkFTRSArIGkp OwotCQlpZiAocmVtYXAgJiYgcmVtYXAgIT0gZGV2X3ByaXYtPmwzX3Bhcml0eS5yZW1hcF9pbmZv W2kvNF0pCisJCXUzMiByZW1hcCA9IEk5MTVfUkVBRChyZWdfYmFzZSArIGkpOworCQlpZiAocmVt YXAgJiYgcmVtYXAgIT0gcmVtYXBfaW5mb1tpLzRdKQogCQkJRFJNX0RFQlVHKCIweCV4IHdhcyBh bHJlYWR5IHByb2dyYW1tZWQgdG8gJXhcbiIsCi0JCQkJICBHRU43X0wzTE9HX0JBU0UgKyBpLCBy ZW1hcCk7Ci0JCWlmIChyZW1hcCAmJiAhZGV2X3ByaXYtPmwzX3Bhcml0eS5yZW1hcF9pbmZvW2kv NF0pCisJCQkJICByZWdfYmFzZSArIGksIHJlbWFwKTsKKwkJaWYgKHJlbWFwICYmICFyZW1hcF9p bmZvW2kvNF0pCiAJCQlEUk1fREVCVUdfRFJJVkVSKCJDbGVhcmluZyByZW1hcHBlZCByZWdpc3Rl clxuIik7Ci0JCUk5MTVfV1JJVEUoR0VON19MM0xPR19CQVNFICsgaSwgZGV2X3ByaXYtPmwzX3Bh cml0eS5yZW1hcF9pbmZvW2kvNF0pOworCQlJOTE1X1dSSVRFKHJlZ19iYXNlICsgaSwgcmVtYXBf aW5mb1tpLzRdKTsKIAl9CiAKIAkvKiBNYWtlIHN1cmUgYWxsIHRoZSB3cml0ZXMgbGFuZCBiZWZv cmUgZGlzYWJsaW5nIGRvcCBjbG9jayBnYXRpbmcgKi8KLQlQT1NUSU5HX1JFQUQoR0VON19MM0xP R19CQVNFKTsKKwlQT1NUSU5HX1JFQUQocmVnX2Jhc2UpOwogCiAJSTkxNV9XUklURShHRU43X01J U0NDUENUTCwgbWlzY2NwY3RsKTsKIH0KQEAgLTQzNzMsNyArNDM3Miw3IEBAIGludAogaTkxNV9n ZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCWRybV9pOTE1X3ByaXZhdGVf dCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCByZXQ7CisJaW50IHJldCwgaTsK IAogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDYgJiYgIWludGVsX2VuYWJsZV9ndHQoKSkK IAkJcmV0dXJuIC1FSU87CkBAIC00MzkyLDcgKzQzOTEsOCBAQCBpOTE1X2dlbV9pbml0X2h3KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCUk5MTVfV1JJVEUoR0VON19NU0dfQ1RMLCB0ZW1wKTsK IAl9CiAKLQlpOTE1X2dlbV9sM19yZW1hcChkZXYpOworCWZvciAoaSA9IDA7IGkgPCBOVU1fTDNf U0xJQ0VTKGRldik7IGkrKykKKwkJaTkxNV9nZW1fbDNfcmVtYXAoZGV2LCBpKTsKIAogCWk5MTVf Z2VtX2luaXRfc3dpenpsaW5nKGRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IGE0 MmYzMGIuLjFjN2Y2YWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtODg4LDkgKzg4OCwx MCBAQCBzdGF0aWMgdm9pZCBpdnlicmlkZ2VfcGFyaXR5X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQogCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBjb250YWluZXJfb2Yod29y aywgZHJtX2k5MTVfcHJpdmF0ZV90LAogCQkJCQkJICAgIGwzX3Bhcml0eS5lcnJvcl93b3JrKTsK IAl1MzIgZXJyb3Jfc3RhdHVzLCByb3csIGJhbmssIHN1YmJhbms7Ci0JY2hhciAqcGFyaXR5X2V2 ZW50WzVdOworCWNoYXIgKnBhcml0eV9ldmVudFs2XTsKIAl1aW50MzJfdCBtaXNjY3BjdGw7CiAJ dW5zaWduZWQgbG9uZyBmbGFnczsKKwl1aW50OF90IHNsaWNlID0gMDsKIAogCS8qIFdlIG11c3Qg dHVybiBvZmYgRE9QIGxldmVsIGNsb2NrIGdhdGluZyB0byBhY2Nlc3MgdGhlIEwzIHJlZ2lzdGVy cy4KIAkgKiBJbiBvcmRlciB0byBwcmV2ZW50IGEgZ2V0L3B1dCBzdHlsZSBpbnRlcmZhY2UsIGFj cXVpcmUgc3RydWN0IG11dGV4CkBAIC04OTgsNDUgKzg5OSw2NCBAQCBzdGF0aWMgdm9pZCBpdnli cmlkZ2VfcGFyaXR5X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCSAqLwogCW11dGV4 X2xvY2soJmRldl9wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7CiAKKwkvKiBJZiB3ZSd2ZSBzY3Jl d2VkIHVwIHRyYWNraW5nLCBqdXN0IGxldCB0aGUgaW50ZXJydXB0IGZpcmUgYWdhaW4gKi8KKwlp ZiAoV0FSTl9PTighZGV2X3ByaXYtPmwzX3Bhcml0eS53aGljaF9zbGljZSkpCisJCWdvdG8gb3V0 OworCiAJbWlzY2NwY3RsID0gSTkxNV9SRUFEKEdFTjdfTUlTQ0NQQ1RMKTsKIAlJOTE1X1dSSVRF KEdFTjdfTUlTQ0NQQ1RMLCBtaXNjY3BjdGwgJiB+R0VON19ET1BfQ0xPQ0tfR0FURV9FTkFCTEUp OwogCVBPU1RJTkdfUkVBRChHRU43X01JU0NDUENUTCk7CiAKLQllcnJvcl9zdGF0dXMgPSBJOTE1 X1JFQUQoR0VON19MM0NERVJSU1QxKTsKLQlyb3cgPSBHRU43X1BBUklUWV9FUlJPUl9ST1coZXJy b3Jfc3RhdHVzKTsKLQliYW5rID0gR0VON19QQVJJVFlfRVJST1JfQkFOSyhlcnJvcl9zdGF0dXMp OwotCXN1YmJhbmsgPSBHRU43X1BBUklUWV9FUlJPUl9TVUJCQU5LKGVycm9yX3N0YXR1cyk7CisJ d2hpbGUgKChzbGljZSA9IGZmcyhkZXZfcHJpdi0+bDNfcGFyaXR5LndoaWNoX3NsaWNlKSkgIT0g MCkgeworCQl1MzIgcmVnOwogCi0JSTkxNV9XUklURShHRU43X0wzQ0RFUlJTVDEsIEdFTjdfUEFS SVRZX0VSUk9SX1ZBTElEIHwKLQkJCQkgICAgR0VON19MM0NERVJSU1QxX0VOQUJMRSk7Ci0JUE9T VElOR19SRUFEKEdFTjdfTDNDREVSUlNUMSk7CisJCXNsaWNlLS07CisJCWlmIChXQVJOX09OX09O Q0Uoc2xpY2UgPj0gTlVNX0wzX1NMSUNFUyhkZXZfcHJpdi0+ZGV2KSkpCisJCQlicmVhazsKIAot CUk5MTVfV1JJVEUoR0VON19NSVNDQ1BDVEwsIG1pc2NjcGN0bCk7CisJCWRldl9wcml2LT5sM19w YXJpdHkud2hpY2hfc2xpY2UgJj0gfigxPDxzbGljZSk7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgm ZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Ci0JaWxrX2VuYWJsZV9ndF9pcnEoZGV2X3ByaXYs IEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUKTsKLQlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKKwkJcmVnID0gR0VON19MM0NERVJS U1QxICsgKHNsaWNlICogMHgyMDApOwogCi0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZGV2LT5z dHJ1Y3RfbXV0ZXgpOworCQllcnJvcl9zdGF0dXMgPSBJOTE1X1JFQUQocmVnKTsKKwkJcm93ID0g R0VON19QQVJJVFlfRVJST1JfUk9XKGVycm9yX3N0YXR1cyk7CisJCWJhbmsgPSBHRU43X1BBUklU WV9FUlJPUl9CQU5LKGVycm9yX3N0YXR1cyk7CisJCXN1YmJhbmsgPSBHRU43X1BBUklUWV9FUlJP Ul9TVUJCQU5LKGVycm9yX3N0YXR1cyk7CisKKwkJSTkxNV9XUklURShyZWcsIEdFTjdfUEFSSVRZ X0VSUk9SX1ZBTElEIHwgR0VON19MM0NERVJSU1QxX0VOQUJMRSk7CisJCVBPU1RJTkdfUkVBRChy ZWcpOworCisJCXBhcml0eV9ldmVudFswXSA9IEk5MTVfTDNfUEFSSVRZX1VFVkVOVCAiPTEiOwor CQlwYXJpdHlfZXZlbnRbMV0gPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIlJPVz0lZCIsIHJvdyk7 CisJCXBhcml0eV9ldmVudFsyXSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiQkFOSz0lZCIsIGJh bmspOworCQlwYXJpdHlfZXZlbnRbM10gPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIlNVQkJBTks9 JWQiLCBzdWJiYW5rKTsKKwkJcGFyaXR5X2V2ZW50WzRdID0ga2FzcHJpbnRmKEdGUF9LRVJORUws ICJTTElDRT0lZCIsIHNsaWNlKTsKKwkJcGFyaXR5X2V2ZW50WzVdID0gTlVMTDsKKworCQlrb2Jq ZWN0X3VldmVudF9lbnYoJmRldl9wcml2LT5kZXYtPnByaW1hcnktPmtkZXYua29iaiwKKwkJCQkg ICBLT0JKX0NIQU5HRSwgcGFyaXR5X2V2ZW50KTsKIAotCXBhcml0eV9ldmVudFswXSA9IEk5MTVf TDNfUEFSSVRZX1VFVkVOVCAiPTEiOwotCXBhcml0eV9ldmVudFsxXSA9IGthc3ByaW50ZihHRlBf S0VSTkVMLCAiUk9XPSVkIiwgcm93KTsKLQlwYXJpdHlfZXZlbnRbMl0gPSBrYXNwcmludGYoR0ZQ X0tFUk5FTCwgIkJBTks9JWQiLCBiYW5rKTsKLQlwYXJpdHlfZXZlbnRbM10gPSBrYXNwcmludGYo R0ZQX0tFUk5FTCwgIlNVQkJBTks9JWQiLCBzdWJiYW5rKTsKLQlwYXJpdHlfZXZlbnRbNF0gPSBO VUxMOworCQlEUk1fREVCVUcoIlBhcml0eSBlcnJvcjogU2xpY2UgPSAlZCwgUm93ID0gJWQsIEJh bmsgPSAlZCwgU3ViIGJhbmsgPSAlZC5cbiIsCisJCQkgIHNsaWNlLCByb3csIGJhbmssIHN1YmJh bmspOwogCi0Ja29iamVjdF91ZXZlbnRfZW52KCZkZXZfcHJpdi0+ZGV2LT5wcmltYXJ5LT5rZGV2 LmtvYmosCi0JCQkgICBLT0JKX0NIQU5HRSwgcGFyaXR5X2V2ZW50KTsKKwkJa2ZyZWUocGFyaXR5 X2V2ZW50WzRdKTsKKwkJa2ZyZWUocGFyaXR5X2V2ZW50WzNdKTsKKwkJa2ZyZWUocGFyaXR5X2V2 ZW50WzJdKTsKKwkJa2ZyZWUocGFyaXR5X2V2ZW50WzFdKTsKKwl9CiAKLQlEUk1fREVCVUcoIlBh cml0eSBlcnJvcjogUm93ID0gJWQsIEJhbmsgPSAlZCwgU3ViIGJhbmsgPSAlZC5cbiIsCi0JCSAg cm93LCBiYW5rLCBzdWJiYW5rKTsKKwlJOTE1X1dSSVRFKEdFTjdfTUlTQ0NQQ1RMLCBtaXNjY3Bj dGwpOwogCi0Ja2ZyZWUocGFyaXR5X2V2ZW50WzNdKTsKLQlrZnJlZShwYXJpdHlfZXZlbnRbMl0p OwotCWtmcmVlKHBhcml0eV9ldmVudFsxXSk7CitvdXQ6CisJV0FSTl9PTihkZXZfcHJpdi0+bDNf cGFyaXR5LndoaWNoX3NsaWNlKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9s b2NrLCBmbGFncyk7CisJaWxrX2VuYWJsZV9ndF9pcnEoZGV2X3ByaXYsIEdUX1BBUklUWV9FUlJP UihkZXZfcHJpdi0+ZGV2KSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmly cV9sb2NrLCBmbGFncyk7CisKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kZXYtPnN0cnVjdF9t dXRleCk7CiB9CiAKLXN0YXRpYyB2b2lkIGl2eWJyaWRnZV9wYXJpdHlfZXJyb3JfaXJxX2hhbmRs ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIGl2eWJyaWRnZV9wYXJpdHlf ZXJyb3JfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGlpcikKIHsKIAlk cm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYt PmRldl9wcml2YXRlOwogCkBAIC05NDQsOSArOTY0LDE2IEBAIHN0YXRpYyB2b2lkIGl2eWJyaWRn ZV9wYXJpdHlfZXJyb3JfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmV0 dXJuOwogCiAJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwotCWlsa19kaXNhYmxlX2d0 X2lycShkZXZfcHJpdiwgR1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpOworCWls a19kaXNhYmxlX2d0X2lycShkZXZfcHJpdiwgR1RfUEFSSVRZX0VSUk9SKGRldikpOwogCXNwaW5f dW5sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwogCisJaWlyICY9IEdUX1BBUklUWV9FUlJPUihk ZXYpOworCWlmIChpaXIgJiBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVF9TMSkK KwkJZGV2X3ByaXYtPmwzX3Bhcml0eS53aGljaF9zbGljZSB8PSAxIDw8IDE7CisKKwlpZiAoaWly ICYgR1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpCisJCWRldl9wcml2LT5sM19w YXJpdHkud2hpY2hfc2xpY2UgfD0gMSA8PCAwOworCiAJcXVldWVfd29yayhkZXZfcHJpdi0+d3Es ICZkZXZfcHJpdi0+bDNfcGFyaXR5LmVycm9yX3dvcmspOwogfQogCkBAIC05ODEsOCArMTAwOCw4 IEBAIHN0YXRpYyB2b2lkIHNuYl9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQlpOTE1X2hhbmRsZV9lcnJvcihkZXYsIGZhbHNlKTsKIAl9CiAKLQlpZiAoZ3RfaWlyICYg R1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpCi0JCWl2eWJyaWRnZV9wYXJpdHlf ZXJyb3JfaXJxX2hhbmRsZXIoZGV2KTsKKwlpZiAoZ3RfaWlyICYgR1RfUEFSSVRZX0VSUk9SKGRl dikpCisJCWl2eWJyaWRnZV9wYXJpdHlfZXJyb3JfaXJxX2hhbmRsZXIoZGV2LCBndF9paXIpOwog fQogCiAjZGVmaW5lIEhQRF9TVE9STV9ERVRFQ1RfUEVSSU9EIDEwMDAKQEAgLTIyNjcsOCArMjI5 NCw4IEBAIHN0YXRpYyB2b2lkIGdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJZGV2X3ByaXYtPmd0X2lycV9tYXNrID0gfjA7CiAJaWYgKEhBU19MM19HUFVf Q0FDSEUoZGV2KSkgewogCQkvKiBMMyBwYXJpdHkgaW50ZXJydXB0IGlzIGFsd2F5cyB1bm1hc2tl ZC4gKi8KLQkJZGV2X3ByaXYtPmd0X2lycV9tYXNrID0gfkdUX1JFTkRFUl9MM19QQVJJVFlfRVJS T1JfSU5URVJSVVBUOwotCQlndF9pcnFzIHw9IEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5U RVJSVVBUOworCQlkZXZfcHJpdi0+Z3RfaXJxX21hc2sgPSB+R1RfUEFSSVRZX0VSUk9SKGRldik7 CisJCWd0X2lycXMgfD0gR1RfUEFSSVRZX0VSUk9SKGRldik7CiAJfQogCiAJZ3RfaXJxcyB8PSBH VF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCAzODRh ZGZiLi5jOTQ5NDZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTkyNyw2ICs5MjcsNyBA QAogI2RlZmluZSBHVF9CTFRfVVNFUl9JTlRFUlJVUFQJCQkoMSA8PCAyMikKICNkZWZpbmUgR1Rf QlNEX0NTX0VSUk9SX0lOVEVSUlVQVAkJKDEgPDwgMTUpCiAjZGVmaW5lIEdUX0JTRF9VU0VSX0lO VEVSUlVQVAkJCSgxIDw8IDEyKQorI2RlZmluZSBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lO VEVSUlVQVF9TMQkoMSA8PCAxMSkgLyogaHN3KzsgcnN2ZCBvbiBzbmIsIGl2Yiwgdmx2ICovCiAj ZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUCSgxIDw8ICA1KSAvKiAh c25iICovCiAjZGVmaW5lIEdUX1JFTkRFUl9QSVBFQ1RMX05PVElGWV9JTlRFUlJVUFQJKDEgPDwg IDQpCiAjZGVmaW5lIEdUX1JFTkRFUl9DU19NQVNURVJfRVJST1JfSU5URVJSVVBUCSgxIDw8ICAz KQpAQCAtOTM3LDYgKzkzOCwxMCBAQAogI2RlZmluZSBQTV9WRUJPWF9DU19FUlJPUl9JTlRFUlJV UFQJCSgxIDw8IDEyKSAvKiBoc3crICovCiAjZGVmaW5lIFBNX1ZFQk9YX1VTRVJfSU5URVJSVVBU CQkJKDEgPDwgMTApIC8qIGhzdysgKi8KIAorI2RlZmluZSBHVF9QQVJJVFlfRVJST1IoZGV2KSBc CisJKEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUIHwgXAorCSBJU19IQVNXRUxM KGRldikgPyBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVF9TMSA6IDApCisKIC8q IFRoZXNlIGFyZSBhbGwgdGhlICJvbGQiIGludGVycnVwdHMgKi8KICNkZWZpbmUgSUxLX0JTRF9V U0VSX0lOVEVSUlVQVAkJCQkoMTw8NSkKICNkZWZpbmUgSTkxNV9QSVBFX0NPTlRST0xfTk9USUZZ X0lOVEVSUlVQVAkJKDE8PDE4KQpAQCAtNDc0Myw2ICs0NzQ4LDcgQEAKIAogLyogSVZZQlJJREdF IERQRiAqLwogI2RlZmluZSBHRU43X0wzQ0RFUlJTVDEJCQkweEIwMDggLyogTDNDRCBFcnJvciBT dGF0dXMgMSAqLworI2RlZmluZSBIU1dfTDNDREVSUlNUMTEJCQkweEIyMDggLyogTDNDRCBFcnJv ciBTdGF0dXMgcmVnaXN0ZXIgMSBzbGljZSAxICovCiAjZGVmaW5lICAgR0VON19MM0NERVJSU1Qx X1JPV19NQVNLCSgweDdmZjw8MTQpCiAjZGVmaW5lICAgR0VON19QQVJJVFlfRVJST1JfVkFMSUQJ KDE8PDEzKQogI2RlZmluZSAgIEdFTjdfTDNDREVSUlNUMV9CQU5LX01BU0sJKDM8PDExKQpAQCAt NDc1Niw2ICs0NzYyLDcgQEAKICNkZWZpbmUgICBHRU43X0wzQ0RFUlJTVDFfRU5BQkxFCSgxPDw3 KQogCiAjZGVmaW5lIEdFTjdfTDNMT0dfQkFTRQkJCTB4QjA3MAorI2RlZmluZSBIU1dfTDNMT0df QkFTRV9TTElDRTEJCTB4QjI3MAogI2RlZmluZSBHRU43X0wzTE9HX1NJWkUJCQkweDgwCiAKICNk ZWZpbmUgR0VON19IQUxGX1NMSUNFX0NISUNLRU4xCTB4ZTEwMCAvKiBJVkIgR1QxICsgVkxWICov CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKaW5kZXggNzFmNmRlMi4uM2E4YmYwYyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfc3lzZnMuYwpAQCAtMTE5LDYgKzExOSw3IEBAIGk5MTVfbDNfcmVhZChz dHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosCiAJc3RydWN0IGRybV9kZXZp Y2UgKmRybV9kZXYgPSBkbWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkcm1fZGV2LT5kZXZfcHJpdmF0ZTsKIAl1aW50MzJfdCBtaXNjY3BjdGw7CisJaW50 IHNsaWNlID0gKGludCkodWludHB0cl90KWF0dHItPnByaXZhdGU7CiAJaW50IGksIHJldDsKIAog CWNvdW50ID0gcm91bmRfZG93bihjb3VudCwgNCk7CkBAIC0xMzQsOSArMTM1LDkgQEAgaTkxNV9s M19yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkJcmV0dXJu IHJldDsKIAogCWlmIChJU19IQVNXRUxMKGRybV9kZXYpKSB7Ci0JCWlmIChkZXZfcHJpdi0+bDNf cGFyaXR5LnJlbWFwX2luZm8pCisJCWlmIChkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm9b c2xpY2VdKQogCQkJbWVtY3B5KGJ1ZiwKLQkJCSAgICAgICBkZXZfcHJpdi0+bDNfcGFyaXR5LnJl bWFwX2luZm8gKyAob2Zmc2V0LzQpLAorCQkJICAgICAgIGRldl9wcml2LT5sM19wYXJpdHkucmVt YXBfaW5mb1tzbGljZV0gKyAob2Zmc2V0LzQpLAogCQkJICAgICAgIGNvdW50KTsKIAkJZWxzZQog CQkJbWVtc2V0KGJ1ZiwgMCwgY291bnQpOwpAQCAtMTY4LDYgKzE2OSw3IEBAIGk5MTVfbDNfd3Jp dGUoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCXN0cnVjdCBkcm1f ZGV2aWNlICpkcm1fZGV2ID0gZG1pbm9yLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZHJtX2Rldi0+ZGV2X3ByaXZhdGU7CiAJdTMyICp0ZW1wID0gTlVMTDsgLyog SnVzdCBoZXJlIHRvIG1ha2UgaGFuZGxpbmcgZmFpbHVyZXMgZWFzeSAqLworCWludCBzbGljZSA9 IChpbnQpKHVpbnRwdHJfdClhdHRyLT5wcml2YXRlOwogCWludCByZXQ7CiAKIAlyZXQgPSBsM19h Y2Nlc3NfdmFsaWQoZHJtX2Rldiwgb2Zmc2V0KTsKQEAgLTE3OCw3ICsxODAsNyBAQCBpOTE1X2wz X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAlpZiAocmV0 KQogCQlyZXR1cm4gcmV0OwogCi0JaWYgKCFkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm8p IHsKKwlpZiAoIWRldl9wcml2LT5sM19wYXJpdHkucmVtYXBfaW5mb1tzbGljZV0pIHsKIAkJdGVt cCA9IGt6YWxsb2MoR0VON19MM0xPR19TSVpFLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCF0ZW1wKSB7 CiAJCQltdXRleF91bmxvY2soJmRybV9kZXYtPnN0cnVjdF9tdXRleCk7CkBAIC0xOTgsMTEgKzIw MCwxMSBAQCBpOTE1X2wzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAq a29iaiwKIAkgKiBhdCB0aGlzIHBvaW50IGl0IGlzIGxlZnQgYXMgYSBUT0RPLgogCSovCiAJaWYg KHRlbXApCi0JCWRldl9wcml2LT5sM19wYXJpdHkucmVtYXBfaW5mbyA9IHRlbXA7CisJCWRldl9w cml2LT5sM19wYXJpdHkucmVtYXBfaW5mb1tzbGljZV0gPSB0ZW1wOwogCi0JbWVtY3B5KGRldl9w cml2LT5sM19wYXJpdHkucmVtYXBfaW5mbyArIChvZmZzZXQvNCksIGJ1ZiwgY291bnQpOworCW1l bWNweShkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm9bc2xpY2VdICsgKG9mZnNldC80KSwg YnVmLCBjb3VudCk7CiAKLQlpOTE1X2dlbV9sM19yZW1hcChkcm1fZGV2KTsKKwlpOTE1X2dlbV9s M19yZW1hcChkcm1fZGV2LCBzbGljZSk7CiAKIAltdXRleF91bmxvY2soJmRybV9kZXYtPnN0cnVj dF9tdXRleCk7CiAKQEAgLTIxNCw3ICsyMTYsMTcgQEAgc3RhdGljIHN0cnVjdCBiaW5fYXR0cmli dXRlIGRwZl9hdHRycyA9IHsKIAkuc2l6ZSA9IEdFTjdfTDNMT0dfU0laRSwKIAkucmVhZCA9IGk5 MTVfbDNfcmVhZCwKIAkud3JpdGUgPSBpOTE1X2wzX3dyaXRlLAotCS5tbWFwID0gTlVMTAorCS5t bWFwID0gTlVMTCwKKwkucHJpdmF0ZSA9ICh2b2lkICopMAorfTsKKworc3RhdGljIHN0cnVjdCBi aW5fYXR0cmlidXRlIGRwZl9hdHRyc18xID0geworCS5hdHRyID0gey5uYW1lID0gImwzX3Bhcml0 eV9zbGljZV8xIiwgLm1vZGUgPSAoU19JUlVTUiB8IFNfSVdVU1IpfSwKKwkuc2l6ZSA9IEdFTjdf TDNMT0dfU0laRSwKKwkucmVhZCA9IGk5MTVfbDNfcmVhZCwKKwkud3JpdGUgPSBpOTE1X2wzX3dy aXRlLAorCS5tbWFwID0gTlVMTCwKKwkucHJpdmF0ZSA9ICh2b2lkICopMQogfTsKIAogc3RhdGlj IHNzaXplX3QgZ3RfY3VyX2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2RldiwKQEAgLTUy NSw2ICs1MzcsMTMgQEAgdm9pZCBpOTE1X3NldHVwX3N5c2ZzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCXJldCA9IGRldmljZV9jcmVhdGVfYmluX2ZpbGUoJmRldi0+cHJpbWFyeS0+a2Rldiwg JmRwZl9hdHRycyk7CiAJCWlmIChyZXQpCiAJCQlEUk1fRVJST1IoImwzIHBhcml0eSBzeXNmcyBz ZXR1cCBmYWlsZWRcbiIpOworCisJCWlmIChOVU1fTDNfU0xJQ0VTKGRldikgPiAxKSB7CisJCQly ZXQgPSBkZXZpY2VfY3JlYXRlX2Jpbl9maWxlKCZkZXYtPnByaW1hcnktPmtkZXYsCisJCQkJCQkg ICAgICZkcGZfYXR0cnNfMSk7CisJCQlpZiAocmV0KQorCQkJCURSTV9FUlJPUigibDMgcGFyaXR5 IHNsaWNlIDEgc2V0dXAgZmFpbGVkXG4iKTsKKwkJfQogCX0KIAogCXJldCA9IDA7CkBAIC01NDgs NiArNTY3LDcgQEAgdm9pZCBpOTE1X3RlYXJkb3duX3N5c2ZzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCXN5c2ZzX3JlbW92ZV9maWxlcygmZGV2LT5wcmltYXJ5LT5rZGV2LmtvYmosIHZsdl9h dHRycyk7CiAJZWxzZQogCQlzeXNmc19yZW1vdmVfZmlsZXMoJmRldi0+cHJpbWFyeS0+a2Rldi5r b2JqLCBnZW42X2F0dHJzKTsKKwlkZXZpY2VfcmVtb3ZlX2Jpbl9maWxlKCZkZXYtPnByaW1hcnkt PmtkZXYsICAmZHBmX2F0dHJzXzEpOwogCWRldmljZV9yZW1vdmVfYmluX2ZpbGUoJmRldi0+cHJp bWFyeS0+a2RldiwgICZkcGZfYXR0cnMpOwogI2lmZGVmIENPTkZJR19QTQogCXN5c2ZzX3VubWVy Z2VfZ3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rldi5rb2JqLCAmcmM2X2F0dHJfZ3JvdXApOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDY4NmU1YjIuLjk1OGI3ZDgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTU3MCw3ICs1NzAs NyBAQCBzdGF0aWMgaW50IGluaXRfcmVuZGVyX3Jpbmcoc3RydWN0IGludGVsX3JpbmdfYnVmZmVy ICpyaW5nKQogCQlJOTE1X1dSSVRFKElOU1RQTSwgX01BU0tFRF9CSVRfRU5BQkxFKElOU1RQTV9G T1JDRV9PUkRFUklORykpOwogCiAJaWYgKEhBU19MM19HUFVfQ0FDSEUoZGV2KSkKLQkJSTkxNV9X UklURV9JTVIocmluZywgfkdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUKTsKKwkJ STkxNV9XUklURV9JTVIocmluZywgfkdUX1BBUklUWV9FUlJPUihkZXYpKTsKIAogCXJldHVybiBy ZXQ7CiB9CkBAIC0xMDAwLDcgKzEwMDAsNyBAQCBnZW42X3JpbmdfZ2V0X2lycShzdHJ1Y3QgaW50 ZWxfcmluZ19idWZmZXIgKnJpbmcpCiAJCWlmIChIQVNfTDNfR1BVX0NBQ0hFKGRldikgJiYgcmlu Zy0+aWQgPT0gUkNTKQogCQkJSTkxNV9XUklURV9JTVIocmluZywKIAkJCQkgICAgICAgfihyaW5n LT5pcnFfZW5hYmxlX21hc2sgfAotCQkJCQkgR1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRF UlJVUFQpKTsKKwkJCQkJIEdUX1BBUklUWV9FUlJPUihkZXYpKSk7CiAJCWVsc2UKIAkJCUk5MTVf V1JJVEVfSU1SKHJpbmcsIH5yaW5nLT5pcnFfZW5hYmxlX21hc2spOwogCQlpbGtfZW5hYmxlX2d0 X2lycShkZXZfcHJpdiwgcmluZy0+aXJxX2VuYWJsZV9tYXNrKTsKQEAgLTEwMjAsOCArMTAyMCw3 IEBAIGdlbjZfcmluZ19wdXRfaXJxKHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZykKIAlz cGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7CiAJaWYgKC0tcmlu Zy0+aXJxX3JlZmNvdW50ID09IDApIHsKIAkJaWYgKEhBU19MM19HUFVfQ0FDSEUoZGV2KSAmJiBy aW5nLT5pZCA9PSBSQ1MpCi0JCQlJOTE1X1dSSVRFX0lNUihyaW5nLAotCQkJCSAgICAgICB+R1Rf UkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpOworCQkJSTkxNV9XUklURV9JTVIocmlu ZywgfkdUX1BBUklUWV9FUlJPUihkZXYpKTsKIAkJZWxzZQogCQkJSTkxNV9XUklURV9JTVIocmlu ZywgfjApOwogCQlpbGtfZGlzYWJsZV9ndF9pcnEoZGV2X3ByaXYsIHJpbmctPmlycV9lbmFibGVf bWFzayk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRl L3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggNTViYjU3Mi4uM2E0ZTk3YiAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9k cm0uaApAQCAtMzgsMTAgKzM4LDEwIEBACiAgKgogICogSTkxNV9MM19QQVJJVFlfVUVWRU5UIC0g R2VuZXJhdGVkIHdoZW4gdGhlIGRyaXZlciByZWNlaXZlcyBhIHBhcml0eSBtaXNtYXRjaAogICoJ ZXZlbnQgZnJvbSB0aGUgZ3B1IGwzIGNhY2hlLiBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIHN1cHBs aWVkIGlzIFJPVywKLSAqCUJBTkssIFNVQkJBTksgb2YgdGhlIGFmZmVjdGVkIGNhY2hlbGluZS4g VXNlcnNwYWNlIHNob3VsZCBrZWVwIHRyYWNrIG9mCi0gKgl0aGVzZSBldmVudHMgYW5kIGlmIGEg c3BlY2lmaWMgY2FjaGUtbGluZSBzZWVtcyB0byBoYXZlIGEgcGVyc2lzdGVudAotICoJZXJyb3Ig cmVtYXAgaXQgd2l0aCB0aGUgbDMgcmVtYXBwaW5nIHRvb2wgc3VwcGxpZWQgaW4gaW50ZWwtZ3B1 LXRvb2xzLgotICoJVGhlIHZhbHVlIHN1cHBsaWVkIHdpdGggdGhlIGV2ZW50IGlzIGFsd2F5cyAx LgorICoJQkFOSywgU1VCQkFOSywgU0xJQ0Ugb2YgdGhlIGFmZmVjdGVkIGNhY2hlbGluZS4gVXNl cnNwYWNlIHNob3VsZCBrZWVwCisgKgl0cmFjayBvZiB0aGVzZSBldmVudHMgYW5kIGlmIGEgc3Bl Y2lmaWMgY2FjaGUtbGluZSBzZWVtcyB0byBoYXZlIGEKKyAqCXBlcnNpc3RlbnQgZXJyb3IgcmVt YXAgaXQgd2l0aCB0aGUgbDMgcmVtYXBwaW5nIHRvb2wgc3VwcGxpZWQgaW4KKyAqCWludGVsLWdw dS10b29scy4gIFRoZSB2YWx1ZSBzdXBwbGllZCB3aXRoIHRoZSBldmVudCBpcyBhbHdheXMgMS4K ICAqCiAgKiBJOTE1X0VSUk9SX1VFVkVOVCAtIEdlbmVyYXRlZCB1cG9uIGVycm9yIGRldGVjdGlv biwgY3VycmVudGx5IG9ubHkgdmlhCiAgKgloYW5nY2hlY2suIFRoZSBlcnJvciBkZXRlY3Rpb24g ZXZlbnQgaXMgYSBnb29kIGluZGljYXRvciBvZiB3aGVuIHRoaW5ncwotLSAKMS44LjQKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==