From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH 2/2 v2] drm/i915: replace for_each_engine() Date: Thu, 24 Mar 2016 11:20:38 +0000 Message-ID: <1458818438-23639-1-git-send-email-david.s.gordon@intel.com> References: <20160323204351.GC20591@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id AB4216E973 for ; Thu, 24 Mar 2016 11:20:50 +0000 (UTC) In-Reply-To: <20160323204351.GC20591@nuc-i3427.alporthouse.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 List-Id: intel-gfx@lists.freedesktop.org SGF2aW5nIHByb3ZpZGVkIGZvcl9lYWNoX2VuZ2luZV9pZCgpIGZvciBjYXNlcyB3aGVyZSB0aGUg dGhpcmQgKGlkKQphcmd1bWVudCBpcyB1c2VmdWwsIHdlIGNhbiBub3cgcmVwbGFjZSBhbGwgdGhl IHJlbWFpbmluZyBpbnN0YW5jZXMgd2l0aAphIHNpbXBsZXIgdmVyc2lvbiB0aGF0IHRha2VzIG9u bHkgdHdvIHBhcmFtZXRlcnMuIEluIG1hbnkgY2FzZXMsIHRoaXMKYWxzbyBhbGxvd3MgdGhlIGVs aW1pbmF0aW9uIG9mIHRoZSBsb2NhbCB2YXJpYWJsZSB1c2VkIGluIHRoZSBpdGVyYXRvcgoodXN1 YWxseSAnaScpLgoKdjI6CiAgICBzL2Rldl9wcml2LyhkZXZfcHJpdl9fKS8gaW4gYm9keSBvZiBm b3JfZWFjaF9lbmdpbmVfbWFza2VkKCkgW0NocmlzIFdpbHNvbl0KClNpZ25lZC1vZmYtYnk6IERh dmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyAgICAgICAgfCA1MCArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8IDE3ICsrKysr Ky0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDUwICsr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZGVidWcuYyAgICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j ICAgICAgICB8ICA5ICsrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz c2lvbi5jIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAg ICAgIHwgMTQgKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVy LmMgICAgfCAgOCArKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAg ICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgICB8 IDE5ICsrKysrLS0tLS0tLQogMTEgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgMTAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNzdkY2U1 Mi4uZDAyZjhjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTM5OCwxMSAr Mzk4LDExIEBAIHN0YXRpYyB2b2lkIHByaW50X2JhdGNoX3Bvb2xfc3RhdHMoc3RydWN0IHNlcV9m aWxlICptLAogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGZpbGVf c3RhdHMgc3RhdHM7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWludCBpLCBq OworCWludCBqOwogCiAJbWVtc2V0KCZzdGF0cywgMCwgc2l6ZW9mKHN0YXRzKSk7CiAKLQlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2KSB7CiAJCWZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKGVuZ2luZS0+YmF0 Y2hfcG9vbC5jYWNoZV9saXN0KTsgaisrKSB7CiAJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwK IAkJCQkJICAgICZlbmdpbmUtPmJhdGNoX3Bvb2wuY2FjaGVfbGlzdFtqXSwKQEAgLTYzOCwxMyAr NjM4LDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbmZvKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwog CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgdG90YWwgPSAwOwotCWludCBy ZXQsIGksIGo7CisJaW50IHJldCwgajsKIAogCXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJs ZSgmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2KSB7CiAJCWZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKGVuZ2luZS0+YmF0 Y2hfcG9vbC5jYWNoZV9saXN0KTsgaisrKSB7CiAJCQlpbnQgY291bnQ7CiAKQEAgLTY4MiwxNCAr NjgyLDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcmVxdWVzdF9pbmZvKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqZGF0YSkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKLQlpbnQgcmV0LCBhbnksIGk7CisJaW50IHJl dCwgYW55OwogCiAJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXYtPnN0cnVjdF9t dXRleCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAogCWFueSA9IDA7Ci0JZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdikgewogCQlpbnQgY291bnQ7CiAKIAkJY291bnQgPSAwOwpAQCAtNzM5LDE0ICs3Mzks MTQgQEAgc3RhdGljIGludCBpOTE1X2dlbV9zZXFub19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwg dm9pZCAqZGF0YSkKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwog CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlpbnQgcmV0LCBpOworCWludCByZXQ7 CiAKIAlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldi0+c3RydWN0X211dGV4KTsK IAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2 KTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2KQogCQlpOTE1X3Jpbmdfc2Vxbm9faW5mbyhtLCBlbmdpbmUp OwogCiAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwpAQCAtOTMzLDcgKzkzMyw3IEBA IHN0YXRpYyBpbnQgaTkxNV9pbnRlcnJ1cHRfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KmRhdGEpCiAJCXNlcV9wcmludGYobSwgIkdyYXBoaWNzIEludGVycnVwdCBtYXNrOgkJJTA4eFxu IiwKIAkJCSAgIEk5MTVfUkVBRChHVElNUikpOwogCX0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJ CWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KSB7CiAJCQlzZXFfcHJpbnRmKG0sCiAJCQkJ ICAgIkdyYXBoaWNzIEludGVycnVwdCBtYXNrICglcyk6CSUwOHhcbiIsCkBAIC0yMDQ0LDcgKzIw NDQsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHVtcF9scmMoc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICp1bnVzZWQpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGludGVs X2NvbnRleHQgKmN0eDsKLQlpbnQgcmV0LCBpOworCWludCByZXQ7CiAKIAlpZiAoIWk5MTUuZW5h YmxlX2V4ZWNsaXN0cykgewogCQlzZXFfcHJpbnRmKG0sICJMb2dpY2FsIFJpbmcgQ29udGV4dHMg YXJlIGRpc2FibGVkXG4iKTsKQEAgLTIwNTcsNyArMjA1Nyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9k dW1wX2xyYyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAogCWxpc3RfZm9yX2Vh Y2hfZW50cnkoY3R4LCAmZGV2X3ByaXYtPmNvbnRleHRfbGlzdCwgbGluaykKIAkJaWYgKGN0eCAh PSBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQpCi0JCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdiwgaSkKKwkJCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQogCQkJCWk5 MTVfZHVtcF9scmNfb2JqKG0sIGN0eCwgZW5naW5lKTsKIAogCW11dGV4X3VubG9jaygmZGV2LT5z dHJ1Y3RfbXV0ZXgpOwpAQCAtMjA3Nyw4ICsyMDc3LDcgQEAgc3RhdGljIGludCBpOTE1X2V4ZWNs aXN0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJdTMyIHN0YXR1czsKIAl1MzIg Y3R4X2lkOwogCXN0cnVjdCBsaXN0X2hlYWQgKmN1cnNvcjsKLQlpbnQgcmluZ19pZCwgaTsKLQlp bnQgcmV0OworCWludCBpLCByZXQ7CiAKIAlpZiAoIWk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewog CQlzZXFfcHV0cyhtLCAiTG9naWNhbCBSaW5nIENvbnRleHRzIGFyZSBkaXNhYmxlZFxuIik7CkBA IC0yMDkxLDcgKzIwOTAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZXhlY2xpc3RzKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsK IAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCByaW5nX2lkKSB7CisJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpoZWFkX3JlcSA9IE5VTEw7CiAJCWludCBjb3VudCA9IDA7CiAJCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7CkBAIC0yMjUwLDEyICsyMjQ5LDEyIEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5m byhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gZGV2 X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0OwotCWludCB1bnVzZWQsIGk7CisJaW50IGk7CiAKIAlp ZiAoIXBwZ3R0KQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJp diwgdW51c2VkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJc2Vx X3ByaW50ZihtLCAiJXNcbiIsIGVuZ2luZS0+bmFtZSk7CiAJCWZvciAoaSA9IDA7IGkgPCA0OyBp KyspIHsKIAkJCXU2NCBwZHAgPSBJOTE1X1JFQUQoR0VOOF9SSU5HX1BEUF9VRFcoZW5naW5lLCBp KSk7CkBAIC0yMjcwLDEyICsyMjY5LDExIEBAIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JaW50IGk7CiAKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPT0gNikKIAkJc2VxX3ByaW50ZihtLCAiR0ZYX01PREU6IDB4JTA4eFxuIiwgSTkxNV9SRUFE KEdGWF9NT0RFKSk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgewor CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCXNlcV9wcmludGYobSwgIiVz XG4iLCBlbmdpbmUtPm5hbWUpOwogCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gNykKIAkJ CXNlcV9wcmludGYobSwgIkdGWF9NT0RFOiAweCUwOHhcbiIsCkBAIC0yMzQyLDkgKzIzNDAsOCBA QCBzdGF0aWMgaW50IGNvdW50X2lycV93YWl0ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgY291bnQgPSAw OwotCWludCBpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaSkKKwlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBpOTE1KQogCQljb3VudCArPSBlbmdpbmUtPmlycV9yZWZjb3VudDsK IAogCXJldHVybiBjb3VudDsKQEAgLTI0NTUsNyArMjQ1Miw2IEBAIHN0YXRpYyB2b2lkIGk5MTVf Z3VjX2NsaWVudF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmU7CiAJdWludDY0X3QgdG90ID0gMDsKLQl1aW50MzJfdCBpOwogCiAJc2Vx X3ByaW50ZihtLCAiXHRQcmlvcml0eSAlZCwgR3VDIGN0eCBpbmRleDogJXUsIFBEIG9mZnNldCAw eCV4XG4iLAogCQljbGllbnQtPnByaW9yaXR5LCBjbGllbnQtPmN0eF9pbmRleCwgY2xpZW50LT5w cm9jX2Rlc2Nfb2Zmc2V0KTsKQEAgLTI0NjgsNyArMjQ2NCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVf Z3VjX2NsaWVudF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAlzZXFfcHJpbnRmKG0sICJcdEZh aWxlZCBkb29yYmVsbDogJXVcbiIsIGNsaWVudC0+Yl9mYWlsKTsKIAlzZXFfcHJpbnRmKG0sICJc dExhc3Qgc3VibWlzc2lvbiByZXN1bHQ6ICVkXG4iLCBjbGllbnQtPnJldGNvZGUpOwogCi0JZm9y X2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBkZXZfcHJpdikgewogCQlzZXFfcHJpbnRmKG0sICJcdFN1Ym1pc3Npb25zOiAlbGx1ICVz XG4iLAogCQkJCWNsaWVudC0+c3VibWlzc2lvbnNbZW5naW5lLT5ndWNfaWRdLAogCQkJCWVuZ2lu ZS0+bmFtZSk7CkBAIC0yNDg1LDcgKzI0ODEsNiBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2luZm8o c3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXN0cnVjdCBpbnRlbF9ndWMgZ3VjOwog CXN0cnVjdCBpOTE1X2d1Y19jbGllbnQgY2xpZW50ID0ge307CiAJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOwotCWVudW0gaW50ZWxfZW5naW5lX2lkIGk7CiAJdTY0IHRvdGFsID0gMDsK IAogCWlmICghSEFTX0dVQ19TQ0hFRChkZXZfcHJpdi0+ZGV2KSkKQEAgLTI1MDgsNyArMjUwMyw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRh dGEpCiAJc2VxX3ByaW50ZihtLCAiR3VDIGxhc3QgYWN0aW9uIGVycm9yIGNvZGU6ICVkXG4iLCBn dWMuYWN0aW9uX2Vycik7CiAKIAlzZXFfcHJpbnRmKG0sICJcbkd1QyBzdWJtaXNzaW9uczpcbiIp OwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJc2VxX3ByaW50ZihtLCAiXHQlLTI0czogJTEwbGx1 LCBsYXN0IHNlcW5vIDB4JTA4eFxuIiwKIAkJCWVuZ2luZS0+bmFtZSwgZ3VjLnN1Ym1pc3Npb25z W2VuZ2luZS0+Z3VjX2lkXSwKIAkJCWd1Yy5sYXN0X3NlcW5vW2VuZ2luZS0+Z3VjX2lkXSk7CkBA IC0zMTgxLDcgKzMxNzYsNyBAQCBzdGF0aWMgaW50IGk5MTVfc2VtYXBob3JlX3N0YXR1cyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAkJa3VubWFwX2F0b21pYyhzZXFubyk7CiAJ fSBlbHNlIHsKIAkJc2VxX3B1dHMobSwgIiAgTGFzdCBzaWduYWw6Iik7Ci0JCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYpCiAJCQlmb3IgKGogPSAwOyBqIDwgbnVtX3JpbmdzOyBqKyspCiAJCQkJc2VxX3ByaW50 ZihtLCAiMHglMDh4XG4iLAogCQkJCQkgICBJOTE1X1JFQUQoZW5naW5lLT5zZW1hcGhvcmUubWJv eC5zaWduYWxbal0pKTsKQEAgLTMxODksMTEgKzMxODQsMTAgQEAgc3RhdGljIGludCBpOTE1X3Nl bWFwaG9yZV9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJfQogCiAJ c2VxX3B1dHMobSwgIlxuU3luYyBzZXFubzpcbiIpOwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGRldl9wcml2LCBpZCkgewotCQlmb3IgKGogPSAwOyBqIDwgbnVtX3JpbmdzOyBqKyspIHsKKwlm b3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgeworCQlmb3IgKGogPSAwOyBqIDwgbnVt X3JpbmdzOyBqKyspCiAJCQlzZXFfcHJpbnRmKG0sICIgIDB4JTA4eCAiLAogCQkJCSAgIGVuZ2lu ZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm9bal0pOwotCQl9CiAJCXNlcV9wdXRjKG0sICdcbicpOwog CX0KIAlzZXFfcHV0YyhtLCAnXG4nKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDYyZWU4 NmMuLmU0NjI2ODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjAwOCwxMCArMjAwOCwx MiBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpndWNfdG9faTkxNShz dHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihndWMsIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlLCBndWMpOwogfQogCi0vKiBJdGVyYXRlIG92ZXIgaW5pdGlhbGlzZWQg cmluZ3MgKi8KLSNkZWZpbmUgZm9yX2VhY2hfZW5naW5lKHJpbmdfXywgZGV2X3ByaXZfXywgaV9f KSBcCi0JZm9yICgoaV9fKSA9IDA7IChpX18pIDwgSTkxNV9OVU1fRU5HSU5FUzsgKGlfXykrKykg XAotCQlmb3JfZWFjaF9pZiAoKCgocmluZ19fKSA9ICYoZGV2X3ByaXZfXyktPmVuZ2luZVsoaV9f KV0pLCBpbnRlbF9lbmdpbmVfaW5pdGlhbGl6ZWQoKHJpbmdfXykpKSkKKy8qIFNpbXBsZSBpdGVy YXRvciBvdmVyIGFsbCBpbml0aWFsaXNlZCBlbmdpbmVzICovCisjZGVmaW5lIGZvcl9lYWNoX2Vu Z2luZShlbmdpbmVfXywgZGV2X3ByaXZfXykgXAorCWZvciAoKGVuZ2luZV9fKSA9ICYoZGV2X3By aXZfXyktPmVuZ2luZVswXTsgXAorCSAgICAgKGVuZ2luZV9fKSA8ICYoZGV2X3ByaXZfXyktPmVu Z2luZVtJOTE1X05VTV9FTkdJTkVTXTsgXAorCSAgICAgKGVuZ2luZV9fKSsrKSBcCisJCWZvcl9l YWNoX2lmIChpbnRlbF9lbmdpbmVfaW5pdGlhbGl6ZWQoZW5naW5lX18pKQogCiAvKiBJdGVyYXRv ciB3aXRoIGVuZ2luZV9pZCAqLwogI2RlZmluZSBmb3JfZWFjaF9lbmdpbmVfaWQoZW5naW5lX18s IGRldl9wcml2X18sIGlkX18pIFwKQEAgLTIwMjMsOCArMjAyNSwxMSBAQCBzdGF0aWMgaW5saW5l IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpndWNfdG9faTkxNShzdHJ1Y3QgaW50ZWxfZ3VjICpn dWMpCiAKIC8qIEl0ZXJhdG9yIG92ZXIgc3Vic2V0IG9mIGVuZ2luZXMgc2VsZWN0ZWQgYnkgbWFz ayAqLwogI2RlZmluZSBmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZV9fLCBkZXZfcHJpdl9f LCBtYXNrX18pIFwKLQlmb3IgKChlbmdpbmVfXykgPSAmZGV2X3ByaXYtPmVuZ2luZVswXTsgKGVu Z2luZV9fKSA8ICZkZXZfcHJpdi0+ZW5naW5lW0k5MTVfTlVNX0VOR0lORVNdOyAoZW5naW5lX18p KyspIFwKLQkJZm9yX2VhY2hfaWYgKGludGVsX2VuZ2luZV9mbGFnKChlbmdpbmVfXykpICYgKG1h c2tfXykgJiYgaW50ZWxfZW5naW5lX2luaXRpYWxpemVkKChlbmdpbmVfXykpKQorCWZvciAoKGVu Z2luZV9fKSA9ICYoZGV2X3ByaXZfXyktPmVuZ2luZVswXTsgXAorCSAgICAgKGVuZ2luZV9fKSA8 ICYoZGV2X3ByaXZfXyktPmVuZ2luZVtJOTE1X05VTV9FTkdJTkVTXTsgXAorCSAgICAgKGVuZ2lu ZV9fKSsrKSBcCisJCWZvcl9lYWNoX2lmICgoKG1hc2tfXykgJiBpbnRlbF9lbmdpbmVfZmxhZyhl bmdpbmVfXykpICYmIFwKKwkJCSAgICAgaW50ZWxfZW5naW5lX2luaXRpYWxpemVkKGVuZ2luZV9f KSkKIAogZW51bSBoZG1pX2ZvcmNlX2F1ZGlvIHsKIAlIRE1JX0FVRElPX09GRl9EVkkgPSAtMiwJ Lyogbm8gYXV4IGRhdGEgZm9yIEhETUktRFZJIGNvbnZlcnRlciAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKaW5kZXggODU4OGM4My4uYzdhOTk3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBA IC0yNDY2LDEwICsyNDY2LDEwIEBAIHZvaWQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0 IGk5MTVfdm1hICp2bWEsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JaW50 IHJldCwgaSwgajsKKwlpbnQgcmV0LCBqOwogCiAJLyogQ2FyZWZ1bGx5IHJldGlyZSBhbGwgcmVx dWVzdHMgd2l0aG91dCB3cml0aW5nIHRvIHRoZSByaW5ncyAqLwotCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYp IHsKIAkJcmV0ID0gaW50ZWxfZW5naW5lX2lkbGUoZW5naW5lKTsKIAkJaWYgKHJldCkKIAkJCXJl dHVybiByZXQ7CkBAIC0yNDc3LDcgKzI0NzcsNyBAQCB2b2lkIGk5MTVfdm1hX21vdmVfdG9fYWN0 aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhkZXYp OwogCiAJLyogRmluYWxseSByZXNldCBodyBzdGF0ZSAqLwotCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsK IAkJaW50ZWxfcmluZ19pbml0X3NlcW5vKGVuZ2luZSwgc2Vxbm8pOwogCiAJCWZvciAoaiA9IDA7 IGogPCBBUlJBWV9TSVpFKGVuZ2luZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm8pOyBqKyspCkBAIC0y ODg0LDE3ICsyODg0LDE2IEBAIHZvaWQgaTkxNV9nZW1fcmVzZXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlpbnQgaTsKIAogCS8q CiAJICogQmVmb3JlIHdlIGZyZWUgdGhlIG9iamVjdHMgZnJvbSB0aGUgcmVxdWVzdHMsIHdlIG5l ZWQgdG8gaW5zcGVjdAogCSAqIHRoZW0gZm9yIGZpbmRpbmcgdGhlIGd1aWx0eSBwYXJ0eS4gQXMg dGhlIHJlcXVlc3RzIG9ubHkgYm9ycm93CiAJICogdGhlaXIgcmVmZXJlbmNlIHRvIHRoZSBvYmpl Y3RzLCB0aGUgaW5zcGVjdGlvbiBtdXN0IGJlIGRvbmUgZmlyc3QuCiAJICovCi0JZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYpCiAJCWk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9zdGF0dXMoZGV2X3ByaXYsIGVuZ2luZSk7 CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBkZXZfcHJpdikKIAkJaTkxNV9nZW1fcmVzZXRfZW5naW5lX2NsZWFudXAoZGV2 X3ByaXYsIGVuZ2luZSk7CiAKIAlpOTE1X2dlbV9jb250ZXh0X3Jlc2V0KGRldik7CkBAIC0yOTYy LDkgKzI5NjEsOCBAQCB2b2lkIGk5MTVfZ2VtX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJYm9vbCBpZGxlID0gdHJ1ZTsKLQlp bnQgaTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3Rz X3JpbmcoZW5naW5lKTsKIAkJaWRsZSAmPSBsaXN0X2VtcHR5KCZlbmdpbmUtPnJlcXVlc3RfbGlz dCk7CiAJCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKQEAgLTMwMDksMjQgKzMwMDcsMjAg QEAgdm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2Yo KmRldl9wcml2KSwgbW0uaWRsZV93b3JrLndvcmspOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBkZXZfcHJpdi0+ZGV2OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7Ci0JaW50IGk7 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCi0JZm9yX2VhY2hfZW5naW5lKHJp bmcsIGRldl9wcml2LCBpKQotCQlpZiAoIWxpc3RfZW1wdHkoJnJpbmctPnJlcXVlc3RfbGlzdCkp CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCisJCWlmICghbGlzdF9lbXB0eSgm ZW5naW5lLT5yZXF1ZXN0X2xpc3QpKQogCQkJcmV0dXJuOwogCiAJLyogd2UgcHJvYmFibHkgc2hv dWxkIHN5bmMgd2l0aCBoYW5nY2hlY2sgaGVyZSwgdXNpbmcgY2FuY2VsX3dvcmtfc3luYy4KLQkg KiBBbHNvIGxvY2tpbmcgc2VlbXMgdG8gYmUgZnViYXIgaGVyZSwgcmluZy0+cmVxdWVzdF9saXN0 IGlzIHByb3RlY3RlZAorCSAqIEFsc28gbG9ja2luZyBzZWVtcyB0byBiZSBmdWJhciBoZXJlLCBl bmdpbmUtPnJlcXVlc3RfbGlzdCBpcyBwcm90ZWN0ZWQKIAkgKiBieSBkZXYtPnN0cnVjdF9tdXRl eC4gKi8KIAogCWludGVsX21hcmtfaWRsZShkZXYpOwogCiAJaWYgKG11dGV4X3RyeWxvY2soJmRl di0+c3RydWN0X211dGV4KSkgewotCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0J CWludCBpOwotCi0JCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKQorCQlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKIAkJCWk5MTVfZ2VtX2JhdGNoX3Bvb2xfZmlu aSgmZW5naW5lLT5iYXRjaF9wb29sKTsKIAogCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsKQEAgLTMzOTAsMTAgKzMzODQsMTAgQEAgaW50IGk5MTVfZ3B1X2lkbGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlpbnQg cmV0LCBpOworCWludCByZXQ7CiAKIAkvKiBGbHVzaCBldmVyeXRoaW5nIG9udG8gdGhlIGluYWN0 aXZlIGxpc3QuICovCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwlm b3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewogCQlpZiAoIWk5MTUuZW5hYmxlX2V4 ZWNsaXN0cykgewogCQkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKQEAgLTQ2 NTUsOSArNDY0OSw4IEBAIHZvaWQgaTkxNV9nZW1fdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVfdm1h ICp2bWEpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JaW50IGk7CiAKLQlm b3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBkZXZfcHJpdikKIAkJZGV2X3ByaXYtPmd0LnN0b3BfZW5naW5lKGVuZ2luZSk7CiB9CiAK QEAgLTQ4MjgsNyArNDgyMSw3IEBAIGludCBpOTE1X2dlbV9pbml0X2VuZ2luZXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlpbnQg cmV0LCBpLCBqOworCWludCByZXQsIGo7CiAKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA2 ICYmICFpbnRlbF9lbmFibGVfZ3R0KCkpCiAJCXJldHVybiAtRUlPOwpAQCAtNDg3NCw3ICs0ODY3 LDcgQEAgaW50IGk5MTVfZ2VtX2luaXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CX0KIAogCS8qIE5lZWQgdG8gZG8gYmFzaWMgaW5pdGlhbGlzYXRpb24gb2YgYWxsIHJpbmdzIGZp cnN0OiAqLwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJcmV0ID0gZW5naW5lLT5pbml0X2h3KGVu Z2luZSk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIG91dDsKQEAgLTQ4OTksNyArNDg5Miw3IEBAIGlu dCBpOTE1X2dlbV9pbml0X2VuZ2luZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJZ290byBv dXQ7CiAKIAkvKiBOb3cgaXQgaXMgc2FmZSB0byBnbyBiYWNrIHJvdW5kIGFuZCBkbyBldmVyeXRo aW5nIGVsc2U6ICovCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwlm b3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcTsKIAogCQlyZXEgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwg TlVMTCk7CkBAIC00OTE2LDcgKzQ5MDksOCBAQCBpbnQgaTkxNV9nZW1faW5pdF9lbmdpbmVzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkJcmV0ID0gaTkxNV9wcGd0dF9pbml0X3JpbmcocmVx KTsKIAkJaWYgKHJldCAmJiByZXQgIT0gLUVJTykgewotCQkJRFJNX0VSUk9SKCJQUEdUVCBlbmFi bGUgcmluZyAjJWQgZmFpbGVkICVkXG4iLCBpLCByZXQpOworCQkJRFJNX0VSUk9SKCJQUEdUVCBl bmFibGUgJXMgZmFpbGVkICVkXG4iLAorCQkJCSAgZW5naW5lLT5uYW1lLCByZXQpOwogCQkJaTkx NV9nZW1fcmVxdWVzdF9jYW5jZWwocmVxKTsKIAkJCWk5MTVfZ2VtX2NsZWFudXBfZW5naW5lcyhk ZXYpOwogCQkJZ290byBvdXQ7CkBAIC00OTI0LDcgKzQ5MTgsOCBAQCBpbnQgaTkxNV9nZW1faW5p dF9lbmdpbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkJcmV0ID0gaTkxNV9nZW1fY29u dGV4dF9lbmFibGUocmVxKTsKIAkJaWYgKHJldCAmJiByZXQgIT0gLUVJTykgewotCQkJRFJNX0VS Uk9SKCJDb250ZXh0IGVuYWJsZSByaW5nICMlZCBmYWlsZWQgJWRcbiIsIGksIHJldCk7CisJCQlE Uk1fRVJST1IoIkNvbnRleHQgZW5hYmxlICVzIGZhaWxlZCAlZFxuIiwKKwkJCQkgIGVuZ2luZS0+ bmFtZSwgcmV0KTsKIAkJCWk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHJlcSk7CiAJCQlpOTE1X2dl bV9jbGVhbnVwX2VuZ2luZXMoZGV2KTsKIAkJCWdvdG8gb3V0OwpAQCAtNTAwNSw5ICs1MDAwLDgg QEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlpbnQgaTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQogCQlk ZXZfcHJpdi0+Z3QuY2xlYW51cF9lbmdpbmUoZW5naW5lKTsKIAogCWlmIChpOTE1LmVuYWJsZV9l eGVjbGlzdHMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggMzk0 ZTUyNS4uZmU1ODBjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpA QCAtNTE3LDcgKzUxNyw3IEBAIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKIAkJaTkxNV9zZW1hcGhv cmVfaXNfZW5hYmxlZChlbmdpbmUtPmRldikgPwogCQlod2VpZ2h0MzIoSU5URUxfSU5GTyhlbmdp bmUtPmRldiktPnJpbmdfbWFzaykgLSAxIDoKIAkJMDsKLQlpbnQgbGVuLCBpLCByZXQ7CisJaW50 IGxlbiwgcmV0OwogCiAJLyogdy9hOiBJZiBGbHVzaCBUTEIgSW52YWxpZGF0aW9uIE1vZGUgaXMg ZW5hYmxlZCwgZHJpdmVyIG11c3QgZG8gYSBUTEIKIAkgKiBpbnZhbGlkYXRpb24gcHJpb3IgdG8g TUlfU0VUX0NPTlRFWFQuIE9uIEdFTjYgd2UgZG9uJ3Qgc2V0IHRoZSB2YWx1ZQpAQCAtNTUzLDcg KzU1Myw3IEBAIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKIAogCQkJaW50ZWxfcmluZ19lbWl0KGVu Z2luZSwKIAkJCQkJTUlfTE9BRF9SRUdJU1RFUl9JTU0obnVtX3JpbmdzKSk7Ci0JCQlmb3JfZWFj aF9lbmdpbmUoc2lnbmFsbGVyLCB0b19pOTE1KGVuZ2luZS0+ZGV2KSwgaSkgeworCQkJZm9yX2Vh Y2hfZW5naW5lKHNpZ25hbGxlciwgdG9faTkxNShlbmdpbmUtPmRldikpIHsKIAkJCQlpZiAoc2ln bmFsbGVyID09IGVuZ2luZSkKIAkJCQkJY29udGludWU7CiAKQEAgLTU4Miw3ICs1ODIsNyBAQCBz dHJ1Y3QgaW50ZWxfY29udGV4dCAqCiAKIAkJCWludGVsX3JpbmdfZW1pdChlbmdpbmUsCiAJCQkJ CU1JX0xPQURfUkVHSVNURVJfSU1NKG51bV9yaW5ncykpOwotCQkJZm9yX2VhY2hfZW5naW5lKHNp Z25hbGxlciwgdG9faTkxNShlbmdpbmUtPmRldiksIGkpIHsKKwkJCWZvcl9lYWNoX2VuZ2luZShz aWduYWxsZXIsIHRvX2k5MTUoZW5naW5lLT5kZXYpKSB7CiAJCQkJaWYgKHNpZ25hbGxlciA9PSBl bmdpbmUpCiAJCQkJCWNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9kZWJ1Zy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZGVidWcu YwppbmRleCBlZjljZDcwLi5hNTY1MTY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9kZWJ1Zy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Rl YnVnLmMKQEAgLTM4LDEyICszOCwxMSBAQAogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv Ymo7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCBlcnIgPSAwOwotCWlu dCBpOwogCiAJaWYgKHdhcm5lZCkKIAkJcmV0dXJuIDA7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7 CiAJCWxpc3RfZm9yX2VhY2hfZW50cnkob2JqLCAmZW5naW5lLT5hY3RpdmVfbGlzdCwKIAkJCQkg ICAgZW5naW5lX2xpc3RbZW5naW5lLT5pZF0pIHsKIAkJCWlmIChvYmotPmJhc2UuZGV2ICE9IGRl diB8fApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCAwNzE1YmI3Li41OWUxODIx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMTczNyw5ICsxNzM3LDggQEAg c3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwog CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlpbnQgajsKIAotCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2LCBqKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYpIHsKIAkJdTMyIGZvdXJfbGV2ZWwgPSBVU0VTX0ZVTExfNDhCSVRfUFBHVFQoZGV2KSA/ IEdFTjhfR0ZYX1BQR1RUXzQ4QiA6IDA7CiAJCUk5MTVfV1JJVEUoUklOR19NT0RFX0dFTjcoZW5n aW5lKSwKIAkJCSAgIF9NQVNLRURfQklUX0VOQUJMRShHRlhfUFBHVFRfRU5BQkxFIHwgZm91cl9s ZXZlbCkpOwpAQCAtMTc1MSw3ICsxNzUwLDYgQEAgc3RhdGljIHZvaWQgZ2VuN19wcGd0dF9lbmFi bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZTsKIAl1aW50MzJfdCBlY29jaGssIGVjb2JpdHM7Ci0JaW50IGk7CiAKIAllY29iaXRzID0gSTkx NV9SRUFEKEdBQ19FQ09fQklUUyk7CiAJSTkxNV9XUklURShHQUNfRUNPX0JJVFMsIGVjb2JpdHMg fCBFQ09CSVRTX1BQR1RUX0NBQ0hFNjRCKTsKQEAgLTE3NjUsNyArMTc2Myw3IEBAIHN0YXRpYyB2 b2lkIGdlbjdfcHBndHRfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQogCUk5MTVf V1JJVEUoR0FNX0VDT0NISywgZWNvY2hrKTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRl dl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJLyog R0ZYX01PREUgaXMgcGVyLXJpbmcgb24gZ2VuNysgKi8KIAkJSTkxNV9XUklURShSSU5HX01PREVf R0VONyhlbmdpbmUpLAogCQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9QUEdUVF9FTkFCTEUp KTsKQEAgLTIyODcsMTIgKzIyODUsMTEgQEAgdm9pZCBpOTE1X2NoZWNrX2FuZF9jbGVhcl9mYXVs dHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKLQlpbnQgaTsKIAogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDYpCiAJCXJldHVy bjsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKIAkJdTMyIGZhdWx0X3JlZzsKIAkJZmF1bHRfcmVn ID0gSTkxNV9SRUFEKFJJTkdfRkFVTFRfUkVHKGVuZ2luZSkpOwogCQlpZiAoZmF1bHRfcmVnICYg UklOR19GQVVMVF9WQUxJRCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz c2lvbi5jCmluZGV4IDA2MTFiZGMuLmRhODZiZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTg0Miw3ICs4NDIsNyBAQCBzdGF0aWMgdm9pZCBndWNf Y3JlYXRlX2FkcyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJc3RydWN0IGd1Y19tbWlvX3JlZ19z dGF0ZSAqcmVnX3N0YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlzdHJ1 Y3QgcGFnZSAqcGFnZTsKLQl1MzIgc2l6ZSwgaTsKKwl1MzIgc2l6ZTsKIAogCS8qIFRoZSBhZHMg b2JqIGluY2x1ZGVzIHRoZSBzdHJ1Y3QgaXRzZWxmIGFuZCBidWZmZXJzIHBhc3NlZCB0byBHdUMg Ki8KIAlzaXplID0gc2l6ZW9mKHN0cnVjdCBndWNfYWRzKSArIHNpemVvZihzdHJ1Y3QgZ3VjX3Bv bGljaWVzKSArCkBAIC04NzEsNyArODcxLDcgQEAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0ZV9hZHMo c3RydWN0IGludGVsX2d1YyAqZ3VjKQogCWVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1JDU107 CiAJYWRzLT5nb2xkZW5fY29udGV4dF9scmNhID0gZW5naW5lLT5zdGF0dXNfcGFnZS5nZnhfYWRk cjsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2KQogCQlhZHMtPmVuZ19zdGF0ZV9zaXplW2VuZ2luZS0+Z3Vj X2lkXSA9IGludGVsX2xyX2NvbnRleHRfc2l6ZShlbmdpbmUpOwogCiAJLyogR3VDIHNjaGVkdWxp bmcgcG9saWNpZXMgKi8KQEAgLTg4NCw3ICs4ODQsNyBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRl X2FkcyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJLyogTU1JTyByZWcgc3RhdGUgKi8KIAlyZWdf c3RhdGUgPSAodm9pZCAqKXBvbGljaWVzICsgc2l6ZW9mKHN0cnVjdCBndWNfcG9saWNpZXMpOwog Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBkZXZfcHJpdikgewogCQlyZWdfc3RhdGUtPm1taW9fd2hpdGVfbGlzdFtlbmdp bmUtPmd1Y19pZF0ubW1pb19zdGFydCA9CiAJCQllbmdpbmUtPm1taW9fYmFzZSArIEdVQ19NTUlP X1dISVRFX0xJU1RfU1RBUlQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IDE0YTIzYjMu LjVhYTQyMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMTA4MCw5ICsxMDgwLDggQEAg c3RhdGljIHUzMiB2bHZfd2FfYzBfZWkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCB1MzIgcG1faWlyKQogc3RhdGljIGJvb2wgYW55X3dhaXRlcnMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlp bnQgaTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQogCQlpZiAoZW5naW5lLT5pcnFfcmVmY291bnQpCiAJ CQlyZXR1cm4gdHJ1ZTsKIApAQCAtMjQ1MCw3ICsyNDQ5LDYgQEAgc3RhdGljIHZvaWQgaTkxNV9l cnJvcl93YWtlX3VwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAg ICBib29sIHJlc2V0X2NvbXBsZXRlZCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmU7Ci0JaW50IGk7CiAKIAkvKgogCSAqIE5vdGlmeSBhbGwgd2FpdGVycyBmb3IgR1BVIGNvbXBs ZXRpb24gZXZlbnRzIHRoYXQgcmVzZXQgc3RhdGUgaGFzCkBAIC0yNDYwLDcgKzI0NTgsNyBAQCBz dGF0aWMgdm9pZCBpOTE1X2Vycm9yX3dha2VfdXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCSAqLwogCiAJLyogV2FrZSB1cCBfX3dhaXRfc2Vxbm8sIHBvdGVudGlhbGx5IGhv bGRpbmcgZGV2LT5zdHJ1Y3RfbXV0ZXguICovCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCiAJCXdha2VfdXBf YWxsKCZlbmdpbmUtPmlycV9xdWV1ZSk7CiAKIAkvKiBXYWtlIHVwIGludGVsX2NydGNfd2FpdF9m b3JfcGVuZGluZ19mbGlwcywgaG9sZGluZyBjcnRjLT5tdXRleC4gKi8KQEAgLTI4MjksMTAgKzI4 MjcsOSBAQCBzdGF0aWMgdm9pZCBnZW44X2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGVuZ2luZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpzaWduYWxsZXI7Ci0JaW50IGk7CiAKIAlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdi0+ZGV2 KS0+Z2VuID49IDgpIHsKLQkJZm9yX2VhY2hfZW5naW5lKHNpZ25hbGxlciwgZGV2X3ByaXYsIGkp IHsKKwkJZm9yX2VhY2hfZW5naW5lKHNpZ25hbGxlciwgZGV2X3ByaXYpIHsKIAkJCWlmIChlbmdp bmUgPT0gc2lnbmFsbGVyKQogCQkJCWNvbnRpbnVlOwogCkBAIC0yODQyLDcgKzI4MzksNyBAQCBz dGF0aWMgdm9pZCBnZW44X2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVu c2lnbmVkIGludCBwaXBlKQogCX0gZWxzZSB7CiAJCXUzMiBzeW5jX2JpdHMgPSBpcGVociAmIE1J X1NFTUFQSE9SRV9TWU5DX01BU0s7CiAKLQkJZm9yX2VhY2hfZW5naW5lKHNpZ25hbGxlciwgZGV2 X3ByaXYsIGkpIHsKKwkJZm9yX2VhY2hfZW5naW5lKHNpZ25hbGxlciwgZGV2X3ByaXYpIHsKIAkJ CWlmKGVuZ2luZSA9PSBzaWduYWxsZXIpCiAJCQkJY29udGludWU7CiAKQEAgLTI5NTgsOSArMjk1 NSw4IEBAIHN0YXRpYyBpbnQgc2VtYXBob3JlX3Bhc3NlZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiBzdGF0aWMgdm9pZCBzZW1hcGhvcmVfY2xlYXJfZGVhZGxvY2tzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmU7Ci0JaW50IGk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkK Kwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKIAkJZW5naW5lLT5oYW5nY2hlY2su ZGVhZGxvY2sgPSAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMK aW5kZXggZTFhZmY2Mi4uYjQ5NzZmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjX2xvYWRlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19s b2FkZXIuYwpAQCAtODIsMTIgKzgyLDEyIEBAIGNvbnN0IGNoYXIgKmludGVsX2d1Y19md19zdGF0 dXNfcmVwcihlbnVtIGludGVsX2d1Y19md19zdGF0dXMgc3RhdHVzKQogc3RhdGljIHZvaWQgZGly ZWN0X2ludGVycnVwdHNfdG9faG9zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWludCBpLCBpcnFzOworCWlu dCBpcnFzOwogCiAJLyogdGVsbCBhbGwgY29tbWFuZCBzdHJlYW1lcnMgTk9UIHRvIGZvcndhcmQg aW50ZXJydXB0cyBhbmQgdmJsYW5rIHRvIEd1QyAqLwogCWlycXMgPSBfTUFTS0VEX0ZJRUxEKEdG WF9GT1JXQVJEX1ZCTEFOS19NQVNLLCBHRlhfRk9SV0FSRF9WQkxBTktfTkVWRVIpOwogCWlycXMg fD0gX01BU0tFRF9CSVRfRElTQUJMRShHRlhfSU5URVJSVVBUX1NURUVSSU5HKTsKLQlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdikKIAkJSTkxNV9XUklURShSSU5HX01PREVfR0VONyhlbmdpbmUpLCBpcnFzKTsKIAog CS8qIHJvdXRlIGFsbCBHVCBpbnRlcnJ1cHRzIHRvIHRoZSBob3N0ICovCkBAIC05OSwxMiArOTks MTIgQEAgc3RhdGljIHZvaWQgZGlyZWN0X2ludGVycnVwdHNfdG9faG9zdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBkaXJlY3RfaW50ZXJydXB0c190b19n dWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKLQlpbnQgaSwgaXJxczsKKwlpbnQgaXJxczsKIAogCS8qIHRlbGwg YWxsIGNvbW1hbmQgc3RyZWFtZXJzIHRvIGZvcndhcmQgaW50ZXJydXB0cyBhbmQgdmJsYW5rIHRv IEd1QyAqLwogCWlycXMgPSBfTUFTS0VEX0ZJRUxEKEdGWF9GT1JXQVJEX1ZCTEFOS19NQVNLLCBH RlhfRk9SV0FSRF9WQkxBTktfQUxXQVlTKTsKIAlpcnFzIHw9IF9NQVNLRURfQklUX0VOQUJMRShH RlhfSU5URVJSVVBUX1NURUVSSU5HKTsKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJp diwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKIAkJSTkxNV9XUklURShS SU5HX01PREVfR0VONyhlbmdpbmUpLCBpcnFzKTsKIAogCS8qIHJvdXRlIFVTRVJfSU5URVJSVVBU IHRvIEhvc3QsIGFsbCBvdGhlcnMgYXJlIHNlbnQgdG8gR3VDLiAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwppbmRleCA0MGVmNGVhLi41ZDRjYTNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YwpAQCAtMjY3Myw5ICsyNjczLDggQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3Jlc2V0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0J aW50IGk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpjdHhfb2JqID0KIAkJCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZTsKIAkJc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5k ZXggNTIxY2Y0NS4uNmEwNDc2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC00ODE3LDcg KzQ4MTcsNiBAQCBzdGF0aWMgdm9pZCBnZW45X2VuYWJsZV9yYzYoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAl1aW50MzJfdCByYzZfbWFz ayA9IDA7Ci0JaW50IHVudXNlZDsKIAogCS8qIDFhOiBTb2Z0d2FyZSBSQyBzdGF0ZSAtIFJDMCAq LwogCUk5MTVfV1JJVEUoR0VONl9SQ19TVEFURSwgMCk7CkBAIC00ODM4LDcgKzQ4MzcsNyBAQCBz dGF0aWMgdm9pZCBnZW45X2VuYWJsZV9yYzYoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJSTkx NV9XUklURShHRU42X1JDNl9XQUtFX1JBVEVfTElNSVQsIDU0IDw8IDE2KTsKIAlJOTE1X1dSSVRF KEdFTjZfUkNfRVZBTFVBVElPTl9JTlRFUlZBTCwgMTI1MDAwKTsgLyogMTI1MDAgKiAxMjgwbnMg Ki8KIAlJOTE1X1dSSVRFKEdFTjZfUkNfSURMRV9IWVNURVJTSVMsIDI1KTsgLyogMjUgKiAxMjgw bnMgKi8KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgdW51c2VkKQorCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQogCQlJOTE1X1dSSVRFKFJJTkdfTUFYX0lETEUo ZW5naW5lLT5tbWlvX2Jhc2UpLCAxMCk7CiAKIAlpZiAoSEFTX0dVQ19VQ09ERShkZXYpKQpAQCAt NDg4Nyw3ICs0ODg2LDYgQEAgc3RhdGljIHZvaWQgZ2VuOF9lbmFibGVfcnBzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJdWludDMyX3Qg cmM2X21hc2sgPSAwOwotCWludCB1bnVzZWQ7CiAKIAkvKiAxYTogU29mdHdhcmUgUkMgc3RhdGUg LSBSQzAgKi8KIAlJOTE1X1dSSVRFKEdFTjZfUkNfU1RBVEUsIDApOwpAQCAtNDkwNiw3ICs0OTA0 LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9lbmFibGVfcnBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJSTkxNV9XUklURShHRU42X1JDNl9XQUtFX1JBVEVfTElNSVQsIDQwIDw8IDE2KTsKIAlJOTE1 X1dSSVRFKEdFTjZfUkNfRVZBTFVBVElPTl9JTlRFUlZBTCwgMTI1MDAwKTsgLyogMTI1MDAgKiAx MjgwbnMgKi8KIAlJOTE1X1dSSVRFKEdFTjZfUkNfSURMRV9IWVNURVJTSVMsIDI1KTsgLyogMjUg KiAxMjgwbnMgKi8KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgdW51c2VkKQor CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQogCQlJOTE1X1dSSVRFKFJJTkdfTUFY X0lETEUoZW5naW5lLT5tbWlvX2Jhc2UpLCAxMCk7CiAJSTkxNV9XUklURShHRU42X1JDX1NMRUVQ LCAwKTsKIAlpZiAoSVNfQlJPQURXRUxMKGRldikpCkBAIC00OTcxLDcgKzQ5NjksNyBAQCBzdGF0 aWMgdm9pZCBnZW42X2VuYWJsZV9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl1MzIgcmM2 dmlkcywgcGN1X21ib3ggPSAwLCByYzZfbWFzayA9IDA7CiAJdTMyIGd0Zmlmb2RiZzsKIAlpbnQg cmM2X21vZGU7Ci0JaW50IGksIHJldDsKKwlpbnQgcmV0OwogCiAJV0FSTl9PTighbXV0ZXhfaXNf bG9ja2VkKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spKTsKIApAQCAtNTAwMyw3ICs1MDAxLDcgQEAg c3RhdGljIHZvaWQgZ2VuNl9lbmFibGVfcnBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJSTkx NV9XUklURShHRU42X1JDX0VWQUxVQVRJT05fSU5URVJWQUwsIDEyNTAwMCk7CiAJSTkxNV9XUklU RShHRU42X1JDX0lETEVfSFlTVEVSU0lTLCAyNSk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKIAkJSTkx NV9XUklURShSSU5HX01BWF9JRExFKGVuZ2luZS0+bW1pb19iYXNlKSwgMTApOwogCiAJSTkxNV9X UklURShHRU42X1JDX1NMRUVQLCAwKTsKQEAgLTU0OTcsNyArNTQ5NSw2IEBAIHN0YXRpYyB2b2lk IGNoZXJyeXZpZXdfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXUzMiBndGZpZm9kYmcsIHZhbCwgcmM2X21vZGUgPSAw LCBwY2JyOwotCWludCBpOwogCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ cnBzLmh3X2xvY2spKTsKIApAQCAtNTUyMiw3ICs1NTE5LDcgQEAgc3RhdGljIHZvaWQgY2hlcnJ5 dmlld19lbmFibGVfcnBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJSTkxNV9XUklURShHRU42 X1JDX0VWQUxVQVRJT05fSU5URVJWQUwsIDEyNTAwMCk7IC8qIDEyNTAwICogMTI4MG5zICovCiAJ STkxNV9XUklURShHRU42X1JDX0lETEVfSFlTVEVSU0lTLCAyNSk7IC8qIDI1ICogMTI4MG5zICov CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBkZXZfcHJpdikKIAkJSTkxNV9XUklURShSSU5HX01BWF9JRExFKGVuZ2luZS0+ bW1pb19iYXNlKSwgMTApOwogCUk5MTVfV1JJVEUoR0VONl9SQ19TTEVFUCwgMCk7CiAKQEAgLTU1 OTUsNyArNTU5Miw2IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfZW5hYmxlX3JwcyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXUzMiBn dGZpZm9kYmcsIHZhbCwgcmM2X21vZGUgPSAwOwotCWludCBpOwogCiAJV0FSTl9PTighbXV0ZXhf aXNfbG9ja2VkKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spKTsKIApAQCAtNTYzMyw3ICs1NjI5LDcg QEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19lbmFibGVfcnBzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJSTkxNV9XUklURShHRU42X1JDX0VWQUxVQVRJT05fSU5URVJWQUwsIDEyNTAwMCk7CiAJ STkxNV9XUklURShHRU42X1JDX0lETEVfSFlTVEVSU0lTLCAyNSk7CiAKLQlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJp dikKIAkJSTkxNV9XUklURShSSU5HX01BWF9JRExFKGVuZ2luZS0+bW1pb19iYXNlKSwgMTApOwog CiAJSTkxNV9XUklURShHRU42X1JDNl9USFJFU0hPTEQsIDB4NTU3KTsKQEAgLTYwMTIsMTQgKzYw MDgsMTMgQEAgYm9vbCBpOTE1X2dwdV9idXN5KHZvaWQpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlib29sIHJl dCA9IGZhbHNlOwotCWludCBpOwogCiAJc3Bpbl9sb2NrX2lycSgmbWNoZGV2X2xvY2spOwogCWlm ICghaTkxNV9tY2hfZGV2KQogCQlnb3RvIG91dF91bmxvY2s7CiAJZGV2X3ByaXYgPSBpOTE1X21j aF9kZXY7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKIAkJcmV0IHw9ICFsaXN0X2VtcHR5KCZlbmdpbmUt PnJlcXVlc3RfbGlzdCk7CiAKIG91dF91bmxvY2s6Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==