From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v2 2/2] IOMMU/spinlock: Make the pcidevs_lock a recursive one Date: Wed, 9 Mar 2016 11:08:09 +0800 Message-ID: <1457492889-36625-3-git-send-email-quan.xu@intel.com> References: <1457492889-36625-1-git-send-email-quan.xu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1457492889-36625-1-git-send-email-quan.xu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , Feng Wu , Jan Beulich , Andrew Cooper , Dario Faggioli , Suravee Suthikulpanit , Quan Xu , Keir Fraser List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogUXVhbiBYdSA8cXVhbi54dUBpbnRlbC5jb20+CkNDOiBLZWlyIEZyYXNl ciA8a2VpckB4ZW4ub3JnPgpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzog QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ0M6IFN1cmF2ZWUgU3V0 aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0QGFtZC5jb20+CkNDOiBGZW5nIFd1IDxm ZW5nLnd1QGludGVsLmNvbT4KQ0M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpD QzogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+Ci0tLQogeGVuL2Fy Y2gveDg2L2RvbWN0bC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogeGVuL2FyY2gv eDg2L2h2bS92bXNpLmMgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiB4ZW4vYXJjaC94ODYv aXJxLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKy0tCiB4ZW4vYXJjaC94ODYvbXNp LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLS0KIHhlbi9hcmNoL3g4Ni9wY2ku YyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogeGVuL2FyY2gveDg2L3BoeXNkZXYu YyAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrLS0tCiB4ZW4vY29tbW9uL3N5c2N0bC5jICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdV9pbml0LmMgICAgfCAgOCArLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9p b21tdV9tYXAuYyAgICAgfCAgMiArLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9h bWRfaW9tbXUuYyB8ICA0ICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgICAgICAg ICAgICAgIHwgOTYgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jICAgICAgfCAgMiArLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL2lvbW11LmMgICAgICAgICB8IDE0ICsrLS0tCiB4ZW4vZHJpdmVycy92aWRlby92 Z2EuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIHhlbi9pbmNsdWRlL3hlbi9wY2kuaCAg ICAgICAgICAgICAgICAgICAgICAgfCAgNSArLQogMTUgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2Vy dGlvbnMoKyksIDg2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21j dGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwppbmRleCA1NWFlY2RjLi5iMzRhMjk1IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5j CkBAIC00NzIsOSArNDcyLDkgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgcmV0ID0g LUVTUkNIOwogICAgICAgICBpZiAoIGlvbW11X2VuYWJsZWQgKQogICAgICAgICB7Ci0gICAgICAg ICAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAgICAgICAgICBwY2lkZXZzX2xvY2so KTsKICAgICAgICAgICAgIHJldCA9IHB0X2lycV9jcmVhdGVfYmluZChkLCBiaW5kKTsKLSAgICAg ICAgICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICAgICAgcGNpZGV2c191 bmxvY2soKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIHJldCA8IDAgKQogICAgICAgICAgICAg cHJpbnRrKFhFTkxPR19HX0VSUiAicHRfaXJxX2NyZWF0ZV9iaW5kIGZhaWxlZCAoJWxkKSBmb3Ig ZG9tJWRcbiIsCkBAIC00OTcsOSArNDk3LDkgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKIAogICAg ICAgICBpZiAoIGlvbW11X2VuYWJsZWQgKQogICAgICAgICB7Ci0gICAgICAgICAgICBzcGluX2xv Y2soJnBjaWRldnNfbG9jayk7CisgICAgICAgICAgICBwY2lkZXZzX2xvY2soKTsKICAgICAgICAg ICAgIHJldCA9IHB0X2lycV9kZXN0cm95X2JpbmQoZCwgYmluZCk7Ci0gICAgICAgICAgICBzcGlu X3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICAgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7CiAg ICAgICAgIH0KICAgICAgICAgaWYgKCByZXQgPCAwICkKICAgICAgICAgICAgIHByaW50ayhYRU5M T0dfR19FUlIgInB0X2lycV9kZXN0cm95X2JpbmQgZmFpbGVkICglbGQpIGZvciBkb20lZFxuIiwK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm1zaS5jIGIveGVuL2FyY2gveDg2L2h2bS92 bXNpLmMKaW5kZXggNDk5MTUxZS4uYjQxYWJhNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS92bXNpLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXNpLmMKQEAgLTM4OCw3ICszODgsNyBA QCBpbnQgbXNpeHRibF9wdF9yZWdpc3RlcihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcGlycSAq cGlycSwgdWludDY0X3QgZ3RhYmxlKQogICAgIHN0cnVjdCBtc2l4dGJsX2VudHJ5ICplbnRyeSwg Km5ld19lbnRyeTsKICAgICBpbnQgciA9IC1FSU5WQUw7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19s b2NrZWQoJnBjaWRldnNfbG9jaykpOworICAgIEFTU0VSVChwY2lkZXZzX2lzX2xvY2tlZCgpKTsK ICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmQtPmV2ZW50X2xvY2spKTsKIAogICAgIGlmICgg IWhhc192bGFwaWMoZCkgKQpAQCAtNDQ2LDcgKzQ0Niw3IEBAIHZvaWQgbXNpeHRibF9wdF91bnJl Z2lzdGVyKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBwaXJxICpwaXJxKQogICAgIHN0cnVjdCBw Y2lfZGV2ICpwZGV2OwogICAgIHN0cnVjdCBtc2l4dGJsX2VudHJ5ICplbnRyeTsKIAotICAgIEFT U0VSVChzcGluX2lzX2xvY2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNf aXNfbG9ja2VkKCkpOwogICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmZC0+ZXZlbnRfbG9jaykp OwogCiAgICAgaWYgKCAhaGFzX3ZsYXBpYyhkKSApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aXJxLmMgYi94ZW4vYXJjaC94ODYvaXJxLmMKaW5kZXggMTIyODU2OC4uNzhlNDI2MyAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2lycS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9pcnEuYwpAQCAtMTk2 MCw3ICsxOTYwLDcgQEAgaW50IG1hcF9kb21haW5fcGlycSgKICAgICAgICAgc3RydWN0IHBjaV9k ZXYgKnBkZXY7CiAgICAgICAgIHVuc2lnbmVkIGludCBuciA9IDA7CiAKLSAgICAgICAgQVNTRVJU KHNwaW5faXNfbG9ja2VkKCZwY2lkZXZzX2xvY2spKTsKKyAgICAgICAgQVNTRVJUKHBjaWRldnNf aXNfbG9ja2VkKCkpOwogCiAgICAgICAgIHJldCA9IC1FTk9ERVY7CiAgICAgICAgIGlmICggIWNw dV9oYXNfYXBpYyApCkBAIC0yMTA1LDcgKzIxMDUsNyBAQCBpbnQgdW5tYXBfZG9tYWluX3BpcnEo c3RydWN0IGRvbWFpbiAqZCwgaW50IHBpcnEpCiAgICAgaWYgKCAocGlycSA8IDApIHx8IChwaXJx ID49IGQtPm5yX3BpcnFzKSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0gICAgQVNTRVJU KHNwaW5faXNfbG9ja2VkKCZwY2lkZXZzX2xvY2spKTsKKyAgICBBU1NFUlQocGNpZGV2c19pc19s b2NrZWQoKSk7CiAgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZkLT5ldmVudF9sb2NrKSk7CiAK ICAgICBpbmZvID0gcGlycV9pbmZvKGQsIHBpcnEpOwpAQCAtMjIzMSw3ICsyMjMxLDcgQEAgdm9p ZCBmcmVlX2RvbWFpbl9waXJxcyhzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIGludCBpOwogCi0g ICAgc3Bpbl9sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfbG9jaygpOwogICAgIHNw aW5fbG9jaygmZC0+ZXZlbnRfbG9jayk7CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IGQtPm5yX3Bp cnFzOyBpKysgKQpAQCAtMjIzOSw3ICsyMjM5LDcgQEAgdm9pZCBmcmVlX2RvbWFpbl9waXJxcyhz dHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BpcnEoZCwgaSk7CiAK ICAgICBzcGluX3VubG9jaygmZC0+ZXZlbnRfbG9jayk7Ci0gICAgc3Bpbl91bmxvY2soJnBjaWRl dnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2soKTsKIH0KIAogc3RhdGljIHZvaWQgZHVtcF9p cnFzKHVuc2lnbmVkIGNoYXIga2V5KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21zaS5jIGIv eGVuL2FyY2gveDg2L21zaS5jCmluZGV4IDVhNDgxZjYuLmE2MDE4YTIgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9tc2kuYworKysgYi94ZW4vYXJjaC94ODYvbXNpLmMKQEAgLTY5NCw3ICs2OTQs NyBAQCBzdGF0aWMgaW50IG1zaV9jYXBhYmlsaXR5X2luaXQoc3RydWN0IHBjaV9kZXYgKmRldiwK ICAgICB1OCBzbG90ID0gUENJX1NMT1QoZGV2LT5kZXZmbik7CiAgICAgdTggZnVuYyA9IFBDSV9G VU5DKGRldi0+ZGV2Zm4pOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwY2lkZXZzX2xv Y2spKTsKKyAgICBBU1NFUlQocGNpZGV2c19pc19sb2NrZWQoKSk7CiAgICAgcG9zID0gcGNpX2Zp bmRfY2FwX29mZnNldChzZWcsIGJ1cywgc2xvdCwgZnVuYywgUENJX0NBUF9JRF9NU0kpOwogICAg IGlmICggIXBvcyApCiAgICAgICAgIHJldHVybiAtRU5PREVWOwpAQCAtODUyLDcgKzg1Miw3IEBA IHN0YXRpYyBpbnQgbXNpeF9jYXBhYmlsaXR5X2luaXQoc3RydWN0IHBjaV9kZXYgKmRldiwKICAg ICB1OCBmdW5jID0gUENJX0ZVTkMoZGV2LT5kZXZmbik7CiAgICAgYm9vbF90IG1hc2thbGwgPSBt c2l4LT5ob3N0X21hc2thbGw7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNf bG9jaykpOworICAgIEFTU0VSVChwY2lkZXZzX2lzX2xvY2tlZCgpKTsKIAogICAgIGNvbnRyb2wg PSBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIG1zaXhfY29udHJvbF9yZWco cG9zKSk7CiAgICAgLyoKQEAgLTEwNDIsNyArMTA0Miw3IEBAIHN0YXRpYyBpbnQgX19wY2lfZW5h YmxlX21zaShzdHJ1Y3QgbXNpX2luZm8gKm1zaSwgc3RydWN0IG1zaV9kZXNjICoqZGVzYykKICAg ICBzdHJ1Y3QgcGNpX2RldiAqcGRldjsKICAgICBzdHJ1Y3QgbXNpX2Rlc2MgKm9sZF9kZXNjOwog Ci0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwY2lkZXZzX2xvY2spKTsKKyAgICBBU1NFUlQo cGNpZGV2c19pc19sb2NrZWQoKSk7CiAgICAgcGRldiA9IHBjaV9nZXRfcGRldihtc2ktPnNlZywg bXNpLT5idXMsIG1zaS0+ZGV2Zm4pOwogICAgIGlmICggIXBkZXYgKQogICAgICAgICByZXR1cm4g LUVOT0RFVjsKQEAgLTExMDMsNyArMTEwMyw3IEBAIHN0YXRpYyBpbnQgX19wY2lfZW5hYmxlX21z aXgoc3RydWN0IG1zaV9pbmZvICptc2ksIHN0cnVjdCBtc2lfZGVzYyAqKmRlc2MpCiAgICAgdTgg ZnVuYyA9IFBDSV9GVU5DKG1zaS0+ZGV2Zm4pOwogICAgIHN0cnVjdCBtc2lfZGVzYyAqb2xkX2Rl c2M7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykpOworICAgIEFT U0VSVChwY2lkZXZzX2lzX2xvY2tlZCgpKTsKICAgICBwZGV2ID0gcGNpX2dldF9wZGV2KG1zaS0+ c2VnLCBtc2ktPmJ1cywgbXNpLT5kZXZmbik7CiAgICAgcG9zID0gcGNpX2ZpbmRfY2FwX29mZnNl dChtc2ktPnNlZywgbXNpLT5idXMsIHNsb3QsIGZ1bmMsIFBDSV9DQVBfSURfTVNJWCk7CiAgICAg aWYgKCAhcGRldiB8fCAhcG9zICkKQEAgLTEyMDUsNyArMTIwNSw3IEBAIGludCBwY2lfcHJlcGFy ZV9tc2l4KHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sIGJvb2xfdCBvZmYpCiAgICAgaWYgKCAh cG9zICkKICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNf bG9jayk7CisgICAgcGNpZGV2c19sb2NrKCk7CiAgICAgcGRldiA9IHBjaV9nZXRfcGRldihzZWcs IGJ1cywgZGV2Zm4pOwogICAgIGlmICggIXBkZXYgKQogICAgICAgICByYyA9IC1FTk9ERVY7CkBA IC0xMjI0LDcgKzEyMjQsNyBAQCBpbnQgcGNpX3ByZXBhcmVfbXNpeCh1MTYgc2VnLCB1OCBidXMs IHU4IGRldmZuLCBib29sX3Qgb2ZmKQogICAgICAgICByYyA9IG1zaXhfY2FwYWJpbGl0eV9pbml0 KHBkZXYsIHBvcywgTlVMTCwgTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtdWx0aV9tc2l4X2NhcGFibGUoY29udHJvbCkpOwogICAgIH0KLSAgICBzcGluX3VubG9jaygm cGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwogCiAgICAgcmV0dXJuIHJjOwog fQpAQCAtMTIzNSw3ICsxMjM1LDcgQEAgaW50IHBjaV9wcmVwYXJlX21zaXgodTE2IHNlZywgdTgg YnVzLCB1OCBkZXZmbiwgYm9vbF90IG9mZikKICAqLwogaW50IHBjaV9lbmFibGVfbXNpKHN0cnVj dCBtc2lfaW5mbyAqbXNpLCBzdHJ1Y3QgbXNpX2Rlc2MgKipkZXNjKQogewotICAgIEFTU0VSVChz cGluX2lzX2xvY2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9j a2VkKCkpOwogCiAgICAgaWYgKCAhdXNlX21zaSApCiAgICAgICAgIHJldHVybiAtRVBFUk07CkBA IC0xMzUxLDcgKzEzNTEsNyBAQCBpbnQgcGNpX3Jlc3RvcmVfbXNpX3N0YXRlKHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQogICAgIHVuc2lnbmVkIGludCB0eXBlID0gMCwgcG9zID0gMDsKICAgICB1MTYg Y29udHJvbCA9IDA7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykp OworICAgIEFTU0VSVChwY2lkZXZzX2lzX2xvY2tlZCgpKTsKIAogICAgIGlmICggIXVzZV9tc2kg KQogICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv cGNpLmMgYi94ZW4vYXJjaC94ODYvcGNpLmMKaW5kZXggNGI4N2NhYi4uYTlkZWNkNCAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3BjaS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wY2kuYwpAQCAtODgs MTMgKzg4LDEzIEBAIGludCBwY2lfY29uZl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IHNl ZywgdW5zaWduZWQgaW50IGJkZiwKICAgICBpZiAoIHJlZyA8IDY0IHx8IHJlZyA+PSAyNTYgKQog ICAgICAgICByZXR1cm4gMDsKIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBw Y2lkZXZzX2xvY2soKTsKIAogICAgIHBkZXYgPSBwY2lfZ2V0X3BkZXYoc2VnLCBQQ0lfQlVTKGJk ZiksIFBDSV9ERVZGTjIoYmRmKSk7CiAgICAgaWYgKCBwZGV2ICkKICAgICAgICAgcmMgPSBwY2lf bXNpX2NvbmZfd3JpdGVfaW50ZXJjZXB0KHBkZXYsIHJlZywgc2l6ZSwgZGF0YSk7CiAKLSAgICBz cGluX3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwogCiAgICAg cmV0dXJuIHJjOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3BoeXNkZXYuYyBiL3hlbi9h cmNoL3g4Ni9waHlzZGV2LmMKaW5kZXggNTdiNzgwMC4uMWNiOWI1OCAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3BoeXNkZXYuYworKysgYi94ZW4vYXJjaC94ODYvcGh5c2Rldi5jCkBAIC0xNjcs NyArMTY3LDcgQEAgaW50IHBoeXNkZXZfbWFwX3BpcnEoZG9taWRfdCBkb21pZCwgaW50IHR5cGUs IGludCAqaW5kZXgsIGludCAqcGlycV9wLAogICAgICAgICBnb3RvIGZyZWVfZG9tYWluOwogICAg IH0KIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsK ICAgICAvKiBWZXJpZnkgb3IgZ2V0IHBpcnEuICovCiAgICAgc3Bpbl9sb2NrKCZkLT5ldmVudF9s b2NrKTsKICAgICBwaXJxID0gZG9tYWluX2lycV90b19waXJxKGQsIGlycSk7CkBAIC0yMzcsNyAr MjM3LDcgQEAgaW50IHBoeXNkZXZfbWFwX3BpcnEoZG9taWRfdCBkb21pZCwgaW50IHR5cGUsIGlu dCAqaW5kZXgsIGludCAqcGlycV9wLAogCiAgZG9uZToKICAgICBzcGluX3VubG9jaygmZC0+ZXZl bnRfbG9jayk7Ci0gICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c191 bmxvY2soKTsKICAgICBpZiAoIHJldCAhPSAwICkKICAgICAgICAgc3dpdGNoICggdHlwZSApCiAg ICAgICAgIHsKQEAgLTI3NSwxMSArMjc1LDExIEBAIGludCBwaHlzZGV2X3VubWFwX3BpcnEoZG9t aWRfdCBkb21pZCwgaW50IHBpcnEpCiAgICAgICAgICAgICBnb3RvIGZyZWVfZG9tYWluOwogICAg IH0KIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsK ICAgICBzcGluX2xvY2soJmQtPmV2ZW50X2xvY2spOwogICAgIHJldCA9IHVubWFwX2RvbWFpbl9w aXJxKGQsIHBpcnEpOwogICAgIHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKLSAgICBzcGlu X3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwogCiAgZnJlZV9k b21haW46CiAgICAgcmN1X3VubG9ja19kb21haW4oZCk7CkBAIC02ODksMTAgKzY4OSwxMCBAQCBy ZXRfdCBkb19waHlzZGV2X29wKGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkg YXJnKQogICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmcmVzdG9yZV9tc2ksIGFyZywgMSkg IT0gMCApCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBzcGluX2xvY2soJnBjaWRldnNf bG9jayk7CisgICAgICAgIHBjaWRldnNfbG9jaygpOwogICAgICAgICBwZGV2ID0gcGNpX2dldF9w ZGV2KDAsIHJlc3RvcmVfbXNpLmJ1cywgcmVzdG9yZV9tc2kuZGV2Zm4pOwogICAgICAgICByZXQg PSBwZGV2ID8gcGNpX3Jlc3RvcmVfbXNpX3N0YXRlKHBkZXYpIDogLUVOT0RFVjsKLSAgICAgICAg c3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7CiAg ICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtNzA0LDEwICs3MDQsMTAgQEAgcmV0X3QgZG9fcGh5 c2Rldl9vcChpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAg ICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmRldiwgYXJnLCAxKSAhPSAwICkKICAgICAgICAgICAg IGJyZWFrOwogCi0gICAgICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICAgICAgcGNp ZGV2c19sb2NrKCk7CiAgICAgICAgIHBkZXYgPSBwY2lfZ2V0X3BkZXYoZGV2LnNlZywgZGV2LmJ1 cywgZGV2LmRldmZuKTsKICAgICAgICAgcmV0ID0gcGRldiA/IHBjaV9yZXN0b3JlX21zaV9zdGF0 ZShwZGV2KSA6IC1FTk9ERVY7Ci0gICAgICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOwor ICAgICAgICBwY2lkZXZzX3VubG9jaygpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vc3lzY3RsLmMgYi94ZW4vY29tbW9uL3N5c2N0bC5jCmluZGV4IDU4 MTYyZjUuLjI1M2I3YzggMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc3lzY3RsLmMKKysrIGIveGVu L2NvbW1vbi9zeXNjdGwuYwpAQCAtNDI2LDcgKzQyNiw3IEBAIGxvbmcgZG9fc3lzY3RsKFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0oeGVuX3N5c2N0bF90KSB1X3N5c2N0bCkKICAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgc3Bpbl9sb2NrKCZwY2lkZXZz X2xvY2spOworICAgICAgICAgICAgcGNpZGV2c19sb2NrKCk7CiAgICAgICAgICAgICBwZGV2ID0g cGNpX2dldF9wZGV2KGRldi5zZWcsIGRldi5idXMsIGRldi5kZXZmbik7CiAgICAgICAgICAgICBp ZiAoICFwZGV2ICkKICAgICAgICAgICAgICAgICBub2RlID0gWEVOX0lOVkFMSURfREVWOwpAQCAt NDM0LDcgKzQzNCw3IEBAIGxvbmcgZG9fc3lzY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVu X3N5c2N0bF90KSB1X3N5c2N0bCkKICAgICAgICAgICAgICAgICBub2RlID0gWEVOX0lOVkFMSURf Tk9ERV9JRDsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBub2RlID0gcGRldi0+ bm9kZTsKLSAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICAg ICAgcGNpZGV2c191bmxvY2soKTsKIAogICAgICAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0X29m ZnNldCh0aS0+bm9kZXMsIGksICZub2RlLCAxKSApCiAgICAgICAgICAgICB7CmRpZmYgLS1naXQg YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYwppbmRleCBhNDAwNDk3Li40NTM2MTA2IDEwMDY0 NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCisrKyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMKQEAgLTY3Myw5ICs2NzMsOSBA QCB2b2lkIHBhcnNlX3Bwcl9sb2dfZW50cnkoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHUzMiBl bnRyeVtdKQogICAgIGJ1cyA9IFBDSV9CVVMoZGV2aWNlX2lkKTsKICAgICBkZXZmbiA9IFBDSV9E RVZGTjIoZGV2aWNlX2lkKTsKIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBw Y2lkZXZzX2xvY2soKTsKICAgICBwZGV2ID0gcGNpX2dldF9yZWFsX3BkZXYoaW9tbXUtPnNlZywg YnVzLCBkZXZmbik7Ci0gICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2 c191bmxvY2soKTsKIAogICAgIGlmICggcGRldiApCiAgICAgICAgIGd1ZXN0X2lvbW11X2FkZF9w cHJfbG9nKHBkZXYtPmRvbWFpbiwgZW50cnkpOwpAQCAtNzg3LDEwICs3ODcsMTAgQEAgc3RhdGlj IGJvb2xfdCBfX2luaXQgc2V0X2lvbW11X2ludGVycnVwdF9oYW5kbGVyKHN0cnVjdCBhbWRfaW9t bXUgKmlvbW11KQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBzcGluX2xvY2soJnBj aWRldnNfbG9jayk7CisgICAgcGNpZGV2c19sb2NrKCk7CiAgICAgaW9tbXUtPm1zaS5kZXYgPSBw Y2lfZ2V0X3BkZXYoaW9tbXUtPnNlZywgUENJX0JVUyhpb21tdS0+YmRmKSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQQ0lfREVWRk4yKGlvbW11LT5iZGYpKTsKLSAgICBzcGlu X3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwogICAgIGlmICgg IWlvbW11LT5tc2kuZGV2ICkKICAgICB7CiAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiSU9NTVU6 IG5vIHBkZXYgZm9yICUwNHg6JTAyeDolMDJ4LiV1XG4iLApkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL2lvbW11X21hcC5jCmluZGV4IDc4ODYyYzkuLjlkOTFkZmMgMTAwNjQ0Ci0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKQEAgLTU5Myw3ICs1OTMsNyBAQCBzdGF0aWMgaW50IHVw ZGF0ZV9wYWdpbmdfbW9kZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKICAg ICAgICAgaGQtPmFyY2gucGFnaW5nX21vZGUgPSBsZXZlbDsKICAgICAgICAgaGQtPmFyY2gucm9v dF90YWJsZSA9IG5ld19yb290OwogCi0gICAgICAgIGlmICggIXNwaW5faXNfbG9ja2VkKCZwY2lk ZXZzX2xvY2spICkKKyAgICAgICAgaWYgKCAhcGNpZGV2c19pc19sb2NrZWQoKSApCiAgICAgICAg ICAgICBBTURfSU9NTVVfREVCVUcoIiVzIFRyeSB0byBhY2Nlc3MgcGRldl9saXN0ICIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAid2l0aG91dCBhcXVpcmluZyBwY2lkZXZzX2xvY2suXG4i LCBfX2Z1bmNfXyk7CiAKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9w Y2lfYW1kX2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21t dS5jCmluZGV4IGMxYzBiNmIuLmRjM2JmYWIgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyB2b2lkIGFtZF9p b21tdV9zZXR1cF9kb21haW5fZGV2aWNlKAogCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm aW9tbXUtPmxvY2ssIGZsYWdzKTsKIAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcGNpZGV2 c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwogCiAgICAgaWYgKCBw Y2lfYXRzX2RldmljZShpb21tdS0+c2VnLCBidXMsIHBkZXYtPmRldmZuKSAmJgogICAgICAgICAg IXBjaV9hdHNfZW5hYmxlZChpb21tdS0+c2VnLCBidXMsIHBkZXYtPmRldmZuKSApCkBAIC0zNDUs NyArMzQ1LDcgQEAgdm9pZCBhbWRfaW9tbXVfZGlzYWJsZV9kb21haW5fZGV2aWNlKHN0cnVjdCBk b21haW4gKmRvbWFpbiwKICAgICB9CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUt PmxvY2ssIGZsYWdzKTsKIAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcGNpZGV2c19sb2Nr KSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwogCiAgICAgaWYgKCBkZXZmbiA9 PSBwZGV2LT5kZXZmbiAmJgogICAgICAgICAgcGNpX2F0c19kZXZpY2UoaW9tbXUtPnNlZywgYnVz LCBkZXZmbikgJiYKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKaW5kZXggNjJiMzExYi4uZTA5ZjdkMSAxMDA2 NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvcGNpLmMKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RydWN0IHBjaV9zZWcgewogICAg IH0gYnVzMmJyaWRnZVtNQVhfQlVTRVNdOwogfTsKIAotc3BpbmxvY2tfdCBwY2lkZXZzX2xvY2sg PSBTUElOX0xPQ0tfVU5MT0NLRUQ7CitzdGF0aWMgc3BpbmxvY2tfdCBfcGNpZGV2c19sb2NrID0g U1BJTl9MT0NLX1VOTE9DS0VEOwogc3RhdGljIHN0cnVjdCByYWRpeF90cmVlX3Jvb3QgcGNpX3Nl Z21lbnRzOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBwY2lfc2VnICpnZXRfcHNlZyh1MTYgc2Vn KQpAQCAtMTAzLDYgKzEwMywyNiBAQCBzdGF0aWMgaW50IHBjaV9zZWdtZW50c19pdGVyYXRlKAog ICAgIHJldHVybiByYzsKIH0KIAordm9pZCBwY2lkZXZzX2xvY2sodm9pZCkKK3sKKyAgICBzcGlu X2xvY2tfcmVjdXJzaXZlKCZfcGNpZGV2c19sb2NrKTsKK30KKwordm9pZCBwY2lkZXZzX3VubG9j ayh2b2lkKQoreworICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmX3BjaWRldnNfbG9jayk7Cit9 CisKK2ludCBwY2lkZXZzX2lzX2xvY2tlZCh2b2lkKQoreworICAgIHJldHVybiBzcGluX2lzX2xv Y2tlZCgmX3BjaWRldnNfbG9jayk7Cit9CisKK2ludCBwY2lkZXZzX3RyeWxvY2sodm9pZCkKK3sK KyAgICByZXR1cm4gc3Bpbl90cnlsb2NrX3JlY3Vyc2l2ZSgmX3BjaWRldnNfbG9jayk7Cit9CisK IHZvaWQgX19pbml0IHB0X3BjaV9pbml0KHZvaWQpCiB7CiAgICAgcmFkaXhfdHJlZV9pbml0KCZw Y2lfc2VnbWVudHMpOwpAQCAtNDEyLDE0ICs0MzIsMTQgQEAgaW50IF9faW5pdCBwY2lfaGlkZV9k ZXZpY2UoaW50IGJ1cywgaW50IGRldmZuKQogICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2OwogICAg IGludCByYyA9IC1FTk9NRU07CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAg cGNpZGV2c19sb2NrKCk7CiAgICAgcGRldiA9IGFsbG9jX3BkZXYoZ2V0X3BzZWcoMCksIGJ1cywg ZGV2Zm4pOwogICAgIGlmICggcGRldiApCiAgICAgewogICAgICAgICBfcGNpX2hpZGVfZGV2aWNl KHBkZXYpOwogICAgICAgICByYyA9IDA7CiAgICAgfQotICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZz X2xvY2spOworICAgIHBjaWRldnNfdW5sb2NrKCk7CiAKICAgICByZXR1cm4gcmM7CiB9CkBAIC00 NTYsNyArNDc2LDcgQEAgc3RydWN0IHBjaV9kZXYgKnBjaV9nZXRfcGRldihpbnQgc2VnLCBpbnQg YnVzLCBpbnQgZGV2Zm4pCiAgICAgc3RydWN0IHBjaV9zZWcgKnBzZWcgPSBnZXRfcHNlZyhzZWcp OwogICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gTlVMTDsKIAotICAgIEFTU0VSVChzcGluX2lz X2xvY2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkp OwogICAgIEFTU0VSVChzZWcgIT0gLTEgfHwgYnVzID09IC0xKTsKICAgICBBU1NFUlQoYnVzICE9 IC0xIHx8IGRldmZuID09IC0xKTsKIApAQCAtNTgxLDkgKzYwMSw5IEBAIGludCBwY2lfYWRkX2Rl dmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLAogICAgICAgICBwZGV2X3R5cGUgPSAiZXh0 ZW5kZWQgZnVuY3Rpb24iOwogICAgIGVsc2UgaWYgKGluZm8tPmlzX3ZpcnRmbikKICAgICB7Ci0g ICAgICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICAgICAgcGNpZGV2c19sb2NrKCk7 CiAgICAgICAgIHBkZXYgPSBwY2lfZ2V0X3BkZXYoc2VnLCBpbmZvLT5waHlzZm4uYnVzLCBpbmZv LT5waHlzZm4uZGV2Zm4pOwotICAgICAgICBzcGluX3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAg ICAgICAgcGNpZGV2c191bmxvY2soKTsKICAgICAgICAgaWYgKCAhcGRldiApCiAgICAgICAgICAg ICBwY2lfYWRkX2RldmljZShzZWcsIGluZm8tPnBoeXNmbi5idXMsIGluZm8tPnBoeXNmbi5kZXZm biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIG5vZGUpOwpAQCAtNjAxLDcgKzYy MSw3IEBAIGludCBwY2lfYWRkX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLAogCiAg ICAgcmV0ID0gLUVOT01FTTsKIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBw Y2lkZXZzX2xvY2soKTsKICAgICBwc2VnID0gYWxsb2NfcHNlZyhzZWcpOwogICAgIGlmICggIXBz ZWcgKQogICAgICAgICBnb3RvIG91dDsKQEAgLTcwMyw3ICs3MjMsNyBAQCBpbnQgcGNpX2FkZF9k ZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbiwKICAgICBwY2lfZW5hYmxlX2FjcyhwZGV2 KTsKIAogb3V0OgotICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRldnNf dW5sb2NrKCk7CiAgICAgaWYgKCAhcmV0ICkKICAgICB7CiAgICAgICAgIHByaW50ayhYRU5MT0df REVCVUcgIlBDSSBhZGQgJXMgJTA0eDolMDJ4OiUwMnguJXVcbiIsIHBkZXZfdHlwZSwKQEAgLTcz NSw3ICs3NTUsNyBAQCBpbnQgcGNpX3JlbW92ZV9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBk ZXZmbikKICAgICBpZiAoICFwc2VnICkKICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CiAKLSAgICBz cGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c19sb2NrKCk7CiAgICAgbGlzdF9m b3JfZWFjaF9lbnRyeSAoIHBkZXYsICZwc2VnLT5hbGxkZXZzX2xpc3QsIGFsbGRldnNfbGlzdCAp CiAgICAgICAgIGlmICggcGRldi0+YnVzID09IGJ1cyAmJiBwZGV2LT5kZXZmbiA9PSBkZXZmbiAp CiAgICAgICAgIHsKQEAgLTc0OSw3ICs3NjksNyBAQCBpbnQgcGNpX3JlbW92ZV9kZXZpY2UodTE2 IHNlZywgdTggYnVzLCB1OCBkZXZmbikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAK LSAgICBzcGluX3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwog ICAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTgwNywxMSArODI3LDExIEBAIGludCBwY2lfcmVsZWFz ZV9kZXZpY2VzKHN0cnVjdCBkb21haW4gKmQpCiAgICAgdTggYnVzLCBkZXZmbjsKICAgICBpbnQg cmV0OwogCi0gICAgc3Bpbl9sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfbG9jaygp OwogICAgIHJldCA9IHBjaV9jbGVhbl9kcGNpX2lycXMoZCk7CiAgICAgaWYgKCByZXQgKQogICAg IHsKLSAgICAgICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgICAgIHBjaWRldnNf dW5sb2NrKCk7CiAgICAgICAgIHJldHVybiByZXQ7CiAgICAgfQogICAgIHdoaWxlICggKHBkZXYg PSBwY2lfZ2V0X3BkZXZfYnlfZG9tYWluKGQsIC0xLCAtMSwgLTEpKSApCkBAIC04MjMsNyArODQz LDcgQEAgaW50IHBjaV9yZWxlYXNlX2RldmljZXMoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAg ICAgICAgICAgICBkLT5kb21haW5faWQsIHBkZXYtPnNlZywgYnVzLAogICAgICAgICAgICAgICAg ICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKICAgICB9Ci0gICAgc3Bpbl91 bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2soKTsKIAogICAgIHJldHVy biAwOwogfQpAQCAtOTIwLDcgKzk0MCw3IEBAIHZvaWQgcGNpX2NoZWNrX2Rpc2FibGVfZGV2aWNl KHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCiAgICAgc190aW1lX3Qgbm93ID0gTk9XKCk7CiAg ICAgdTE2IGN3b3JkOwogCi0gICAgc3Bpbl9sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRl dnNfbG9jaygpOwogICAgIHBkZXYgPSBwY2lfZ2V0X3JlYWxfcGRldihzZWcsIGJ1cywgZGV2Zm4p OwogICAgIGlmICggcGRldiApCiAgICAgewpAQCAtOTMxLDcgKzk1MSw3IEBAIHZvaWQgcGNpX2No ZWNrX2Rpc2FibGVfZGV2aWNlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCiAgICAgICAgIGlm ICggKytwZGV2LT5mYXVsdC5jb3VudCA8IFBUX0ZBVUxUX1RIUkVTSE9MRCApCiAgICAgICAgICAg ICBwZGV2ID0gTlVMTDsKICAgICB9Ci0gICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7Cisg ICAgcGNpZGV2c191bmxvY2soKTsKIAogICAgIGlmICggIXBkZXYgKQogICAgICAgICByZXR1cm47 CkBAIC05ODgsOSArMTAwOCw5IEBAIGludCBfX2luaXQgc2Nhbl9wY2lfZGV2aWNlcyh2b2lkKQog ewogICAgIGludCByZXQ7CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNp ZGV2c19sb2NrKCk7CiAgICAgcmV0ID0gcGNpX3NlZ21lbnRzX2l0ZXJhdGUoX3NjYW5fcGNpX2Rl dmljZXMsIE5VTEwpOwotICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRl dnNfdW5sb2NrKCk7CiAKICAgICByZXR1cm4gcmV0OwogfQpAQCAtMTA1NCwxNyArMTA3NCwxNyBA QCBzdGF0aWMgaW50IF9faHdkb21faW5pdCBfc2V0dXBfaHdkb21fcGNpX2RldmljZXMoc3RydWN0 IHBjaV9zZWcgKnBzZWcsIHZvaWQgKmFyZwogCiAgICAgICAgICAgICBpZiAoIGlvbW11X3ZlcmJv c2UgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZz X2xvY2spOworICAgICAgICAgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7CiAgICAgICAgICAgICAg ICAgcHJvY2Vzc19wZW5kaW5nX3NvZnRpcnFzKCk7Ci0gICAgICAgICAgICAgICAgc3Bpbl9sb2Nr KCZwY2lkZXZzX2xvY2spOworICAgICAgICAgICAgICAgIHBjaWRldnNfbG9jaygpOwogICAgICAg ICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCAhaW9tbXVfdmVyYm9zZSApCiAgICAg ICAgIHsKLSAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICAg ICAgcGNpZGV2c191bmxvY2soKTsKICAgICAgICAgICAgIHByb2Nlc3NfcGVuZGluZ19zb2Z0aXJx cygpOwotICAgICAgICAgICAgc3Bpbl9sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICAgICAg cGNpZGV2c19sb2NrKCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEwNzYsOSArMTA5Niw5IEBA IHZvaWQgX19od2RvbV9pbml0IHNldHVwX2h3ZG9tX3BjaV9kZXZpY2VzKAogewogICAgIHN0cnVj dCBzZXR1cF9od2RvbSBjdHh0ID0geyAuZCA9IGQsIC5oYW5kbGVyID0gaGFuZGxlciB9OwogCi0g ICAgc3Bpbl9sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfbG9jaygpOwogICAgIHBj aV9zZWdtZW50c19pdGVyYXRlKF9zZXR1cF9od2RvbV9wY2lfZGV2aWNlcywgJmN0eHQpOwotICAg IHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfdW5sb2NrKCk7CiB9CiAK ICNpZmRlZiBDT05GSUdfQUNQSQpAQCAtMTIwNiw5ICsxMjI2LDkgQEAgc3RhdGljIGludCBfZHVt cF9wY2lfZGV2aWNlcyhzdHJ1Y3QgcGNpX3NlZyAqcHNlZywgdm9pZCAqYXJnKQogc3RhdGljIHZv aWQgZHVtcF9wY2lfZGV2aWNlcyh1bnNpZ25lZCBjaGFyIGNoKQogewogICAgIHByaW50aygiPT09 PSBQQ0kgZGV2aWNlcyA9PT09XG4iKTsKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7Cisg ICAgcGNpZGV2c19sb2NrKCk7CiAgICAgcGNpX3NlZ21lbnRzX2l0ZXJhdGUoX2R1bXBfcGNpX2Rl dmljZXMsIE5VTEwpOwotICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRl dnNfdW5sb2NrKCk7CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0IHNldHVwX2R1bXBfcGNpZGV2cyh2 b2lkKQpAQCAtMTI0Miw3ICsxMjYyLDcgQEAgaW50IGlvbW11X2FkZF9kZXZpY2Uoc3RydWN0IHBj aV9kZXYgKnBkZXYpCiAgICAgaWYgKCAhcGRldi0+ZG9tYWluICkKICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykpOworICAg IEFTU0VSVChwY2lkZXZzX2lzX2xvY2tlZCgpKTsKIAogICAgIGhkID0gZG9tYWluX2h2bV9pb21t dShwZGV2LT5kb21haW4pOwogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5wbGF0Zm9y bV9vcHMgKQpAQCAtMTI3MSw3ICsxMjkxLDcgQEAgaW50IGlvbW11X2VuYWJsZV9kZXZpY2Uoc3Ry dWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgaWYgKCAhcGRldi0+ZG9tYWluICkKICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykp OworICAgIEFTU0VSVChwY2lkZXZzX2lzX2xvY2tlZCgpKTsKIAogICAgIGhkID0gZG9tYWluX2h2 bV9pb21tdShwZGV2LT5kb21haW4pOwogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5w bGF0Zm9ybV9vcHMgfHwKQEAgLTEzMjAsOSArMTM0MCw5IEBAIHN0YXRpYyBpbnQgZGV2aWNlX2Fz c2lnbmVkKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCiB7CiAgICAgc3RydWN0IHBjaV9kZXYg KnBkZXY7CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c19sb2Nr KCk7CiAgICAgcGRldiA9IHBjaV9nZXRfcGRldl9ieV9kb21haW4oaGFyZHdhcmVfZG9tYWluLCBz ZWcsIGJ1cywgZGV2Zm4pOwotICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBj aWRldnNfdW5sb2NrKCk7CiAKICAgICByZXR1cm4gcGRldiA/IDAgOiAtRUJVU1k7CiB9CkBAIC0x MzQ0LDEzICsxMzY0LDEzIEBAIHN0YXRpYyBpbnQgYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWlu ICpkLCB1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLCB1MzIgZmxhZykKICAgICAgICAgICAgICBw Mm1fZ2V0X2hvc3RwMm0oZCktPmdsb2JhbF9sb2dkaXJ0eSkpICkKICAgICAgICAgcmV0dXJuIC1F WERFVjsKIAotICAgIGlmICggIXNwaW5fdHJ5bG9jaygmcGNpZGV2c19sb2NrKSApCisgICAgaWYg KCAhcGNpZGV2c190cnlsb2NrKCkgKQogICAgICAgICByZXR1cm4gLUVSRVNUQVJUOwogCiAgICAg cmMgPSBpb21tdV9jb25zdHJ1Y3QoZCk7CiAgICAgaWYgKCByYyApCiAgICAgewotICAgICAgICBz cGluX3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICAgICAgcGNpZGV2c191bmxvY2soKTsKICAg ICAgICAgcmV0dXJuIHJjOwogICAgIH0KIApAQCAtMTM4MSw3ICsxNDAxLDcgQEAgc3RhdGljIGlu dCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2 Zm4sIHUzMiBmbGFnKQogIGRvbmU6CiAgICAgaWYgKCAhaGFzX2FyY2hfcGRldnMoZCkgJiYgbmVl ZF9pb21tdShkKSApCiAgICAgICAgIGlvbW11X3RlYXJkb3duKGQpOwotICAgIHNwaW5fdW5sb2Nr KCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfdW5sb2NrKCk7CiAKICAgICByZXR1cm4gcmM7 CiB9CkBAIC0xMzk2LDcgKzE0MTYsNyBAQCBpbnQgZGVhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21h aW4gKmQsIHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxl ZCB8fCAhaGQtPnBsYXRmb3JtX29wcyApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0gICAg QVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwY2lkZXZzX2xvY2spKTsKKyAgICBBU1NFUlQocGNpZGV2 c19pc19sb2NrZWQoKSk7CiAgICAgcGRldiA9IHBjaV9nZXRfcGRldl9ieV9kb21haW4oZCwgc2Vn LCBidXMsIGRldmZuKTsKICAgICBpZiAoICFwZGV2ICkKICAgICAgICAgcmV0dXJuIC1FTk9ERVY7 CkBAIC0xNDUxLDcgKzE0NzEsNyBAQCBzdGF0aWMgaW50IGlvbW11X2dldF9kZXZpY2VfZ3JvdXAo CiAKICAgICBncm91cF9pZCA9IG9wcy0+Z2V0X2RldmljZV9ncm91cF9pZChzZWcsIGJ1cywgZGV2 Zm4pOwogCi0gICAgc3Bpbl9sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfbG9jaygp OwogICAgIGZvcl9lYWNoX3BkZXYoIGQsIHBkZXYgKQogICAgIHsKICAgICAgICAgaWYgKCAocGRl di0+c2VnICE9IHNlZykgfHwKQEAgLTE0NzAsMTQgKzE0OTAsMTQgQEAgc3RhdGljIGludCBpb21t dV9nZXRfZGV2aWNlX2dyb3VwKAogCiAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KGNvcHlfdG9f Z3Vlc3Rfb2Zmc2V0KGJ1ZiwgaSwgJmJkZiwgMSkpICkKICAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgICBzcGluX3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICAgICAgICAgICAgICBwY2lk ZXZzX3VubG9jaygpOwogICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgIH0K ICAgICAgICAgICAgIGkrKzsKICAgICAgICAgfQogICAgIH0KIAotICAgIHNwaW5fdW5sb2NrKCZw Y2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfdW5sb2NrKCk7CiAKICAgICByZXR1cm4gaTsKIH0K QEAgLTE2MDUsOSArMTYyNSw5IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKAogICAgICAgICBi dXMgPSBQQ0lfQlVTKG1hY2hpbmVfc2JkZik7CiAgICAgICAgIGRldmZuID0gUENJX0RFVkZOMiht YWNoaW5lX3NiZGYpOwogCi0gICAgICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICAg ICAgcGNpZGV2c19sb2NrKCk7CiAgICAgICAgIHJldCA9IGRlYXNzaWduX2RldmljZShkLCBzZWcs IGJ1cywgZGV2Zm4pOwotICAgICAgICBzcGluX3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICAg ICAgcGNpZGV2c191bmxvY2soKTsKICAgICAgICAgaWYgKCByZXQgKQogICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19HX0VSUgogICAgICAgICAgICAgICAgICAgICJkZWFzc2lnbiAlMDR4OiUwMng6 JTAyeC4ldSBmcm9tIGRvbSVkIGZhaWxlZCAoJWQpXG4iLApkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL2ludHJlbWFwLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW50cmVtYXAuYwppbmRleCAwZWUzZmIyLi5mNWUzZjQ5IDEwMDY0NAotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvaW50cmVtYXAuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC92dGQvaW50cmVtYXAuYwpAQCAtOTg0LDcgKzk4NCw3IEBAIGludCBwaV91cGRhdGVfaXJ0 ZShjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgc3RydWN0IHBpcnEgKnBpcnEsCiAKICAgICBz cGluX3VubG9ja19pcnEoJmRlc2MtPmxvY2spOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2Vk KCZwY2lkZXZzX2xvY2spKTsKKyAgICBBU1NFUlQocGNpZGV2c19pc19sb2NrZWQoKSk7CiAKICAg ICAvKgogICAgICAqIEZJWE1FOiBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucyB3ZSBzaG91bGQgc3Rv cmUgdGhlICdpb21tdScgcG9pbnRlciBpbgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpp bmRleCA4MDIyNzAyLi44NDA5MTAwIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpA QCAtMTI4Miw3ICsxMjgyLDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAg IHUxNiBzZWcgPSBpb21tdS0+aW50ZWwtPmRyaGQtPnNlZ21lbnQ7CiAgICAgaW50IGFnYXc7CiAK LSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykpOworICAgIEFTU0VSVChw Y2lkZXZzX2lzX2xvY2tlZCgpKTsKICAgICBzcGluX2xvY2soJmlvbW11LT5sb2NrKTsKICAgICBt YWRkciA9IGJ1c190b19jb250ZXh0X21hZGRyKGlvbW11LCBidXMpOwogICAgIGNvbnRleHRfZW50 cmllcyA9IChzdHJ1Y3QgY29udGV4dF9lbnRyeSAqKW1hcF92dGRfZG9tYWluX3BhZ2UobWFkZHIp OwpAQCAtMTQyNCw3ICsxNDI0LDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5n KAogICAgIGlmICggIWRyaGQgKQogICAgICAgICByZXR1cm4gLUVOT0RFVjsKIAotICAgIEFTU0VS VChzcGluX2lzX2xvY2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNf bG9ja2VkKCkpOwogCiAgICAgc3dpdGNoICggcGRldi0+dHlwZSApCiAgICAgewpAQCAtMTUwNiw3 ICsxNTA2LDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZSgKICAgICB1NjQgbWFkZHI7 CiAgICAgaW50IGlvbW11X2RvbWlkOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwY2lk ZXZzX2xvY2spKTsKKyAgICBBU1NFUlQocGNpZGV2c19pc19sb2NrZWQoKSk7CiAgICAgc3Bpbl9s b2NrKCZpb21tdS0+bG9jayk7CiAKICAgICBtYWRkciA9IGJ1c190b19jb250ZXh0X21hZGRyKGlv bW11LCBidXMpOwpAQCAtMTgxNiw3ICsxODE2LDcgQEAgc3RhdGljIGludCBybXJyX2lkZW50aXR5 X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCwgYm9vbF90IG1hcCwKICAgICBzdHJ1Y3QgbWFwcGVk X3JtcnIgKm1ybXJyOwogICAgIHN0cnVjdCBodm1faW9tbXUgKmhkID0gZG9tYWluX2h2bV9pb21t dShkKTsKIAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAg QVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwogICAgIEFTU0VSVChybXJyLT5iYXNlX2FkZHJl c3MgPCBybXJyLT5lbmRfYWRkcmVzcyk7CiAKICAgICAvKgpAQCAtMTg4MSw3ICsxODgxLDcgQEAg c3RhdGljIGludCBpbnRlbF9pb21tdV9hZGRfZGV2aWNlKHU4IGRldmZuLCBzdHJ1Y3QgcGNpX2Rl diAqcGRldikKICAgICB1MTYgYmRmOwogICAgIGludCByZXQsIGk7CiAKLSAgICBBU1NFUlQoc3Bp bl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykpOworICAgIEFTU0VSVChwY2lkZXZzX2lzX2xvY2tl ZCgpKTsKIAogICAgIGlmICggIXBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVybiAtRUlOVkFM OwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IHNldHVwX2h3 ZG9tX3JtcnIoc3RydWN0IGRvbWFpbiAqZCkKICAgICB1MTYgYmRmOwogICAgIGludCByZXQsIGk7 CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c19sb2NrKCk7CiAg ICAgZm9yX2VhY2hfcm1ycl9kZXZpY2UgKCBybXJyLCBiZGYsIGkgKQogICAgIHsKICAgICAgICAg LyoKQEAgLTIxMjMsNyArMjEyMyw3IEBAIHN0YXRpYyB2b2lkIF9faHdkb21faW5pdCBzZXR1cF9o d2RvbV9ybXJyKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19F UlIgVlREUFJFRklYLAogICAgICAgICAgICAgICAgICAgICAgIklPTU1VOiBtYXBwaW5nIHJlc2Vy dmVkIHJlZ2lvbiBmYWlsZWRcbiIpOwogICAgIH0KLSAgICBzcGluX3VubG9jaygmcGNpZGV2c19s b2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwogfQogCiBpbnQgX19pbml0IGludGVsX3Z0ZF9z ZXR1cCh2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdmlkZW8vdmdhLmMgYi94ZW4vZHJp dmVycy92aWRlby92Z2EuYwppbmRleCA0MGU1OTYzLi42MWM2YjEzIDEwMDY0NAotLS0gYS94ZW4v ZHJpdmVycy92aWRlby92Z2EuYworKysgYi94ZW4vZHJpdmVycy92aWRlby92Z2EuYwpAQCAtMTE3 LDkgKzExNyw5IEBAIHZvaWQgX19pbml0IHZpZGVvX2VuZGJvb3Qodm9pZCkKICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldjsKICAgICAgICAgICAgICAgICB1OCBiID0g YnVzLCBkZiA9IGRldmZuLCBzYjsKIAotICAgICAgICAgICAgICAgIHNwaW5fbG9jaygmcGNpZGV2 c19sb2NrKTsKKyAgICAgICAgICAgICAgICBwY2lkZXZzX2xvY2soKTsKICAgICAgICAgICAgICAg ICBwZGV2ID0gcGNpX2dldF9wZGV2KDAsIGJ1cywgZGV2Zm4pOwotICAgICAgICAgICAgICAgIHNw aW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICAgICAgICAgIHBjaWRldnNfdW5sb2Nr KCk7CiAKICAgICAgICAgICAgICAgICBpZiAoICFwZGV2IHx8CiAgICAgICAgICAgICAgICAgICAg ICBwY2lfY29uZl9yZWFkMTYoMCwgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZu KSwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9wY2kuaCBiL3hlbi9pbmNsdWRlL3hlbi9w Y2kuaAppbmRleCBhNWFlZjU1Li5iODc1NzFkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4v cGNpLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3BjaS5oCkBAIC05NCw3ICs5NCwxMCBAQCBzdHJ1 Y3QgcGNpX2RldiB7CiAgKiBpbnRlcnJ1cHQgaGFuZGxpbmcgcmVsYXRlZCAodGhlIG1hc2sgYml0 IHJlZ2lzdGVyKS4KICAqLwogCi1leHRlcm4gc3BpbmxvY2tfdCBwY2lkZXZzX2xvY2s7Cit2b2lk IHBjaWRldnNfbG9jayh2b2lkKTsKK3ZvaWQgcGNpZGV2c191bmxvY2sodm9pZCk7CitpbnQgcGNp ZGV2c19pc19sb2NrZWQodm9pZCk7CitpbnQgcGNpZGV2c190cnlsb2NrKHZvaWQpOwogCiBib29s X3QgcGNpX2tub3duX3NlZ21lbnQodTE2IHNlZyk7CiBib29sX3QgcGNpX2RldmljZV9kZXRlY3Qo dTE2IHNlZywgdTggYnVzLCB1OCBkZXYsIHU4IGZ1bmMpOwotLSAKMS45LjEKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=