From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH 2/2] drm/i915: replace for_each_engine() Date: Wed, 23 Mar 2016 18:19:54 +0000 Message-ID: <1458757194-17783-3-git-send-email-david.s.gordon@intel.com> References: <1458757194-17783-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 9E56E6E134 for ; Wed, 23 Mar 2016 18:20:34 +0000 (UTC) In-Reply-To: <1458757194-17783-1-git-send-email-david.s.gordon@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@lists.freedesktop.org Cc: jani.nikula@intel.com List-Id: intel-gfx@lists.freedesktop.org SGF2aW5nIHByb3ZpZGVkIGZvcl9lYWNoX2VuZ2luZV9pZCgpIGZvciBjYXNlcyB3aGVyZSB0aGUg dGhpcmQgKGlkKQphcmd1bWVudCBpcyB1c2VmdWwsIHdlIGNhbiBub3cgcmVwbGFjZSBhbGwgdGhl IHJlbWFpbmluZyBpbnN0YW5jZXMgd2l0aAphIHNpbXBsZXIgdmVyc2lvbiB0aGF0IHRha2VzIG9u bHkgdHdvIHBhcmFtZXRlcnMuIEluIG1hbnkgY2FzZXMsIHRoaXMKYWxzbyBhbGxvd3MgdGhlIGVs aW1pbmF0aW9uIG9mIHRoZSBsb2NhbCB2YXJpYWJsZSB1c2VkIGluIHRoZSBpdGVyYXRvcgoodXN1 YWxseSAnaScpLgoKU2lnbmVkLW9mZi1ieTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAg fCA1MCArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICAgICAgICB8IDE3ICsrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDUwICsrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgIHwgIDYgKyst LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZGVidWcuYyAgICAgIHwgIDMgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICB8ICA5ICsrLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgIDYgKystLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICAgIHwgMTQgKysrLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgICAgfCAgOCArKy0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgICB8IDE5ICsrKysrLS0tLS0tLQogMTEgZmls ZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgMTAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNzdkY2U1Mi4uZDAyZjhjZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTM5OCwxMSArMzk4LDExIEBAIHN0YXRpYyB2b2lkIHBy aW50X2JhdGNoX3Bvb2xfc3RhdHMoc3RydWN0IHNlcV9maWxlICptLAogCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGZpbGVfc3RhdHMgc3RhdHM7CiAJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWludCBpLCBqOworCWludCBqOwogCiAJbWVtc2V0KCZz dGF0cywgMCwgc2l6ZW9mKHN0YXRzKSk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZf cHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCWZvciAo aiA9IDA7IGogPCBBUlJBWV9TSVpFKGVuZ2luZS0+YmF0Y2hfcG9vbC5jYWNoZV9saXN0KTsgaisr KSB7CiAJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwKIAkJCQkJICAgICZlbmdpbmUtPmJhdGNo X3Bvb2wuY2FjaGVfbGlzdFtqXSwKQEAgLTYzOCwxMyArNjM4LDEzIEBAIHN0YXRpYyBpbnQgaTkx NV9nZW1fYmF0Y2hfcG9vbF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZTsKIAlpbnQgdG90YWwgPSAwOwotCWludCByZXQsIGksIGo7CisJaW50IHJldCwgajsK IAogCXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZf cHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCWZvciAo aiA9IDA7IGogPCBBUlJBWV9TSVpFKGVuZ2luZS0+YmF0Y2hfcG9vbC5jYWNoZV9saXN0KTsgaisr KSB7CiAJCQlpbnQgY291bnQ7CiAKQEAgLTY4MiwxNCArNjgyLDE0IEBAIHN0YXRpYyBpbnQgaTkx NV9nZW1fcmVxdWVzdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcTsKLQlpbnQgcmV0LCBhbnksIGk7CisJaW50IHJldCwgYW55OwogCiAJcmV0ID0gbXV0ZXhf bG9ja19pbnRlcnJ1cHRpYmxlKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIAogCWFueSA9IDA7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYs IGkpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewogCQlpbnQgY291bnQ7 CiAKIAkJY291bnQgPSAwOwpAQCAtNzM5LDE0ICs3MzksMTQgQEAgc3RhdGljIGludCBpOTE1X2dl bV9zZXFub19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZTsKLQlpbnQgcmV0LCBpOworCWludCByZXQ7CiAKIAlyZXQgPSBtdXRleF9sb2NrX2lu dGVycnVwdGlibGUoJmRldi0+c3RydWN0X211dGV4KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0 OwogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKIAotCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQog CQlpOTE1X3Jpbmdfc2Vxbm9faW5mbyhtLCBlbmdpbmUpOwogCiAJaW50ZWxfcnVudGltZV9wbV9w dXQoZGV2X3ByaXYpOwpAQCAtOTMzLDcgKzkzMyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9pbnRlcnJ1 cHRfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJCXNlcV9wcmludGYobSwg IkdyYXBoaWNzIEludGVycnVwdCBtYXNrOgkJJTA4eFxuIiwKIAkJCSAgIEk5MTVfUkVBRChHVElN UikpOwogCX0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA2KSB7CiAJCQlzZXFfcHJpbnRmKG0sCiAJCQkJICAgIkdyYXBoaWNzIEludGVycnVwdCBt YXNrICglcyk6CSUwOHhcbiIsCkBAIC0yMDQ0LDcgKzIwNDQsNyBAQCBzdGF0aWMgaW50IGk5MTVf ZHVtcF9scmMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eDsKLQlpbnQgcmV0 LCBpOworCWludCByZXQ7CiAKIAlpZiAoIWk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewogCQlzZXFf cHJpbnRmKG0sICJMb2dpY2FsIFJpbmcgQ29udGV4dHMgYXJlIGRpc2FibGVkXG4iKTsKQEAgLTIw NTcsNyArMjA1Nyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kdW1wX2xyYyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHZvaWQgKnVudXNlZCkKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoY3R4LCAmZGV2X3ByaXYt PmNvbnRleHRfbGlzdCwgbGluaykKIAkJaWYgKGN0eCAhPSBkZXZfcHJpdi0+a2VybmVsX2NvbnRl eHQpCi0JCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwkJCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQogCQkJCWk5MTVfZHVtcF9scmNfb2JqKG0sIGN0eCwg ZW5naW5lKTsKIAogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwpAQCAtMjA3Nyw4 ICsyMDc3LDcgQEAgc3RhdGljIGludCBpOTE1X2V4ZWNsaXN0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKmRhdGEpCiAJdTMyIHN0YXR1czsKIAl1MzIgY3R4X2lkOwogCXN0cnVjdCBsaXN0X2hl YWQgKmN1cnNvcjsKLQlpbnQgcmluZ19pZCwgaTsKLQlpbnQgcmV0OworCWludCBpLCByZXQ7CiAK IAlpZiAoIWk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewogCQlzZXFfcHV0cyhtLCAiTG9naWNhbCBS aW5nIENvbnRleHRzIGFyZSBkaXNhYmxlZFxuIik7CkBAIC0yMDkxLDcgKzIwOTAsNyBAQCBzdGF0 aWMgaW50IGk5MTVfZXhlY2xpc3RzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAog CWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2LCByaW5nX2lkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3By aXYpIHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpoZWFkX3JlcSA9IE5VTEw7CiAJ CWludCBjb3VudCA9IDA7CiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC0yMjUwLDEyICsyMjQ5 LDEyIEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJ c3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0 OwotCWludCB1bnVzZWQsIGk7CisJaW50IGk7CiAKIAlpZiAoIXBwZ3R0KQogCQlyZXR1cm47CiAK LQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgdW51c2VkKSB7CisJZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJc2VxX3ByaW50ZihtLCAiJXNcbiIsIGVuZ2lu ZS0+bmFtZSk7CiAJCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKIAkJCXU2NCBwZHAgPSBJOTE1 X1JFQUQoR0VOOF9SSU5HX1BEUF9VRFcoZW5naW5lLCBpKSk7CkBAIC0yMjcwLDEyICsyMjY5LDEx IEBAIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0J aW50IGk7CiAKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gNikKIAkJc2VxX3ByaW50Ziht LCAiR0ZYX01PREU6IDB4JTA4eFxuIiwgSTkxNV9SRUFEKEdGWF9NT0RFKSk7CiAKLQlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGRldl9wcml2KSB7CiAJCXNlcV9wcmludGYobSwgIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwogCQlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gNykKIAkJCXNlcV9wcmludGYobSwgIkdGWF9NT0RF OiAweCUwOHhcbiIsCkBAIC0yMzQyLDkgKzIzNDAsOCBAQCBzdGF0aWMgaW50IGNvdW50X2lycV93 YWl0ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgY291bnQgPSAwOwotCWludCBpOwogCi0JZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgaTkxNSwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1KQog CQljb3VudCArPSBlbmdpbmUtPmlycV9yZWZjb3VudDsKIAogCXJldHVybiBjb3VudDsKQEAgLTI0 NTUsNyArMjQ1Miw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2NsaWVudF9pbmZvKHN0cnVjdCBz ZXFfZmlsZSAqbSwKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJdWludDY0 X3QgdG90ID0gMDsKLQl1aW50MzJfdCBpOwogCiAJc2VxX3ByaW50ZihtLCAiXHRQcmlvcml0eSAl ZCwgR3VDIGN0eCBpbmRleDogJXUsIFBEIG9mZnNldCAweCV4XG4iLAogCQljbGllbnQtPnByaW9y aXR5LCBjbGllbnQtPmN0eF9pbmRleCwgY2xpZW50LT5wcm9jX2Rlc2Nfb2Zmc2V0KTsKQEAgLTI0 NjgsNyArMjQ2NCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2NsaWVudF9pbmZvKHN0cnVjdCBz ZXFfZmlsZSAqbSwKIAlzZXFfcHJpbnRmKG0sICJcdEZhaWxlZCBkb29yYmVsbDogJXVcbiIsIGNs aWVudC0+Yl9mYWlsKTsKIAlzZXFfcHJpbnRmKG0sICJcdExhc3Qgc3VibWlzc2lvbiByZXN1bHQ6 ICVkXG4iLCBjbGllbnQtPnJldGNvZGUpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYsIGkpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewogCQlzZXFf cHJpbnRmKG0sICJcdFN1Ym1pc3Npb25zOiAlbGx1ICVzXG4iLAogCQkJCWNsaWVudC0+c3VibWlz c2lvbnNbZW5naW5lLT5ndWNfaWRdLAogCQkJCWVuZ2luZS0+bmFtZSk7CkBAIC0yNDg1LDcgKzI0 ODEsNiBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICpkYXRhKQogCXN0cnVjdCBpbnRlbF9ndWMgZ3VjOwogCXN0cnVjdCBpOTE1X2d1Y19jbGllbnQg Y2xpZW50ID0ge307CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWVudW0gaW50 ZWxfZW5naW5lX2lkIGk7CiAJdTY0IHRvdGFsID0gMDsKIAogCWlmICghSEFTX0dVQ19TQ0hFRChk ZXZfcHJpdi0+ZGV2KSkKQEAgLTI1MDgsNyArMjUwMyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNf aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc2VxX3ByaW50ZihtLCAiR3VD IGxhc3QgYWN0aW9uIGVycm9yIGNvZGU6ICVkXG4iLCBndWMuYWN0aW9uX2Vycik7CiAKIAlzZXFf cHJpbnRmKG0sICJcbkd1QyBzdWJtaXNzaW9uczpcbiIpOwotCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsK IAkJc2VxX3ByaW50ZihtLCAiXHQlLTI0czogJTEwbGx1LCBsYXN0IHNlcW5vIDB4JTA4eFxuIiwK IAkJCWVuZ2luZS0+bmFtZSwgZ3VjLnN1Ym1pc3Npb25zW2VuZ2luZS0+Z3VjX2lkXSwKIAkJCWd1 Yy5sYXN0X3NlcW5vW2VuZ2luZS0+Z3VjX2lkXSk7CkBAIC0zMTgxLDcgKzMxNzYsNyBAQCBzdGF0 aWMgaW50IGk5MTVfc2VtYXBob3JlX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVu dXNlZCkKIAkJa3VubWFwX2F0b21pYyhzZXFubyk7CiAJfSBlbHNlIHsKIAkJc2VxX3B1dHMobSwg IiAgTGFzdCBzaWduYWw6Iik7Ci0JCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBp ZCkKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJCQlmb3IgKGogPSAwOyBq IDwgbnVtX3JpbmdzOyBqKyspCiAJCQkJc2VxX3ByaW50ZihtLCAiMHglMDh4XG4iLAogCQkJCQkg ICBJOTE1X1JFQUQoZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbal0pKTsKQEAgLTMxODks MTEgKzMxODQsMTAgQEAgc3RhdGljIGludCBpOTE1X3NlbWFwaG9yZV9zdGF0dXMoc3RydWN0IHNl cV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJfQogCiAJc2VxX3B1dHMobSwgIlxuU3luYyBzZXFu bzpcbiIpOwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewotCQlmb3Ig KGogPSAwOyBqIDwgbnVtX3JpbmdzOyBqKyspIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdikgeworCQlmb3IgKGogPSAwOyBqIDwgbnVtX3JpbmdzOyBqKyspCiAJCQlzZXFfcHJp bnRmKG0sICIgIDB4JTA4eCAiLAogCQkJCSAgIGVuZ2luZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm9b al0pOwotCQl9CiAJCXNlcV9wdXRjKG0sICdcbicpOwogCX0KIAlzZXFfcHV0YyhtLCAnXG4nKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDYyZWU4NmMuLmU0NjI2ODMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaApAQCAtMjAwOCwxMCArMjAwOCwxMiBAQCBzdGF0aWMgaW5saW5lIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpndWNfdG9faTkxNShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJ cmV0dXJuIGNvbnRhaW5lcl9vZihndWMsIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCBndWMpOwog fQogCi0vKiBJdGVyYXRlIG92ZXIgaW5pdGlhbGlzZWQgcmluZ3MgKi8KLSNkZWZpbmUgZm9yX2Vh Y2hfZW5naW5lKHJpbmdfXywgZGV2X3ByaXZfXywgaV9fKSBcCi0JZm9yICgoaV9fKSA9IDA7IChp X18pIDwgSTkxNV9OVU1fRU5HSU5FUzsgKGlfXykrKykgXAotCQlmb3JfZWFjaF9pZiAoKCgocmlu Z19fKSA9ICYoZGV2X3ByaXZfXyktPmVuZ2luZVsoaV9fKV0pLCBpbnRlbF9lbmdpbmVfaW5pdGlh bGl6ZWQoKHJpbmdfXykpKSkKKy8qIFNpbXBsZSBpdGVyYXRvciBvdmVyIGFsbCBpbml0aWFsaXNl ZCBlbmdpbmVzICovCisjZGVmaW5lIGZvcl9lYWNoX2VuZ2luZShlbmdpbmVfXywgZGV2X3ByaXZf XykgXAorCWZvciAoKGVuZ2luZV9fKSA9ICYoZGV2X3ByaXZfXyktPmVuZ2luZVswXTsgXAorCSAg ICAgKGVuZ2luZV9fKSA8ICYoZGV2X3ByaXZfXyktPmVuZ2luZVtJOTE1X05VTV9FTkdJTkVTXTsg XAorCSAgICAgKGVuZ2luZV9fKSsrKSBcCisJCWZvcl9lYWNoX2lmIChpbnRlbF9lbmdpbmVfaW5p dGlhbGl6ZWQoZW5naW5lX18pKQogCiAvKiBJdGVyYXRvciB3aXRoIGVuZ2luZV9pZCAqLwogI2Rl ZmluZSBmb3JfZWFjaF9lbmdpbmVfaWQoZW5naW5lX18sIGRldl9wcml2X18sIGlkX18pIFwKQEAg LTIwMjMsOCArMjAyNSwxMSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpndWNfdG9faTkxNShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAKIC8qIEl0ZXJhdG9yIG92ZXIg c3Vic2V0IG9mIGVuZ2luZXMgc2VsZWN0ZWQgYnkgbWFzayAqLwogI2RlZmluZSBmb3JfZWFjaF9l bmdpbmVfbWFza2VkKGVuZ2luZV9fLCBkZXZfcHJpdl9fLCBtYXNrX18pIFwKLQlmb3IgKChlbmdp bmVfXykgPSAmZGV2X3ByaXYtPmVuZ2luZVswXTsgKGVuZ2luZV9fKSA8ICZkZXZfcHJpdi0+ZW5n aW5lW0k5MTVfTlVNX0VOR0lORVNdOyAoZW5naW5lX18pKyspIFwKLQkJZm9yX2VhY2hfaWYgKGlu dGVsX2VuZ2luZV9mbGFnKChlbmdpbmVfXykpICYgKG1hc2tfXykgJiYgaW50ZWxfZW5naW5lX2lu aXRpYWxpemVkKChlbmdpbmVfXykpKQorCWZvciAoKGVuZ2luZV9fKSA9ICZkZXZfcHJpdi0+ZW5n aW5lWzBdOyBcCisJICAgICAoZW5naW5lX18pIDwgJmRldl9wcml2LT5lbmdpbmVbSTkxNV9OVU1f RU5HSU5FU107IFwKKwkgICAgIChlbmdpbmVfXykrKykgXAorCQlmb3JfZWFjaF9pZiAoKChtYXNr X18pICYgaW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lX18pKSAmJiBcCisJCQkgICAgIGludGVsX2Vu Z2luZV9pbml0aWFsaXplZChlbmdpbmVfXykpCiAKIGVudW0gaGRtaV9mb3JjZV9hdWRpbyB7CiAJ SERNSV9BVURJT19PRkZfRFZJID0gLTIsCS8qIG5vIGF1eCBkYXRhIGZvciBIRE1JLURWSSBjb252 ZXJ0ZXIgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDg1ODhjODMuLmM3YTk5N2EgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMjQ2NiwxMCArMjQ2NiwxMCBAQCB2b2lkIGk5MTVf dm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lOwotCWludCByZXQsIGksIGo7CisJaW50IHJldCwgajsKIAogCS8q IENhcmVmdWxseSByZXRpcmUgYWxsIHJlcXVlc3RzIHdpdGhvdXQgd3JpdGluZyB0byB0aGUgcmlu Z3MgKi8KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCXJldCA9IGludGVsX2VuZ2luZV9pZGxlKGVu Z2luZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwpAQCAtMjQ3Nyw3ICsyNDc3LDcgQEAg dm9pZCBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAlpOTE1 X2dlbV9yZXRpcmVfcmVxdWVzdHMoZGV2KTsKIAogCS8qIEZpbmFsbHkgcmVzZXQgaHcgc3RhdGUg Ki8KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCWludGVsX3JpbmdfaW5pdF9zZXFubyhlbmdpbmUs IHNlcW5vKTsKIAogCQlmb3IgKGogPSAwOyBqIDwgQVJSQVlfU0laRShlbmdpbmUtPnNlbWFwaG9y ZS5zeW5jX3NlcW5vKTsgaisrKQpAQCAtMjg4NCwxNyArMjg4NCwxNiBAQCB2b2lkIGk5MTVfZ2Vt X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmU7Ci0JaW50IGk7CiAKIAkvKgogCSAqIEJlZm9yZSB3ZSBmcmVlIHRoZSBvYmplY3Rz IGZyb20gdGhlIHJlcXVlc3RzLCB3ZSBuZWVkIHRvIGluc3BlY3QKIAkgKiB0aGVtIGZvciBmaW5k aW5nIHRoZSBndWlsdHkgcGFydHkuIEFzIHRoZSByZXF1ZXN0cyBvbmx5IGJvcnJvdwogCSAqIHRo ZWlyIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0cywgdGhlIGluc3BlY3Rpb24gbXVzdCBiZSBkb25l IGZpcnN0LgogCSAqLwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKQorCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQogCQlpOTE1X2dlbV9yZXNldF9lbmdpbmVf c3RhdHVzKGRldl9wcml2LCBlbmdpbmUpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJCWk5MTVfZ2Vt X3Jlc2V0X2VuZ2luZV9jbGVhbnVwKGRldl9wcml2LCBlbmdpbmUpOwogCiAJaTkxNV9nZW1fY29u dGV4dF9yZXNldChkZXYpOwpAQCAtMjk2Miw5ICsyOTYxLDggQEAgdm9pZCBpOTE1X2dlbV9yZXNl dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l OwogCWJvb2wgaWRsZSA9IHRydWU7Ci0JaW50IGk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJ CWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19yaW5nKGVuZ2luZSk7CiAJCWlkbGUgJj0gbGlzdF9l bXB0eSgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpOwogCQlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3Rz KSB7CkBAIC0zMDA5LDI0ICszMDA3LDIwIEBAIHZvaWQgaTkxNV9nZW1fcmVzZXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQogCQlj b250YWluZXJfb2Yod29yaywgdHlwZW9mKCpkZXZfcHJpdiksIG1tLmlkbGVfd29yay53b3JrKTsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKLQlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nOwotCWludCBpOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZTsKIAotCWZvcl9lYWNoX2VuZ2luZShyaW5nLCBkZXZfcHJpdiwgaSkKLQkJaWYgKCFsaXN0X2Vt cHR5KCZyaW5nLT5yZXF1ZXN0X2xpc3QpKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9w cml2KQorCQlpZiAoIWxpc3RfZW1wdHkoJmVuZ2luZS0+cmVxdWVzdF9saXN0KSkKIAkJCXJldHVy bjsKIAogCS8qIHdlIHByb2JhYmx5IHNob3VsZCBzeW5jIHdpdGggaGFuZ2NoZWNrIGhlcmUsIHVz aW5nIGNhbmNlbF93b3JrX3N5bmMuCi0JICogQWxzbyBsb2NraW5nIHNlZW1zIHRvIGJlIGZ1YmFy IGhlcmUsIHJpbmctPnJlcXVlc3RfbGlzdCBpcyBwcm90ZWN0ZWQKKwkgKiBBbHNvIGxvY2tpbmcg c2VlbXMgdG8gYmUgZnViYXIgaGVyZSwgZW5naW5lLT5yZXF1ZXN0X2xpc3QgaXMgcHJvdGVjdGVk CiAJICogYnkgZGV2LT5zdHJ1Y3RfbXV0ZXguICovCiAKIAlpbnRlbF9tYXJrX2lkbGUoZGV2KTsK IAogCWlmIChtdXRleF90cnlsb2NrKCZkZXYtPnN0cnVjdF9tdXRleCkpIHsKLQkJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCQlpbnQgaTsKLQotCQlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBkZXZfcHJpdiwgaSkKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJ CQlpOTE1X2dlbV9iYXRjaF9wb29sX2ZpbmkoJmVuZ2luZS0+YmF0Y2hfcG9vbCk7CiAKIAkJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CkBAIC0zMzkwLDEwICszMzg0LDEwIEBAIGlu dCBpOTE1X2dwdV9pZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7Ci0JaW50IHJldCwgaTsKKwlpbnQgcmV0OwogCiAJLyogRmx1c2gg ZXZlcnl0aGluZyBvbnRvIHRoZSBpbmFjdGl2ZSBsaXN0LiAqLwotCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYp IHsKIAkJaWYgKCFpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKIAkJCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxOwogCkBAIC00NjU1LDkgKzQ2NDksOCBAQCB2b2lkIGk5MTVfZ2VtX3Zt YV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lOwotCWludCBpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYs IGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJCWRldl9wcml2LT5ndC5z dG9wX2VuZ2luZShlbmdpbmUpOwogfQogCkBAIC00ODI4LDcgKzQ4MjEsNyBAQCBpbnQgaTkxNV9n ZW1faW5pdF9lbmdpbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7Ci0JaW50IHJldCwgaSwgajsKKwlpbnQgcmV0LCBqOwogCiAJaWYg KElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNiAmJiAhaW50ZWxfZW5hYmxlX2d0dCgpKQogCQlyZXR1 cm4gLUVJTzsKQEAgLTQ4NzQsNyArNDg2Nyw3IEBAIGludCBpOTE1X2dlbV9pbml0X2VuZ2luZXMo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAKIAkvKiBOZWVkIHRvIGRvIGJhc2ljIGluaXRp YWxpc2F0aW9uIG9mIGFsbCByaW5ncyBmaXJzdDogKi8KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJ CXJldCA9IGVuZ2luZS0+aW5pdF9odyhlbmdpbmUpOwogCQlpZiAocmV0KQogCQkJZ290byBvdXQ7 CkBAIC00ODk5LDcgKzQ4OTIsNyBAQCBpbnQgaTkxNV9nZW1faW5pdF9lbmdpbmVzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJCWdvdG8gb3V0OwogCiAJLyogTm93IGl0IGlzIHNhZmUgdG8gZ28g YmFjayByb3VuZCBhbmQgZG8gZXZlcnl0aGluZyBlbHNlOiAqLwotCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYp IHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKIAkJcmVxID0gaTkxNV9n ZW1fcmVxdWVzdF9hbGxvYyhlbmdpbmUsIE5VTEwpOwpAQCAtNDkxNiw3ICs0OTA5LDggQEAgaW50 IGk5MTVfZ2VtX2luaXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJCXJldCA9 IGk5MTVfcHBndHRfaW5pdF9yaW5nKHJlcSk7CiAJCWlmIChyZXQgJiYgcmV0ICE9IC1FSU8pIHsK LQkJCURSTV9FUlJPUigiUFBHVFQgZW5hYmxlIHJpbmcgIyVkIGZhaWxlZCAlZFxuIiwgaSwgcmV0 KTsKKwkJCURSTV9FUlJPUigiUFBHVFQgZW5hYmxlICVzIGZhaWxlZCAlZFxuIiwKKwkJCQkgIGVu Z2luZS0+bmFtZSwgcmV0KTsKIAkJCWk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHJlcSk7CiAJCQlp OTE1X2dlbV9jbGVhbnVwX2VuZ2luZXMoZGV2KTsKIAkJCWdvdG8gb3V0OwpAQCAtNDkyNCw3ICs0 OTE4LDggQEAgaW50IGk5MTVfZ2VtX2luaXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCiAJCXJldCA9IGk5MTVfZ2VtX2NvbnRleHRfZW5hYmxlKHJlcSk7CiAJCWlmIChyZXQgJiYg cmV0ICE9IC1FSU8pIHsKLQkJCURSTV9FUlJPUigiQ29udGV4dCBlbmFibGUgcmluZyAjJWQgZmFp bGVkICVkXG4iLCBpLCByZXQpOworCQkJRFJNX0VSUk9SKCJDb250ZXh0IGVuYWJsZSAlcyBmYWls ZWQgJWRcbiIsCisJCQkJICBlbmdpbmUtPm5hbWUsIHJldCk7CiAJCQlpOTE1X2dlbV9yZXF1ZXN0 X2NhbmNlbChyZXEpOwogCQkJaTkxNV9nZW1fY2xlYW51cF9lbmdpbmVzKGRldik7CiAJCQlnb3Rv IG91dDsKQEAgLTUwMDUsOSArNTAwMCw4IEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JaW50IGk7 CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBkZXZfcHJpdikKIAkJZGV2X3ByaXYtPmd0LmNsZWFudXBfZW5naW5lKGVuZ2lu ZSk7CiAKIAlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jCmluZGV4IDM5NGU1MjUuLmZlNTgwY2IgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTUxNyw3ICs1MTcsNyBAQCBzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqCiAJCWk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZW5naW5lLT5kZXYpID8KIAkJ aHdlaWdodDMyKElOVEVMX0lORk8oZW5naW5lLT5kZXYpLT5yaW5nX21hc2spIC0gMSA6CiAJCTA7 Ci0JaW50IGxlbiwgaSwgcmV0OworCWludCBsZW4sIHJldDsKIAogCS8qIHcvYTogSWYgRmx1c2gg VExCIEludmFsaWRhdGlvbiBNb2RlIGlzIGVuYWJsZWQsIGRyaXZlciBtdXN0IGRvIGEgVExCCiAJ ICogaW52YWxpZGF0aW9uIHByaW9yIHRvIE1JX1NFVF9DT05URVhULiBPbiBHRU42IHdlIGRvbid0 IHNldCB0aGUgdmFsdWUKQEAgLTU1Myw3ICs1NTMsNyBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4dCAq CiAKIAkJCWludGVsX3JpbmdfZW1pdChlbmdpbmUsCiAJCQkJCU1JX0xPQURfUkVHSVNURVJfSU1N KG51bV9yaW5ncykpOwotCQkJZm9yX2VhY2hfZW5naW5lKHNpZ25hbGxlciwgdG9faTkxNShlbmdp bmUtPmRldiksIGkpIHsKKwkJCWZvcl9lYWNoX2VuZ2luZShzaWduYWxsZXIsIHRvX2k5MTUoZW5n aW5lLT5kZXYpKSB7CiAJCQkJaWYgKHNpZ25hbGxlciA9PSBlbmdpbmUpCiAJCQkJCWNvbnRpbnVl OwogCkBAIC01ODIsNyArNTgyLDcgQEAgc3RydWN0IGludGVsX2NvbnRleHQgKgogCiAJCQlpbnRl bF9yaW5nX2VtaXQoZW5naW5lLAogCQkJCQlNSV9MT0FEX1JFR0lTVEVSX0lNTShudW1fcmluZ3Mp KTsKLQkJCWZvcl9lYWNoX2VuZ2luZShzaWduYWxsZXIsIHRvX2k5MTUoZW5naW5lLT5kZXYpLCBp KSB7CisJCQlmb3JfZWFjaF9lbmdpbmUoc2lnbmFsbGVyLCB0b19pOTE1KGVuZ2luZS0+ZGV2KSkg ewogCQkJCWlmIChzaWduYWxsZXIgPT0gZW5naW5lKQogCQkJCQljb250aW51ZTsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZGVidWcuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2RlYnVnLmMKaW5kZXggZWY5Y2Q3MC4uYTU2NTE2NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZGVidWcuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kZWJ1Zy5jCkBAIC0zOCwxMiArMzgsMTEgQEAKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKIAlpbnQgZXJyID0gMDsKLQlpbnQgaTsKIAogCWlmICh3YXJuZWQpCiAJCXJldHVybiAw OwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwlmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwgJmVu Z2luZS0+YWN0aXZlX2xpc3QsCiAJCQkJICAgIGVuZ2luZV9saXN0W2VuZ2luZS0+aWRdKSB7CiAJ CQlpZiAob2JqLT5iYXNlLmRldiAhPSBkZXYgfHwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmMKaW5kZXggMDcxNWJiNy4uNTllMTgyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmMKQEAgLTE3MzcsOSArMTczNyw4IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfZW5hYmxlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7 Ci0JaW50IGo7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaikgeworCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCXUzMiBmb3VyX2xldmVsID0gVVNF U19GVUxMXzQ4QklUX1BQR1RUKGRldikgPyBHRU44X0dGWF9QUEdUVF80OEIgOiAwOwogCQlJOTE1 X1dSSVRFKFJJTkdfTU9ERV9HRU43KGVuZ2luZSksCiAJCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUo R0ZYX1BQR1RUX0VOQUJMRSB8IGZvdXJfbGV2ZWwpKTsKQEAgLTE3NTEsNyArMTc1MCw2IEBAIHN0 YXRpYyB2b2lkIGdlbjdfcHBndHRfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJdWludDMyX3QgZWNvY2hrLCBlY29iaXRzOwot CWludCBpOwogCiAJZWNvYml0cyA9IEk5MTVfUkVBRChHQUNfRUNPX0JJVFMpOwogCUk5MTVfV1JJ VEUoR0FDX0VDT19CSVRTLCBlY29iaXRzIHwgRUNPQklUU19QUEdUVF9DQUNIRTY0Qik7CkBAIC0x NzY1LDcgKzE3NjMsNyBAQCBzdGF0aWMgdm9pZCBnZW43X3BwZ3R0X2VuYWJsZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCX0KIAlJOTE1X1dSSVRFKEdBTV9FQ09DSEssIGVjb2Noayk7CiAKLQlm b3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2KSB7CiAJCS8qIEdGWF9NT0RFIGlzIHBlci1yaW5nIG9uIGdlbjcrICov CiAJCUk5MTVfV1JJVEUoUklOR19NT0RFX0dFTjcoZW5naW5lKSwKIAkJCSAgIF9NQVNLRURfQklU X0VOQUJMRShHRlhfUFBHVFRfRU5BQkxFKSk7CkBAIC0yMjg3LDEyICsyMjg1LDExIEBAIHZvaWQg aTkxNV9jaGVja19hbmRfY2xlYXJfZmF1bHRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JaW50IGk7CiAKIAlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPCA2KQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCXUz MiBmYXVsdF9yZWc7CiAJCWZhdWx0X3JlZyA9IEk5MTVfUkVBRChSSU5HX0ZBVUxUX1JFRyhlbmdp bmUpKTsKIAkJaWYgKGZhdWx0X3JlZyAmIFJJTkdfRkFVTFRfVkFMSUQpIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCAwNjExYmRjLi5kYTg2YmRiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC04NDIsNyAr ODQyLDcgQEAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0ZV9hZHMoc3RydWN0IGludGVsX2d1YyAqZ3Vj KQogCXN0cnVjdCBndWNfbW1pb19yZWdfc3RhdGUgKnJlZ19zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7Ci0JdTMyIHNpemUsIGk7CisJ dTMyIHNpemU7CiAKIAkvKiBUaGUgYWRzIG9iaiBpbmNsdWRlcyB0aGUgc3RydWN0IGl0c2VsZiBh bmQgYnVmZmVycyBwYXNzZWQgdG8gR3VDICovCiAJc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZ3VjX2Fk cykgKyBzaXplb2Yoc3RydWN0IGd1Y19wb2xpY2llcykgKwpAQCAtODcxLDcgKzg3MSw3IEBAIHN0 YXRpYyB2b2lkIGd1Y19jcmVhdGVfYWRzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAllbmdpbmUg PSAmZGV2X3ByaXYtPmVuZ2luZVtSQ1NdOwogCWFkcy0+Z29sZGVuX2NvbnRleHRfbHJjYSA9IGVu Z2luZS0+c3RhdHVzX3BhZ2UuZ2Z4X2FkZHI7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKIAkJYWRzLT5l bmdfc3RhdGVfc2l6ZVtlbmdpbmUtPmd1Y19pZF0gPSBpbnRlbF9scl9jb250ZXh0X3NpemUoZW5n aW5lKTsKIAogCS8qIEd1QyBzY2hlZHVsaW5nIHBvbGljaWVzICovCkBAIC04ODQsNyArODg0LDcg QEAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0ZV9hZHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogCS8q IE1NSU8gcmVnIHN0YXRlICovCiAJcmVnX3N0YXRlID0gKHZvaWQgKilwb2xpY2llcyArIHNpemVv ZihzdHJ1Y3QgZ3VjX3BvbGljaWVzKTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9w cml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJcmVnX3N0 YXRlLT5tbWlvX3doaXRlX2xpc3RbZW5naW5lLT5ndWNfaWRdLm1taW9fc3RhcnQgPQogCQkJZW5n aW5lLT5tbWlvX2Jhc2UgKyBHVUNfTU1JT19XSElURV9MSVNUX1NUQVJUOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYwppbmRleCAxNGEyM2IzLi41YWE0MjM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKQEAgLTEwODAsOSArMTA4MCw4IEBAIHN0YXRpYyB1MzIgdmx2X3dhX2MwX2VpKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBtX2lpcikKIHN0YXRpYyBib29sIGFueV93 YWl0ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JaW50IGk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKIAkJaWYg KGVuZ2luZS0+aXJxX3JlZmNvdW50KQogCQkJcmV0dXJuIHRydWU7CiAKQEAgLTI0NTAsNyArMjQ0 OSw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfZXJyb3Jfd2FrZV91cChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICAgYm9vbCByZXNldF9jb21wbGV0ZWQpCiB7CiAJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWludCBpOwogCiAJLyoKIAkgKiBOb3RpZnkg YWxsIHdhaXRlcnMgZm9yIEdQVSBjb21wbGV0aW9uIGV2ZW50cyB0aGF0IHJlc2V0IHN0YXRlIGhh cwpAQCAtMjQ2MCw3ICsyNDU4LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9lcnJvcl93YWtlX3VwKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKi8KIAogCS8qIFdha2UgdXAgX193 YWl0X3NlcW5vLCBwb3RlbnRpYWxseSBob2xkaW5nIGRldi0+c3RydWN0X211dGV4LiAqLwotCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2KQogCQl3YWtlX3VwX2FsbCgmZW5naW5lLT5pcnFfcXVldWUpOwogCiAJLyog V2FrZSB1cCBpbnRlbF9jcnRjX3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMsIGhvbGRpbmcgY3J0Yy0+ bXV0ZXguICovCkBAIC0yODI5LDEwICsyODI3LDkgQEAgc3RhdGljIHZvaWQgZ2VuOF9kaXNhYmxl X3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmRldi0+ZGV2X3ByaXZh dGU7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2lnbmFsbGVyOwotCWludCBpOwogCiAJaWYg KElOVEVMX0lORk8oZGV2X3ByaXYtPmRldiktPmdlbiA+PSA4KSB7Ci0JCWZvcl9lYWNoX2VuZ2lu ZShzaWduYWxsZXIsIGRldl9wcml2LCBpKSB7CisJCWZvcl9lYWNoX2VuZ2luZShzaWduYWxsZXIs IGRldl9wcml2KSB7CiAJCQlpZiAoZW5naW5lID09IHNpZ25hbGxlcikKIAkJCQljb250aW51ZTsK IApAQCAtMjg0Miw3ICsyODM5LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9kaXNhYmxlX3ZibGFuayhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKIAl9IGVsc2UgewogCQl1 MzIgc3luY19iaXRzID0gaXBlaHIgJiBNSV9TRU1BUEhPUkVfU1lOQ19NQVNLOwogCi0JCWZvcl9l YWNoX2VuZ2luZShzaWduYWxsZXIsIGRldl9wcml2LCBpKSB7CisJCWZvcl9lYWNoX2VuZ2luZShz aWduYWxsZXIsIGRldl9wcml2KSB7CiAJCQlpZihlbmdpbmUgPT0gc2lnbmFsbGVyKQogCQkJCWNv bnRpbnVlOwogCkBAIC0yOTU4LDkgKzI5NTUsOCBAQCBzdGF0aWMgaW50IHNlbWFwaG9yZV9wYXNz ZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogc3RhdGljIHZvaWQgc2VtYXBob3Jl X2NsZWFyX2RlYWRsb2NrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWludCBpOwogCi0JZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3By aXYpCiAJCWVuZ2luZS0+aGFuZ2NoZWNrLmRlYWRsb2NrID0gMDsKIH0KIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4IGUxYWZmNjIuLmI0OTc2ZjkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTgyLDEyICs4MiwxMiBAQCBjb25z dCBjaGFyICppbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF9ndWNfZndfc3RhdHVz IHN0YXR1cykKIHN0YXRpYyB2b2lkIGRpcmVjdF9pbnRlcnJ1cHRzX3RvX2hvc3Qoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKLQlpbnQgaSwgaXJxczsKKwlpbnQgaXJxczsKIAogCS8qIHRlbGwgYWxsIGNvbW1hbmQg c3RyZWFtZXJzIE5PVCB0byBmb3J3YXJkIGludGVycnVwdHMgYW5kIHZibGFuayB0byBHdUMgKi8K IAlpcnFzID0gX01BU0tFRF9GSUVMRChHRlhfRk9SV0FSRF9WQkxBTktfTUFTSywgR0ZYX0ZPUldB UkRfVkJMQU5LX05FVkVSKTsKIAlpcnFzIHw9IF9NQVNLRURfQklUX0RJU0FCTEUoR0ZYX0lOVEVS UlVQVF9TVEVFUklORyk7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJ Zm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJCUk5MTVfV1JJVEUoUklOR19NT0RF X0dFTjcoZW5naW5lKSwgaXJxcyk7CiAKIAkvKiByb3V0ZSBhbGwgR1QgaW50ZXJydXB0cyB0byB0 aGUgaG9zdCAqLwpAQCAtOTksMTIgKzk5LDEyIEBAIHN0YXRpYyB2b2lkIGRpcmVjdF9pbnRlcnJ1 cHRzX3RvX2hvc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZv aWQgZGlyZWN0X2ludGVycnVwdHNfdG9fZ3VjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JaW50IGksIGlycXM7 CisJaW50IGlycXM7CiAKIAkvKiB0ZWxsIGFsbCBjb21tYW5kIHN0cmVhbWVycyB0byBmb3J3YXJk IGludGVycnVwdHMgYW5kIHZibGFuayB0byBHdUMgKi8KIAlpcnFzID0gX01BU0tFRF9GSUVMRChH RlhfRk9SV0FSRF9WQkxBTktfTUFTSywgR0ZYX0ZPUldBUkRfVkJMQU5LX0FMV0FZUyk7CiAJaXJx cyB8PSBfTUFTS0VEX0JJVF9FTkFCTEUoR0ZYX0lOVEVSUlVQVF9TVEVFUklORyk7Ci0JZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg ZGV2X3ByaXYpCiAJCUk5MTVfV1JJVEUoUklOR19NT0RFX0dFTjcoZW5naW5lKSwgaXJxcyk7CiAK IAkvKiByb3V0ZSBVU0VSX0lOVEVSUlVQVCB0byBIb3N0LCBhbGwgb3RoZXJzIGFyZSBzZW50IHRv IEd1Qy4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNDBlZjRlYS4uNWQ0Y2EzYiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTI2NzMsOSArMjY3Myw4IEBAIHZvaWQgaW50 ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWludCBpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZGV2X3ByaXYsIGkpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewog CQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9CiAJCQkJY3R4LT5lbmdpbmVb ZW5naW5lLT5pZF0uc3RhdGU7CiAJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDUyMWNmNDUuLjZhMDQ3NjEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYwpAQCAtNDgxNyw3ICs0ODE3LDYgQEAgc3RhdGljIHZvaWQgZ2VuOV9lbmFi bGVfcmM2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmU7CiAJdWludDMyX3QgcmM2X21hc2sgPSAwOwotCWludCB1bnVzZWQ7CiAKIAkvKiAxYTog U29mdHdhcmUgUkMgc3RhdGUgLSBSQzAgKi8KIAlJOTE1X1dSSVRFKEdFTjZfUkNfU1RBVEUsIDAp OwpAQCAtNDgzOCw3ICs0ODM3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOV9lbmFibGVfcmM2KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJCUk5MTVfV1JJVEUoR0VONl9SQzZfV0FLRV9SQVRFX0xJTUlU LCA1NCA8PCAxNik7CiAJSTkxNV9XUklURShHRU42X1JDX0VWQUxVQVRJT05fSU5URVJWQUwsIDEy NTAwMCk7IC8qIDEyNTAwICogMTI4MG5zICovCiAJSTkxNV9XUklURShHRU42X1JDX0lETEVfSFlT VEVSU0lTLCAyNSk7IC8qIDI1ICogMTI4MG5zICovCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg ZGV2X3ByaXYsIHVudXNlZCkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKIAkJ STkxNV9XUklURShSSU5HX01BWF9JRExFKGVuZ2luZS0+bW1pb19iYXNlKSwgMTApOwogCiAJaWYg KEhBU19HVUNfVUNPREUoZGV2KSkKQEAgLTQ4ODcsNyArNDg4Niw2IEBAIHN0YXRpYyB2b2lkIGdl bjhfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOwogCXVpbnQzMl90IHJjNl9tYXNrID0gMDsKLQlpbnQgdW51c2VkOwogCiAJ LyogMWE6IFNvZnR3YXJlIFJDIHN0YXRlIC0gUkMwICovCiAJSTkxNV9XUklURShHRU42X1JDX1NU QVRFLCAwKTsKQEAgLTQ5MDYsNyArNDkwNCw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfZW5hYmxlX3Jw cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCUk5MTVfV1JJVEUoR0VONl9SQzZfV0FLRV9SQVRF X0xJTUlULCA0MCA8PCAxNik7CiAJSTkxNV9XUklURShHRU42X1JDX0VWQUxVQVRJT05fSU5URVJW QUwsIDEyNTAwMCk7IC8qIDEyNTAwICogMTI4MG5zICovCiAJSTkxNV9XUklURShHRU42X1JDX0lE TEVfSFlTVEVSU0lTLCAyNSk7IC8qIDI1ICogMTI4MG5zICovCi0JZm9yX2VhY2hfZW5naW5lKGVu Z2luZSwgZGV2X3ByaXYsIHVudXNlZCkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJp dikKIAkJSTkxNV9XUklURShSSU5HX01BWF9JRExFKGVuZ2luZS0+bW1pb19iYXNlKSwgMTApOwog CUk5MTVfV1JJVEUoR0VONl9SQ19TTEVFUCwgMCk7CiAJaWYgKElTX0JST0FEV0VMTChkZXYpKQpA QCAtNDk3MSw3ICs0OTY5LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9lbmFibGVfcnBzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJdTMyIHJjNnZpZHMsIHBjdV9tYm94ID0gMCwgcmM2X21hc2sgPSAw OwogCXUzMiBndGZpZm9kYmc7CiAJaW50IHJjNl9tb2RlOwotCWludCBpLCByZXQ7CisJaW50IHJl dDsKIAogCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPnJwcy5od19sb2NrKSk7 CiAKQEAgLTUwMDMsNyArNTAwMSw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfZW5hYmxlX3JwcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCUk5MTVfV1JJVEUoR0VONl9SQ19FVkFMVUFUSU9OX0lOVEVS VkFMLCAxMjUwMDApOwogCUk5MTVfV1JJVEUoR0VONl9SQ19JRExFX0hZU1RFUlNJUywgMjUpOwog Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgZGV2X3ByaXYpCiAJCUk5MTVfV1JJVEUoUklOR19NQVhfSURMRShlbmdpbmUtPm1t aW9fYmFzZSksIDEwKTsKIAogCUk5MTVfV1JJVEUoR0VONl9SQ19TTEVFUCwgMCk7CkBAIC01NDk3 LDcgKzU0OTUsNiBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAl1MzIgZ3Rm aWZvZGJnLCB2YWwsIHJjNl9tb2RlID0gMCwgcGNicjsKLQlpbnQgaTsKIAogCVdBUk5fT04oIW11 dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPnJwcy5od19sb2NrKSk7CiAKQEAgLTU1MjIsNyArNTUx OSw3IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCUk5MTVfV1JJVEUoR0VONl9SQ19FVkFMVUFUSU9OX0lOVEVSVkFMLCAxMjUwMDAp OyAvKiAxMjUwMCAqIDEyODBucyAqLwogCUk5MTVfV1JJVEUoR0VONl9SQ19JRExFX0hZU1RFUlNJ UywgMjUpOyAvKiAyNSAqIDEyODBucyAqLwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJCUk5MTVfV1JJ VEUoUklOR19NQVhfSURMRShlbmdpbmUtPm1taW9fYmFzZSksIDEwKTsKIAlJOTE1X1dSSVRFKEdF TjZfUkNfU0xFRVAsIDApOwogCkBAIC01NTk1LDcgKzU1OTIsNiBAQCBzdGF0aWMgdm9pZCB2YWxs ZXl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKIAl1MzIgZ3RmaWZvZGJnLCB2YWwsIHJjNl9tb2RlID0gMDsKLQlp bnQgaTsKIAogCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPnJwcy5od19sb2Nr KSk7CiAKQEAgLTU2MzMsNyArNTYyOSw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfZW5hYmxl X3JwcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCUk5MTVfV1JJVEUoR0VONl9SQ19FVkFMVUFU SU9OX0lOVEVSVkFMLCAxMjUwMDApOwogCUk5MTVfV1JJVEUoR0VONl9SQ19JRExFX0hZU1RFUlNJ UywgMjUpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJCUk5MTVfV1JJVEUoUklOR19NQVhfSURMRShl bmdpbmUtPm1taW9fYmFzZSksIDEwKTsKIAogCUk5MTVfV1JJVEUoR0VONl9SQzZfVEhSRVNIT0xE LCAweDU1Nyk7CkBAIC02MDEyLDE0ICs2MDA4LDEzIEBAIGJvb2wgaTkxNV9ncHVfYnVzeSh2b2lk KQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdjsKIAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmU7CiAJYm9vbCByZXQgPSBmYWxzZTsKLQlpbnQgaTsKIAogCXNwaW5fbG9j a19pcnEoJm1jaGRldl9sb2NrKTsKIAlpZiAoIWk5MTVfbWNoX2RldikKIAkJZ290byBvdXRfdW5s b2NrOwogCWRldl9wcml2ID0gaTkxNV9tY2hfZGV2OwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZGV2X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJCXJl dCB8PSAhbGlzdF9lbXB0eSgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpOwogCiBvdXRfdW5sb2NrOgot LSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=