From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v4 2/2] IOMMU/spinlock: Make the pcidevs_lock a recursive one. Date: Thu, 10 Mar 2016 22:10:07 +0800 Message-ID: <1457619007-41460-3-git-send-email-quan.xu@intel.com> References: <1457619007-41460-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: <1457619007-41460-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 VGhlIHBjaWRldnNfbG9jayBpcyBnb2luZyB0byBiZSByZWN1cnNpdmVseSB0YWtlbiBmb3IgaGlk aW5nIEFUUwpkZXZpY2UsIHdoZW4gVlQtZCBEZXZpY2UtVExCIGZsdXNoIHRpbWVkIG91dC4KClNp Z25lZC1vZmYtYnk6IFF1YW4gWHUgPHF1YW4ueHVAaW50ZWwuY29tPgpBY2tlZC1ieTogS2V2aW4g VGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNDOiBLZWlyIEZyYXNlciA8a2VpckB4ZW4ub3Jn PgpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ0M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3Vy YXZlZS5zdXRoaWt1bHBhbml0QGFtZC5jb20+CkNDOiBGZW5nIFd1IDxmZW5nLnd1QGludGVsLmNv bT4KQ0M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpDQzogRGFyaW8gRmFnZ2lv bGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2RvbWN0bC5j ICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogeGVuL2FyY2gveDg2L2h2bS92bXNpLmMg ICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiB4ZW4vYXJjaC94ODYvaXJxLmMgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDggKy0tCiB4ZW4vYXJjaC94ODYvbXNpLmMgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTYgKystLS0KIHhlbi9hcmNoL3g4Ni9wY2kuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNCArLQogeGVuL2FyY2gveDg2L3BoeXNkZXYuYyAgICAgICAgICAgICAg ICAgICAgICB8IDE2ICsrLS0tCiB4ZW4vY29tbW9uL3N5c2N0bC5jICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDQgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMg ICAgfCAgOCArLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYyAgICAg fCAgMiArLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyB8ICA0 ICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgICAgICAgICAgICAgIHwgOTcgKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p bnRyZW1hcC5jICAgICAgfCAgMiArLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMgICAgICAgICB8IDE0ICsrLS0tCiB4ZW4vZHJpdmVycy92aWRlby92Z2EuYyAgICAgICAgICAg ICAgICAgICAgIHwgIDQgKy0KIHhlbi9pbmNsdWRlL3hlbi9wY2kuaCAgICAgICAgICAgICAgICAg ICAgICAgfCAgNSArLQogMTUgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyksIDg2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNo L3g4Ni9kb21jdGwuYwppbmRleCA1NWFlY2RjLi5iMzRhMjk1IDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCkBAIC00NzIsOSArNDcy LDkgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgcmV0ID0gLUVTUkNIOwogICAgICAg ICBpZiAoIGlvbW11X2VuYWJsZWQgKQogICAgICAgICB7Ci0gICAgICAgICAgICBzcGluX2xvY2so JnBjaWRldnNfbG9jayk7CisgICAgICAgICAgICBwY2lkZXZzX2xvY2soKTsKICAgICAgICAgICAg IHJldCA9IHB0X2lycV9jcmVhdGVfYmluZChkLCBiaW5kKTsKLSAgICAgICAgICAgIHNwaW5fdW5s b2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICAgICAgcGNpZGV2c191bmxvY2soKTsKICAgICAg ICAgfQogICAgICAgICBpZiAoIHJldCA8IDAgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19H X0VSUiAicHRfaXJxX2NyZWF0ZV9iaW5kIGZhaWxlZCAoJWxkKSBmb3IgZG9tJWRcbiIsCkBAIC00 OTcsOSArNDk3LDkgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKIAogICAgICAgICBpZiAoIGlvbW11 X2VuYWJsZWQgKQogICAgICAgICB7Ci0gICAgICAgICAgICBzcGluX2xvY2soJnBjaWRldnNfbG9j ayk7CisgICAgICAgICAgICBwY2lkZXZzX2xvY2soKTsKICAgICAgICAgICAgIHJldCA9IHB0X2ly cV9kZXN0cm95X2JpbmQoZCwgYmluZCk7Ci0gICAgICAgICAgICBzcGluX3VubG9jaygmcGNpZGV2 c19sb2NrKTsKKyAgICAgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7CiAgICAgICAgIH0KICAgICAg ICAgaWYgKCByZXQgPCAwICkKICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgInB0X2ly cV9kZXN0cm95X2JpbmQgZmFpbGVkICglbGQpIGZvciBkb20lZFxuIiwKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9odm0vdm1zaS5jIGIveGVuL2FyY2gveDg2L2h2bS92bXNpLmMKaW5kZXggNDk5 MTUxZS4uYjQxYWJhNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXNpLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS92bXNpLmMKQEAgLTM4OCw3ICszODgsNyBAQCBpbnQgbXNpeHRibF9w dF9yZWdpc3RlcihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcGlycSAqcGlycSwgdWludDY0X3Qg Z3RhYmxlKQogICAgIHN0cnVjdCBtc2l4dGJsX2VudHJ5ICplbnRyeSwgKm5ld19lbnRyeTsKICAg ICBpbnQgciA9IC1FSU5WQUw7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNf bG9jaykpOworICAgIEFTU0VSVChwY2lkZXZzX2lzX2xvY2tlZCgpKTsKICAgICBBU1NFUlQoc3Bp bl9pc19sb2NrZWQoJmQtPmV2ZW50X2xvY2spKTsKIAogICAgIGlmICggIWhhc192bGFwaWMoZCkg KQpAQCAtNDQ2LDcgKzQ0Niw3IEBAIHZvaWQgbXNpeHRibF9wdF91bnJlZ2lzdGVyKHN0cnVjdCBk b21haW4gKmQsIHN0cnVjdCBwaXJxICpwaXJxKQogICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2Owog ICAgIHN0cnVjdCBtc2l4dGJsX2VudHJ5ICplbnRyeTsKIAotICAgIEFTU0VSVChzcGluX2lzX2xv Y2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwog ICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmZC0+ZXZlbnRfbG9jaykpOwogCiAgICAgaWYgKCAh aGFzX3ZsYXBpYyhkKSApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaXJxLmMgYi94ZW4vYXJj aC94ODYvaXJxLmMKaW5kZXggMTIyODU2OC4uNzhlNDI2MyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2lycS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9pcnEuYwpAQCAtMTk2MCw3ICsxOTYwLDcgQEAg aW50IG1hcF9kb21haW5fcGlycSgKICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXY7CiAgICAg ICAgIHVuc2lnbmVkIGludCBuciA9IDA7CiAKLSAgICAgICAgQVNTRVJUKHNwaW5faXNfbG9ja2Vk KCZwY2lkZXZzX2xvY2spKTsKKyAgICAgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwog CiAgICAgICAgIHJldCA9IC1FTk9ERVY7CiAgICAgICAgIGlmICggIWNwdV9oYXNfYXBpYyApCkBA IC0yMTA1LDcgKzIxMDUsNyBAQCBpbnQgdW5tYXBfZG9tYWluX3BpcnEoc3RydWN0IGRvbWFpbiAq ZCwgaW50IHBpcnEpCiAgICAgaWYgKCAocGlycSA8IDApIHx8IChwaXJxID49IGQtPm5yX3BpcnFz KSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2Vk KCZwY2lkZXZzX2xvY2spKTsKKyAgICBBU1NFUlQocGNpZGV2c19pc19sb2NrZWQoKSk7CiAgICAg QVNTRVJUKHNwaW5faXNfbG9ja2VkKCZkLT5ldmVudF9sb2NrKSk7CiAKICAgICBpbmZvID0gcGly cV9pbmZvKGQsIHBpcnEpOwpAQCAtMjIzMSw3ICsyMjMxLDcgQEAgdm9pZCBmcmVlX2RvbWFpbl9w aXJxcyhzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIGludCBpOwogCi0gICAgc3Bpbl9sb2NrKCZw Y2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfbG9jaygpOwogICAgIHNwaW5fbG9jaygmZC0+ZXZl bnRfbG9jayk7CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IGQtPm5yX3BpcnFzOyBpKysgKQpAQCAt MjIzOSw3ICsyMjM5LDcgQEAgdm9pZCBmcmVlX2RvbWFpbl9waXJxcyhzdHJ1Y3QgZG9tYWluICpk KQogICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BpcnEoZCwgaSk7CiAKICAgICBzcGluX3VubG9j aygmZC0+ZXZlbnRfbG9jayk7Ci0gICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAg cGNpZGV2c191bmxvY2soKTsKIH0KIAogc3RhdGljIHZvaWQgZHVtcF9pcnFzKHVuc2lnbmVkIGNo YXIga2V5KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21zaS5jIGIveGVuL2FyY2gveDg2L21z aS5jCmluZGV4IDVhNDgxZjYuLmE2MDE4YTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tc2ku YworKysgYi94ZW4vYXJjaC94ODYvbXNpLmMKQEAgLTY5NCw3ICs2OTQsNyBAQCBzdGF0aWMgaW50 IG1zaV9jYXBhYmlsaXR5X2luaXQoc3RydWN0IHBjaV9kZXYgKmRldiwKICAgICB1OCBzbG90ID0g UENJX1NMT1QoZGV2LT5kZXZmbik7CiAgICAgdTggZnVuYyA9IFBDSV9GVU5DKGRldi0+ZGV2Zm4p OwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwY2lkZXZzX2xvY2spKTsKKyAgICBBU1NF UlQocGNpZGV2c19pc19sb2NrZWQoKSk7CiAgICAgcG9zID0gcGNpX2ZpbmRfY2FwX29mZnNldChz ZWcsIGJ1cywgc2xvdCwgZnVuYywgUENJX0NBUF9JRF9NU0kpOwogICAgIGlmICggIXBvcyApCiAg ICAgICAgIHJldHVybiAtRU5PREVWOwpAQCAtODUyLDcgKzg1Miw3IEBAIHN0YXRpYyBpbnQgbXNp eF9jYXBhYmlsaXR5X2luaXQoc3RydWN0IHBjaV9kZXYgKmRldiwKICAgICB1OCBmdW5jID0gUENJ X0ZVTkMoZGV2LT5kZXZmbik7CiAgICAgYm9vbF90IG1hc2thbGwgPSBtc2l4LT5ob3N0X21hc2th bGw7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykpOworICAgIEFT U0VSVChwY2lkZXZzX2lzX2xvY2tlZCgpKTsKIAogICAgIGNvbnRyb2wgPSBwY2lfY29uZl9yZWFk MTYoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIG1zaXhfY29udHJvbF9yZWcocG9zKSk7CiAgICAgLyoK QEAgLTEwNDIsNyArMTA0Miw3IEBAIHN0YXRpYyBpbnQgX19wY2lfZW5hYmxlX21zaShzdHJ1Y3Qg bXNpX2luZm8gKm1zaSwgc3RydWN0IG1zaV9kZXNjICoqZGVzYykKICAgICBzdHJ1Y3QgcGNpX2Rl diAqcGRldjsKICAgICBzdHJ1Y3QgbXNpX2Rlc2MgKm9sZF9kZXNjOwogCi0gICAgQVNTRVJUKHNw aW5faXNfbG9ja2VkKCZwY2lkZXZzX2xvY2spKTsKKyAgICBBU1NFUlQocGNpZGV2c19pc19sb2Nr ZWQoKSk7CiAgICAgcGRldiA9IHBjaV9nZXRfcGRldihtc2ktPnNlZywgbXNpLT5idXMsIG1zaS0+ ZGV2Zm4pOwogICAgIGlmICggIXBkZXYgKQogICAgICAgICByZXR1cm4gLUVOT0RFVjsKQEAgLTEx MDMsNyArMTEwMyw3IEBAIHN0YXRpYyBpbnQgX19wY2lfZW5hYmxlX21zaXgoc3RydWN0IG1zaV9p bmZvICptc2ksIHN0cnVjdCBtc2lfZGVzYyAqKmRlc2MpCiAgICAgdTggZnVuYyA9IFBDSV9GVU5D KG1zaS0+ZGV2Zm4pOwogICAgIHN0cnVjdCBtc2lfZGVzYyAqb2xkX2Rlc2M7CiAKLSAgICBBU1NF UlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykpOworICAgIEFTU0VSVChwY2lkZXZzX2lz X2xvY2tlZCgpKTsKICAgICBwZGV2ID0gcGNpX2dldF9wZGV2KG1zaS0+c2VnLCBtc2ktPmJ1cywg bXNpLT5kZXZmbik7CiAgICAgcG9zID0gcGNpX2ZpbmRfY2FwX29mZnNldChtc2ktPnNlZywgbXNp LT5idXMsIHNsb3QsIGZ1bmMsIFBDSV9DQVBfSURfTVNJWCk7CiAgICAgaWYgKCAhcGRldiB8fCAh cG9zICkKQEAgLTEyMDUsNyArMTIwNSw3IEBAIGludCBwY2lfcHJlcGFyZV9tc2l4KHUxNiBzZWcs IHU4IGJ1cywgdTggZGV2Zm4sIGJvb2xfdCBvZmYpCiAgICAgaWYgKCAhcG9zICkKICAgICAgICAg cmV0dXJuIC1FTk9ERVY7CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNp ZGV2c19sb2NrKCk7CiAgICAgcGRldiA9IHBjaV9nZXRfcGRldihzZWcsIGJ1cywgZGV2Zm4pOwog ICAgIGlmICggIXBkZXYgKQogICAgICAgICByYyA9IC1FTk9ERVY7CkBAIC0xMjI0LDcgKzEyMjQs NyBAQCBpbnQgcGNpX3ByZXBhcmVfbXNpeCh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLCBib29s X3Qgb2ZmKQogICAgICAgICByYyA9IG1zaXhfY2FwYWJpbGl0eV9pbml0KHBkZXYsIHBvcywgTlVM TCwgTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aV9tc2l4X2Nh cGFibGUoY29udHJvbCkpOwogICAgIH0KLSAgICBzcGluX3VubG9jaygmcGNpZGV2c19sb2NrKTsK KyAgICBwY2lkZXZzX3VubG9jaygpOwogCiAgICAgcmV0dXJuIHJjOwogfQpAQCAtMTIzNSw3ICsx MjM1LDcgQEAgaW50IHBjaV9wcmVwYXJlX21zaXgodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbiwg Ym9vbF90IG9mZikKICAqLwogaW50IHBjaV9lbmFibGVfbXNpKHN0cnVjdCBtc2lfaW5mbyAqbXNp LCBzdHJ1Y3QgbXNpX2Rlc2MgKipkZXNjKQogewotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgm cGNpZGV2c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwogCiAgICAg aWYgKCAhdXNlX21zaSApCiAgICAgICAgIHJldHVybiAtRVBFUk07CkBAIC0xMzUxLDcgKzEzNTEs NyBAQCBpbnQgcGNpX3Jlc3RvcmVfbXNpX3N0YXRlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAg IHVuc2lnbmVkIGludCB0eXBlID0gMCwgcG9zID0gMDsKICAgICB1MTYgY29udHJvbCA9IDA7CiAK LSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykpOworICAgIEFTU0VSVChw Y2lkZXZzX2lzX2xvY2tlZCgpKTsKIAogICAgIGlmICggIXVzZV9tc2kgKQogICAgICAgICByZXR1 cm4gLUVPUE5PVFNVUFA7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcGNpLmMgYi94ZW4vYXJj aC94ODYvcGNpLmMKaW5kZXggNGI4N2NhYi4uYTlkZWNkNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L3BjaS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wY2kuYwpAQCAtODgsMTMgKzg4LDEzIEBAIGlu dCBwY2lfY29uZl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IHNlZywgdW5zaWduZWQgaW50 IGJkZiwKICAgICBpZiAoIHJlZyA8IDY0IHx8IHJlZyA+PSAyNTYgKQogICAgICAgICByZXR1cm4g MDsKIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsK IAogICAgIHBkZXYgPSBwY2lfZ2V0X3BkZXYoc2VnLCBQQ0lfQlVTKGJkZiksIFBDSV9ERVZGTjIo YmRmKSk7CiAgICAgaWYgKCBwZGV2ICkKICAgICAgICAgcmMgPSBwY2lfbXNpX2NvbmZfd3JpdGVf aW50ZXJjZXB0KHBkZXYsIHJlZywgc2l6ZSwgZGF0YSk7CiAKLSAgICBzcGluX3VubG9jaygmcGNp ZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwogCiAgICAgcmV0dXJuIHJjOwogfQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3BoeXNkZXYuYyBiL3hlbi9hcmNoL3g4Ni9waHlzZGV2 LmMKaW5kZXggNTdiNzgwMC4uMWNiOWI1OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3BoeXNk ZXYuYworKysgYi94ZW4vYXJjaC94ODYvcGh5c2Rldi5jCkBAIC0xNjcsNyArMTY3LDcgQEAgaW50 IHBoeXNkZXZfbWFwX3BpcnEoZG9taWRfdCBkb21pZCwgaW50IHR5cGUsIGludCAqaW5kZXgsIGlu dCAqcGlycV9wLAogICAgICAgICBnb3RvIGZyZWVfZG9tYWluOwogICAgIH0KIAotICAgIHNwaW5f bG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsKICAgICAvKiBWZXJpZnkg b3IgZ2V0IHBpcnEuICovCiAgICAgc3Bpbl9sb2NrKCZkLT5ldmVudF9sb2NrKTsKICAgICBwaXJx ID0gZG9tYWluX2lycV90b19waXJxKGQsIGlycSk7CkBAIC0yMzcsNyArMjM3LDcgQEAgaW50IHBo eXNkZXZfbWFwX3BpcnEoZG9taWRfdCBkb21pZCwgaW50IHR5cGUsIGludCAqaW5kZXgsIGludCAq cGlycV9wLAogCiAgZG9uZToKICAgICBzcGluX3VubG9jaygmZC0+ZXZlbnRfbG9jayk7Ci0gICAg c3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2soKTsKICAgICBp ZiAoIHJldCAhPSAwICkKICAgICAgICAgc3dpdGNoICggdHlwZSApCiAgICAgICAgIHsKQEAgLTI3 NSwxMSArMjc1LDExIEBAIGludCBwaHlzZGV2X3VubWFwX3BpcnEoZG9taWRfdCBkb21pZCwgaW50 IHBpcnEpCiAgICAgICAgICAgICBnb3RvIGZyZWVfZG9tYWluOwogICAgIH0KIAotICAgIHNwaW5f bG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsKICAgICBzcGluX2xvY2so JmQtPmV2ZW50X2xvY2spOwogICAgIHJldCA9IHVubWFwX2RvbWFpbl9waXJxKGQsIHBpcnEpOwog ICAgIHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKLSAgICBzcGluX3VubG9jaygmcGNpZGV2 c19sb2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwogCiAgZnJlZV9kb21haW46CiAgICAgcmN1 X3VubG9ja19kb21haW4oZCk7CkBAIC02ODksMTAgKzY4OSwxMCBAQCByZXRfdCBkb19waHlzZGV2 X29wKGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICBp ZiAoIGNvcHlfZnJvbV9ndWVzdCgmcmVzdG9yZV9tc2ksIGFyZywgMSkgIT0gMCApCiAgICAgICAg ICAgICBicmVhazsKIAotICAgICAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAgICAg IHBjaWRldnNfbG9jaygpOwogICAgICAgICBwZGV2ID0gcGNpX2dldF9wZGV2KDAsIHJlc3RvcmVf bXNpLmJ1cywgcmVzdG9yZV9tc2kuZGV2Zm4pOwogICAgICAgICByZXQgPSBwZGV2ID8gcGNpX3Jl c3RvcmVfbXNpX3N0YXRlKHBkZXYpIDogLUVOT0RFVjsKLSAgICAgICAgc3Bpbl91bmxvY2soJnBj aWRldnNfbG9jayk7CisgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7CiAgICAgICAgIGJyZWFrOwog ICAgIH0KIApAQCAtNzA0LDEwICs3MDQsMTAgQEAgcmV0X3QgZG9fcGh5c2Rldl9vcChpbnQgY21k LCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgaWYgKCBjb3B5X2Zy b21fZ3Vlc3QoJmRldiwgYXJnLCAxKSAhPSAwICkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAg ICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICAgICAgcGNpZGV2c19sb2NrKCk7CiAg ICAgICAgIHBkZXYgPSBwY2lfZ2V0X3BkZXYoZGV2LnNlZywgZGV2LmJ1cywgZGV2LmRldmZuKTsK ICAgICAgICAgcmV0ID0gcGRldiA/IHBjaV9yZXN0b3JlX21zaV9zdGF0ZShwZGV2KSA6IC1FTk9E RVY7Ci0gICAgICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICBwY2lkZXZz X3VubG9jaygpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vc3lzY3RsLmMgYi94ZW4vY29tbW9uL3N5c2N0bC5jCmluZGV4IDU4MTYyZjUuLjI1M2I3Yzgg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc3lzY3RsLmMKKysrIGIveGVuL2NvbW1vbi9zeXNjdGwu YwpAQCAtNDI2LDcgKzQyNiw3IEBAIGxvbmcgZG9fc3lzY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGVuX3N5c2N0bF90KSB1X3N5c2N0bCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgIH0KIAotICAgICAgICAgICAgc3Bpbl9sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAg ICAgICAgcGNpZGV2c19sb2NrKCk7CiAgICAgICAgICAgICBwZGV2ID0gcGNpX2dldF9wZGV2KGRl di5zZWcsIGRldi5idXMsIGRldi5kZXZmbik7CiAgICAgICAgICAgICBpZiAoICFwZGV2ICkKICAg ICAgICAgICAgICAgICBub2RlID0gWEVOX0lOVkFMSURfREVWOwpAQCAtNDM0LDcgKzQzNCw3IEBA IGxvbmcgZG9fc3lzY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX3N5c2N0bF90KSB1X3N5 c2N0bCkKICAgICAgICAgICAgICAgICBub2RlID0gWEVOX0lOVkFMSURfTk9ERV9JRDsKICAgICAg ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBub2RlID0gcGRldi0+bm9kZTsKLSAgICAgICAg ICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICAgICAgcGNpZGV2c191bmxv Y2soKTsKIAogICAgICAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0X29mZnNldCh0aS0+bm9kZXMs IGksICZub2RlLCAxKSApCiAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L2lvbW11X2luaXQuYwppbmRleCBhNDAwNDk3Li40NTM2MTA2IDEwMDY0NAotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9pb21tdV9pbml0LmMKQEAgLTY3Myw5ICs2NzMsOSBAQCB2b2lkIHBhcnNlX3Bw cl9sb2dfZW50cnkoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHUzMiBlbnRyeVtdKQogICAgIGJ1 cyA9IFBDSV9CVVMoZGV2aWNlX2lkKTsKICAgICBkZXZmbiA9IFBDSV9ERVZGTjIoZGV2aWNlX2lk KTsKIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsK ICAgICBwZGV2ID0gcGNpX2dldF9yZWFsX3BkZXYoaW9tbXUtPnNlZywgYnVzLCBkZXZmbik7Ci0g ICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2soKTsKIAog ICAgIGlmICggcGRldiApCiAgICAgICAgIGd1ZXN0X2lvbW11X2FkZF9wcHJfbG9nKHBkZXYtPmRv bWFpbiwgZW50cnkpOwpAQCAtNzg3LDEwICs3ODcsMTAgQEAgc3RhdGljIGJvb2xfdCBfX2luaXQg c2V0X2lvbW11X2ludGVycnVwdF9oYW5kbGVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQogICAg ICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7Cisg ICAgcGNpZGV2c19sb2NrKCk7CiAgICAgaW9tbXUtPm1zaS5kZXYgPSBwY2lfZ2V0X3BkZXYoaW9t bXUtPnNlZywgUENJX0JVUyhpb21tdS0+YmRmKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQQ0lfREVWRk4yKGlvbW11LT5iZGYpKTsKLSAgICBzcGluX3VubG9jaygmcGNpZGV2 c19sb2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwogICAgIGlmICggIWlvbW11LT5tc2kuZGV2 ICkKICAgICB7CiAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiSU9NTVU6IG5vIHBkZXYgZm9yICUw NHg6JTAyeDolMDJ4LiV1XG4iLApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL2lvbW11X21hcC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5j CmluZGV4IDc4ODYyYzkuLjlkOTFkZmMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9t bXVfbWFwLmMKQEAgLTU5Myw3ICs1OTMsNyBAQCBzdGF0aWMgaW50IHVwZGF0ZV9wYWdpbmdfbW9k ZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKICAgICAgICAgaGQtPmFyY2gu cGFnaW5nX21vZGUgPSBsZXZlbDsKICAgICAgICAgaGQtPmFyY2gucm9vdF90YWJsZSA9IG5ld19y b290OwogCi0gICAgICAgIGlmICggIXNwaW5faXNfbG9ja2VkKCZwY2lkZXZzX2xvY2spICkKKyAg ICAgICAgaWYgKCAhcGNpZGV2c19pc19sb2NrZWQoKSApCiAgICAgICAgICAgICBBTURfSU9NTVVf REVCVUcoIiVzIFRyeSB0byBhY2Nlc3MgcGRldl9saXN0ICIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAid2l0aG91dCBhcXVpcmluZyBwY2lkZXZzX2xvY2suXG4iLCBfX2Z1bmNfXyk7CiAK ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCmluZGV4IGMxYzBi NmIuLmRjM2JmYWIgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lf YW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9t bXUuYwpAQCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyB2b2lkIGFtZF9pb21tdV9zZXR1cF9kb21h aW5fZGV2aWNlKAogCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZs YWdzKTsKIAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAg QVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwogCiAgICAgaWYgKCBwY2lfYXRzX2RldmljZShp b21tdS0+c2VnLCBidXMsIHBkZXYtPmRldmZuKSAmJgogICAgICAgICAgIXBjaV9hdHNfZW5hYmxl ZChpb21tdS0+c2VnLCBidXMsIHBkZXYtPmRldmZuKSApCkBAIC0zNDUsNyArMzQ1LDcgQEAgdm9p ZCBhbWRfaW9tbXVfZGlzYWJsZV9kb21haW5fZGV2aWNlKHN0cnVjdCBkb21haW4gKmRvbWFpbiwK ICAgICB9CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsK IAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAgQVNTRVJU KHBjaWRldnNfaXNfbG9ja2VkKCkpOwogCiAgICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiAm JgogICAgICAgICAgcGNpX2F0c19kZXZpY2UoaW9tbXUtPnNlZywgYnVzLCBkZXZmbikgJiYKZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvcGNpLmMKaW5kZXggNjJiMzExYi4uZTA3ODIxZSAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNp LmMKQEAgLTQ4LDcgKzQ4LDI4IEBAIHN0cnVjdCBwY2lfc2VnIHsKICAgICB9IGJ1czJicmlkZ2Vb TUFYX0JVU0VTXTsKIH07CiAKLXNwaW5sb2NrX3QgcGNpZGV2c19sb2NrID0gU1BJTl9MT0NLX1VO TE9DS0VEOworc3RhdGljIHNwaW5sb2NrX3QgX3BjaWRldnNfbG9jayA9IFNQSU5fTE9DS19VTkxP Q0tFRDsKKwordm9pZCBwY2lkZXZzX2xvY2sodm9pZCkKK3sKKyAgICBzcGluX2xvY2tfcmVjdXJz aXZlKCZfcGNpZGV2c19sb2NrKTsKK30KKwordm9pZCBwY2lkZXZzX3VubG9jayh2b2lkKQorewor ICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmX3BjaWRldnNfbG9jayk7Cit9CisKK2Jvb2xfdCBw Y2lkZXZzX2lzX2xvY2tlZCh2b2lkKQoreworICAgIHJldHVybiAhIXNwaW5faXNfbG9ja2VkKCZf cGNpZGV2c19sb2NrKTsKK30KKworYm9vbF90IHBjaWRldnNfdHJ5bG9jayh2b2lkKQoreworICAg IHJldHVybiAhIXNwaW5fdHJ5bG9ja19yZWN1cnNpdmUoJl9wY2lkZXZzX2xvY2spOworfQorCiBz dGF0aWMgc3RydWN0IHJhZGl4X3RyZWVfcm9vdCBwY2lfc2VnbWVudHM7CiAKIHN0YXRpYyBpbmxp bmUgc3RydWN0IHBjaV9zZWcgKmdldF9wc2VnKHUxNiBzZWcpCkBAIC00MTIsMTQgKzQzMywxNCBA QCBpbnQgX19pbml0IHBjaV9oaWRlX2RldmljZShpbnQgYnVzLCBpbnQgZGV2Zm4pCiAgICAgc3Ry dWN0IHBjaV9kZXYgKnBkZXY7CiAgICAgaW50IHJjID0gLUVOT01FTTsKIAotICAgIHNwaW5fbG9j aygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsKICAgICBwZGV2ID0gYWxsb2Nf cGRldihnZXRfcHNlZygwKSwgYnVzLCBkZXZmbik7CiAgICAgaWYgKCBwZGV2ICkKICAgICB7CiAg ICAgICAgIF9wY2lfaGlkZV9kZXZpY2UocGRldik7CiAgICAgICAgIHJjID0gMDsKICAgICB9Ci0g ICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2soKTsKIAog ICAgIHJldHVybiByYzsKIH0KQEAgLTQ1Niw3ICs0NzcsNyBAQCBzdHJ1Y3QgcGNpX2RldiAqcGNp X2dldF9wZGV2KGludCBzZWcsIGludCBidXMsIGludCBkZXZmbikKICAgICBzdHJ1Y3QgcGNpX3Nl ZyAqcHNlZyA9IGdldF9wc2VnKHNlZyk7CiAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBOVUxM OwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwY2lkZXZzX2xvY2spKTsKKyAgICBBU1NF UlQocGNpZGV2c19pc19sb2NrZWQoKSk7CiAgICAgQVNTRVJUKHNlZyAhPSAtMSB8fCBidXMgPT0g LTEpOwogICAgIEFTU0VSVChidXMgIT0gLTEgfHwgZGV2Zm4gPT0gLTEpOwogCkBAIC01ODEsOSAr NjAyLDkgQEAgaW50IHBjaV9hZGRfZGV2aWNlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sCiAg ICAgICAgIHBkZXZfdHlwZSA9ICJleHRlbmRlZCBmdW5jdGlvbiI7CiAgICAgZWxzZSBpZiAoaW5m by0+aXNfdmlydGZuKQogICAgIHsKLSAgICAgICAgc3Bpbl9sb2NrKCZwY2lkZXZzX2xvY2spOwor ICAgICAgICBwY2lkZXZzX2xvY2soKTsKICAgICAgICAgcGRldiA9IHBjaV9nZXRfcGRldihzZWcs IGluZm8tPnBoeXNmbi5idXMsIGluZm8tPnBoeXNmbi5kZXZmbik7Ci0gICAgICAgIHNwaW5fdW5s b2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICBwY2lkZXZzX3VubG9jaygpOwogICAgICAgICBp ZiAoICFwZGV2ICkKICAgICAgICAgICAgIHBjaV9hZGRfZGV2aWNlKHNlZywgaW5mby0+cGh5c2Zu LmJ1cywgaW5mby0+cGh5c2ZuLmRldmZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwgbm9kZSk7CkBAIC02MDEsNyArNjIyLDcgQEAgaW50IHBjaV9hZGRfZGV2aWNlKHUxNiBzZWcs IHU4IGJ1cywgdTggZGV2Zm4sCiAKICAgICByZXQgPSAtRU5PTUVNOwogCi0gICAgc3Bpbl9sb2Nr KCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfbG9jaygpOwogICAgIHBzZWcgPSBhbGxvY19w c2VnKHNlZyk7CiAgICAgaWYgKCAhcHNlZyApCiAgICAgICAgIGdvdG8gb3V0OwpAQCAtNzAzLDcg KzcyNCw3IEBAIGludCBwY2lfYWRkX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLAog ICAgIHBjaV9lbmFibGVfYWNzKHBkZXYpOwogCiBvdXQ6Ci0gICAgc3Bpbl91bmxvY2soJnBjaWRl dnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2soKTsKICAgICBpZiAoICFyZXQgKQogICAgIHsK ICAgICAgICAgcHJpbnRrKFhFTkxPR19ERUJVRyAiUENJIGFkZCAlcyAlMDR4OiUwMng6JTAyeC4l dVxuIiwgcGRldl90eXBlLApAQCAtNzM1LDcgKzc1Niw3IEBAIGludCBwY2lfcmVtb3ZlX2Rldmlj ZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKQogICAgIGlmICggIXBzZWcgKQogICAgICAgICBy ZXR1cm4gLUVOT0RFVjsKIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lk ZXZzX2xvY2soKTsKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcGRldiwgJnBzZWctPmFsbGRl dnNfbGlzdCwgYWxsZGV2c19saXN0ICkKICAgICAgICAgaWYgKCBwZGV2LT5idXMgPT0gYnVzICYm IHBkZXYtPmRldmZuID09IGRldmZuICkKICAgICAgICAgewpAQCAtNzQ5LDcgKzc3MCw3IEBAIGlu dCBwY2lfcmVtb3ZlX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKQogICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOwor ICAgIHBjaWRldnNfdW5sb2NrKCk7CiAgICAgcmV0dXJuIHJldDsKIH0KIApAQCAtODA3LDExICs4 MjgsMTEgQEAgaW50IHBjaV9yZWxlYXNlX2RldmljZXMoc3RydWN0IGRvbWFpbiAqZCkKICAgICB1 OCBidXMsIGRldmZuOwogICAgIGludCByZXQ7CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9j ayk7CisgICAgcGNpZGV2c19sb2NrKCk7CiAgICAgcmV0ID0gcGNpX2NsZWFuX2RwY2lfaXJxcyhk KTsKICAgICBpZiAoIHJldCApCiAgICAgewotICAgICAgICBzcGluX3VubG9jaygmcGNpZGV2c19s b2NrKTsKKyAgICAgICAgcGNpZGV2c191bmxvY2soKTsKICAgICAgICAgcmV0dXJuIHJldDsKICAg ICB9CiAgICAgd2hpbGUgKCAocGRldiA9IHBjaV9nZXRfcGRldl9ieV9kb21haW4oZCwgLTEsIC0x LCAtMSkpICkKQEAgLTgyMyw3ICs4NDQsNyBAQCBpbnQgcGNpX3JlbGVhc2VfZGV2aWNlcyhzdHJ1 Y3QgZG9tYWluICpkKQogICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcGRldi0+c2Vn LCBidXMsCiAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZm bikpOwogICAgIH0KLSAgICBzcGluX3VubG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZz X3VubG9jaygpOwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC05MjAsNyArOTQxLDcgQEAgdm9pZCBw Y2lfY2hlY2tfZGlzYWJsZV9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbikKICAgICBz X3RpbWVfdCBub3cgPSBOT1coKTsKICAgICB1MTYgY3dvcmQ7CiAKLSAgICBzcGluX2xvY2soJnBj aWRldnNfbG9jayk7CisgICAgcGNpZGV2c19sb2NrKCk7CiAgICAgcGRldiA9IHBjaV9nZXRfcmVh bF9wZGV2KHNlZywgYnVzLCBkZXZmbik7CiAgICAgaWYgKCBwZGV2ICkKICAgICB7CkBAIC05MzEs NyArOTUyLDcgQEAgdm9pZCBwY2lfY2hlY2tfZGlzYWJsZV9kZXZpY2UodTE2IHNlZywgdTggYnVz LCB1OCBkZXZmbikKICAgICAgICAgaWYgKCArK3BkZXYtPmZhdWx0LmNvdW50IDwgUFRfRkFVTFRf VEhSRVNIT0xEICkKICAgICAgICAgICAgIHBkZXYgPSBOVUxMOwogICAgIH0KLSAgICBzcGluX3Vu bG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX3VubG9jaygpOwogCiAgICAgaWYgKCAh cGRldiApCiAgICAgICAgIHJldHVybjsKQEAgLTk4OCw5ICsxMDA5LDkgQEAgaW50IF9faW5pdCBz Y2FuX3BjaV9kZXZpY2VzKHZvaWQpCiB7CiAgICAgaW50IHJldDsKIAotICAgIHNwaW5fbG9jaygm cGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsKICAgICByZXQgPSBwY2lfc2VnbWVu dHNfaXRlcmF0ZShfc2Nhbl9wY2lfZGV2aWNlcywgTlVMTCk7Ci0gICAgc3Bpbl91bmxvY2soJnBj aWRldnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2soKTsKIAogICAgIHJldHVybiByZXQ7CiB9 CkBAIC0xMDU0LDE3ICsxMDc1LDE3IEBAIHN0YXRpYyBpbnQgX19od2RvbV9pbml0IF9zZXR1cF9o d2RvbV9wY2lfZGV2aWNlcyhzdHJ1Y3QgcGNpX3NlZyAqcHNlZywgdm9pZCAqYXJnCiAKICAgICAg ICAgICAgIGlmICggaW9tbXVfdmVyYm9zZSApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg ICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgICAgICAgICAgICAgcGNpZGV2c191 bmxvY2soKTsKICAgICAgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMoKTsKLSAg ICAgICAgICAgICAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAgICAgICAgICAgICAg cGNpZGV2c19sb2NrKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo ICFpb21tdV92ZXJib3NlICkKICAgICAgICAgewotICAgICAgICAgICAgc3Bpbl91bmxvY2soJnBj aWRldnNfbG9jayk7CisgICAgICAgICAgICBwY2lkZXZzX3VubG9jaygpOwogICAgICAgICAgICAg cHJvY2Vzc19wZW5kaW5nX3NvZnRpcnFzKCk7Ci0gICAgICAgICAgICBzcGluX2xvY2soJnBjaWRl dnNfbG9jayk7CisgICAgICAgICAgICBwY2lkZXZzX2xvY2soKTsKICAgICAgICAgfQogICAgIH0K IApAQCAtMTA3Niw5ICsxMDk3LDkgQEAgdm9pZCBfX2h3ZG9tX2luaXQgc2V0dXBfaHdkb21fcGNp X2RldmljZXMoCiB7CiAgICAgc3RydWN0IHNldHVwX2h3ZG9tIGN0eHQgPSB7IC5kID0gZCwgLmhh bmRsZXIgPSBoYW5kbGVyIH07CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9jayk7CisgICAg cGNpZGV2c19sb2NrKCk7CiAgICAgcGNpX3NlZ21lbnRzX2l0ZXJhdGUoX3NldHVwX2h3ZG9tX3Bj aV9kZXZpY2VzLCAmY3R4dCk7Ci0gICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAg cGNpZGV2c191bmxvY2soKTsKIH0KIAogI2lmZGVmIENPTkZJR19BQ1BJCkBAIC0xMjA2LDkgKzEy MjcsOSBAQCBzdGF0aWMgaW50IF9kdW1wX3BjaV9kZXZpY2VzKHN0cnVjdCBwY2lfc2VnICpwc2Vn LCB2b2lkICphcmcpCiBzdGF0aWMgdm9pZCBkdW1wX3BjaV9kZXZpY2VzKHVuc2lnbmVkIGNoYXIg Y2gpCiB7CiAgICAgcHJpbnRrKCI9PT09IFBDSSBkZXZpY2VzID09PT1cbiIpOwotICAgIHNwaW5f bG9jaygmcGNpZGV2c19sb2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsKICAgICBwY2lfc2VnbWVu dHNfaXRlcmF0ZShfZHVtcF9wY2lfZGV2aWNlcywgTlVMTCk7Ci0gICAgc3Bpbl91bmxvY2soJnBj aWRldnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2soKTsKIH0KIAogc3RhdGljIGludCBfX2lu aXQgc2V0dXBfZHVtcF9wY2lkZXZzKHZvaWQpCkBAIC0xMjQyLDcgKzEyNjMsNyBAQCBpbnQgaW9t bXVfYWRkX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKICAgICBpZiAoICFwZGV2LT5kb21h aW4gKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tl ZCgmcGNpZGV2c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwogCiAg ICAgaGQgPSBkb21haW5faHZtX2lvbW11KHBkZXYtPmRvbWFpbik7CiAgICAgaWYgKCAhaW9tbXVf ZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyApCkBAIC0xMjcxLDcgKzEyOTIsNyBAQCBpbnQg aW9tbXVfZW5hYmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKICAgICBpZiAoICFwZGV2 LT5kb21haW4gKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIEFTU0VSVChzcGluX2lz X2xvY2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkp OwogCiAgICAgaGQgPSBkb21haW5faHZtX2lvbW11KHBkZXYtPmRvbWFpbik7CiAgICAgaWYgKCAh aW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyB8fApAQCAtMTMyMCw5ICsxMzQxLDkg QEAgc3RhdGljIGludCBkZXZpY2VfYXNzaWduZWQodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbikK IHsKICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldjsKIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19s b2NrKTsKKyAgICBwY2lkZXZzX2xvY2soKTsKICAgICBwZGV2ID0gcGNpX2dldF9wZGV2X2J5X2Rv bWFpbihoYXJkd2FyZV9kb21haW4sIHNlZywgYnVzLCBkZXZmbik7Ci0gICAgc3Bpbl91bmxvY2so JnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2soKTsKIAogICAgIHJldHVybiBwZGV2 ID8gMCA6IC1FQlVTWTsKIH0KQEAgLTEzNDQsMTMgKzEzNjUsMTMgQEAgc3RhdGljIGludCBhc3Np Z25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sIHUz MiBmbGFnKQogICAgICAgICAgICAgIHAybV9nZXRfaG9zdHAybShkKS0+Z2xvYmFsX2xvZ2RpcnR5 KSkgKQogICAgICAgICByZXR1cm4gLUVYREVWOwogCi0gICAgaWYgKCAhc3Bpbl90cnlsb2NrKCZw Y2lkZXZzX2xvY2spICkKKyAgICBpZiAoICFwY2lkZXZzX3RyeWxvY2soKSApCiAgICAgICAgIHJl dHVybiAtRVJFU1RBUlQ7CiAKICAgICByYyA9IGlvbW11X2NvbnN0cnVjdChkKTsKICAgICBpZiAo IHJjICkKICAgICB7Ci0gICAgICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAg ICBwY2lkZXZzX3VubG9jaygpOwogICAgICAgICByZXR1cm4gcmM7CiAgICAgfQogCkBAIC0xMzgx LDcgKzE0MDIsNyBAQCBzdGF0aWMgaW50IGFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwg dTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbiwgdTMyIGZsYWcpCiAgZG9uZToKICAgICBpZiAoICFo YXNfYXJjaF9wZGV2cyhkKSAmJiBuZWVkX2lvbW11KGQpICkKICAgICAgICAgaW9tbXVfdGVhcmRv d24oZCk7Ci0gICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c191bmxv Y2soKTsKIAogICAgIHJldHVybiByYzsKIH0KQEAgLTEzOTYsNyArMTQxNyw3IEBAIGludCBkZWFz c2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgdTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbikK ICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAg cmV0dXJuIC1FSU5WQUw7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9j aykpOworICAgIEFTU0VSVChwY2lkZXZzX2lzX2xvY2tlZCgpKTsKICAgICBwZGV2ID0gcGNpX2dl dF9wZGV2X2J5X2RvbWFpbihkLCBzZWcsIGJ1cywgZGV2Zm4pOwogICAgIGlmICggIXBkZXYgKQog ICAgICAgICByZXR1cm4gLUVOT0RFVjsKQEAgLTE0NTEsNyArMTQ3Miw3IEBAIHN0YXRpYyBpbnQg aW9tbXVfZ2V0X2RldmljZV9ncm91cCgKIAogICAgIGdyb3VwX2lkID0gb3BzLT5nZXRfZGV2aWNl X2dyb3VwX2lkKHNlZywgYnVzLCBkZXZmbik7CiAKLSAgICBzcGluX2xvY2soJnBjaWRldnNfbG9j ayk7CisgICAgcGNpZGV2c19sb2NrKCk7CiAgICAgZm9yX2VhY2hfcGRldiggZCwgcGRldiApCiAg ICAgewogICAgICAgICBpZiAoIChwZGV2LT5zZWcgIT0gc2VnKSB8fApAQCAtMTQ3MCwxNCArMTQ5 MSwxNCBAQCBzdGF0aWMgaW50IGlvbW11X2dldF9kZXZpY2VfZ3JvdXAoCiAKICAgICAgICAgICAg IGlmICggdW5saWtlbHkoY29weV90b19ndWVzdF9vZmZzZXQoYnVmLCBpLCAmYmRmLCAxKSkgKQog ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2sp OworICAgICAgICAgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7CiAgICAgICAgICAgICAgICAgcmV0 dXJuIC0xOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaSsrOwogICAgICAgICB9CiAgICAg fQogCi0gICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgcGNpZGV2c191bmxvY2so KTsKIAogICAgIHJldHVybiBpOwogfQpAQCAtMTYwNSw5ICsxNjI2LDkgQEAgaW50IGlvbW11X2Rv X3BjaV9kb21jdGwoCiAgICAgICAgIGJ1cyA9IFBDSV9CVVMobWFjaGluZV9zYmRmKTsKICAgICAg ICAgZGV2Zm4gPSBQQ0lfREVWRk4yKG1hY2hpbmVfc2JkZik7CiAKLSAgICAgICAgc3Bpbl9sb2Nr KCZwY2lkZXZzX2xvY2spOworICAgICAgICBwY2lkZXZzX2xvY2soKTsKICAgICAgICAgcmV0ID0g ZGVhc3NpZ25fZGV2aWNlKGQsIHNlZywgYnVzLCBkZXZmbik7Ci0gICAgICAgIHNwaW5fdW5sb2Nr KCZwY2lkZXZzX2xvY2spOworICAgICAgICBwY2lkZXZzX3VubG9jaygpOwogICAgICAgICBpZiAo IHJldCApCiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSCiAgICAgICAgICAgICAgICAg ICAgImRlYXNzaWduICUwNHg6JTAyeDolMDJ4LiV1IGZyb20gZG9tJWQgZmFpbGVkICglZClcbiIs CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW50cmVtYXAuYyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jCmluZGV4IDBlZTNmYjIuLmY1ZTNm NDkgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jCisr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jCkBAIC05ODQsNyArOTg0 LDcgQEAgaW50IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1 Y3QgcGlycSAqcGlycSwKIAogICAgIHNwaW5fdW5sb2NrX2lycSgmZGVzYy0+bG9jayk7CiAKLSAg ICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykpOworICAgIEFTU0VSVChwY2lk ZXZzX2lzX2xvY2tlZCgpKTsKIAogICAgIC8qCiAgICAgICogRklYTUU6IEZvciBwZXJmb3JtYW5j ZSByZWFzb25zIHdlIHNob3VsZCBzdG9yZSB0aGUgJ2lvbW11JyBwb2ludGVyIGluCmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5jCmluZGV4IDgwMjI3MDIuLjg0MDkxMDAgMTAwNjQ0Ci0tLSBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xMjgyLDcgKzEyODIsNyBAQCBpbnQgZG9tYWluX2Nv bnRleHRfbWFwcGluZ19vbmUoCiAgICAgdTE2IHNlZyA9IGlvbW11LT5pbnRlbC0+ZHJoZC0+c2Vn bWVudDsKICAgICBpbnQgYWdhdzsKIAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcGNpZGV2 c19sb2NrKSk7CisgICAgQVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwogICAgIHNwaW5fbG9j aygmaW9tbXUtPmxvY2spOwogICAgIG1hZGRyID0gYnVzX3RvX2NvbnRleHRfbWFkZHIoaW9tbXUs IGJ1cyk7CiAgICAgY29udGV4dF9lbnRyaWVzID0gKHN0cnVjdCBjb250ZXh0X2VudHJ5ICopbWFw X3Z0ZF9kb21haW5fcGFnZShtYWRkcik7CkBAIC0xNDI0LDcgKzE0MjQsNyBAQCBzdGF0aWMgaW50 IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoCiAgICAgaWYgKCAhZHJoZCApCiAgICAgICAgIHJldHVy biAtRU5PREVWOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwY2lkZXZzX2xvY2spKTsK KyAgICBBU1NFUlQocGNpZGV2c19pc19sb2NrZWQoKSk7CiAKICAgICBzd2l0Y2ggKCBwZGV2LT50 eXBlICkKICAgICB7CkBAIC0xNTA2LDcgKzE1MDYsNyBAQCBpbnQgZG9tYWluX2NvbnRleHRfdW5t YXBfb25lKAogICAgIHU2NCBtYWRkcjsKICAgICBpbnQgaW9tbXVfZG9taWQ7CiAKLSAgICBBU1NF UlQoc3Bpbl9pc19sb2NrZWQoJnBjaWRldnNfbG9jaykpOworICAgIEFTU0VSVChwY2lkZXZzX2lz X2xvY2tlZCgpKTsKICAgICBzcGluX2xvY2soJmlvbW11LT5sb2NrKTsKIAogICAgIG1hZGRyID0g YnVzX3RvX2NvbnRleHRfbWFkZHIoaW9tbXUsIGJ1cyk7CkBAIC0xODE2LDcgKzE4MTYsNyBAQCBz dGF0aWMgaW50IHJtcnJfaWRlbnRpdHlfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkLCBib29sX3Qg bWFwLAogICAgIHN0cnVjdCBtYXBwZWRfcm1yciAqbXJtcnI7CiAgICAgc3RydWN0IGh2bV9pb21t dSAqaGQgPSBkb21haW5faHZtX2lvbW11KGQpOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2Vk KCZwY2lkZXZzX2xvY2spKTsKKyAgICBBU1NFUlQocGNpZGV2c19pc19sb2NrZWQoKSk7CiAgICAg QVNTRVJUKHJtcnItPmJhc2VfYWRkcmVzcyA8IHJtcnItPmVuZF9hZGRyZXNzKTsKIAogICAgIC8q CkBAIC0xODgxLDcgKzE4ODEsNyBAQCBzdGF0aWMgaW50IGludGVsX2lvbW11X2FkZF9kZXZpY2Uo dTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAgIHUxNiBiZGY7CiAgICAgaW50IHJl dCwgaTsKIAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcGNpZGV2c19sb2NrKSk7CisgICAg QVNTRVJUKHBjaWRldnNfaXNfbG9ja2VkKCkpOwogCiAgICAgaWYgKCAhcGRldi0+ZG9tYWluICkK ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0aWMgdm9p ZCBfX2h3ZG9tX2luaXQgc2V0dXBfaHdkb21fcm1ycihzdHJ1Y3QgZG9tYWluICpkKQogICAgIHUx NiBiZGY7CiAgICAgaW50IHJldCwgaTsKIAotICAgIHNwaW5fbG9jaygmcGNpZGV2c19sb2NrKTsK KyAgICBwY2lkZXZzX2xvY2soKTsKICAgICBmb3JfZWFjaF9ybXJyX2RldmljZSAoIHJtcnIsIGJk ZiwgaSApCiAgICAgewogICAgICAgICAvKgpAQCAtMjEyMyw3ICsyMTIzLDcgQEAgc3RhdGljIHZv aWQgX19od2RvbV9pbml0IHNldHVwX2h3ZG9tX3JtcnIoc3RydWN0IGRvbWFpbiAqZCkKICAgICAg ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsCiAgICAgICAgICAgICAgICAgICAg ICAiSU9NTVU6IG1hcHBpbmcgcmVzZXJ2ZWQgcmVnaW9uIGZhaWxlZFxuIik7CiAgICAgfQotICAg IHNwaW5fdW5sb2NrKCZwY2lkZXZzX2xvY2spOworICAgIHBjaWRldnNfdW5sb2NrKCk7CiB9CiAK IGludCBfX2luaXQgaW50ZWxfdnRkX3NldHVwKHZvaWQpCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy cy92aWRlby92Z2EuYyBiL3hlbi9kcml2ZXJzL3ZpZGVvL3ZnYS5jCmluZGV4IDQwZTU5NjMuLjYx YzZiMTMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3ZpZGVvL3ZnYS5jCisrKyBiL3hlbi9kcml2 ZXJzL3ZpZGVvL3ZnYS5jCkBAIC0xMTcsOSArMTE3LDkgQEAgdm9pZCBfX2luaXQgdmlkZW9fZW5k Ym9vdCh2b2lkKQogICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2Owog ICAgICAgICAgICAgICAgIHU4IGIgPSBidXMsIGRmID0gZGV2Zm4sIHNiOwogCi0gICAgICAgICAg ICAgICAgc3Bpbl9sb2NrKCZwY2lkZXZzX2xvY2spOworICAgICAgICAgICAgICAgIHBjaWRldnNf bG9jaygpOwogICAgICAgICAgICAgICAgIHBkZXYgPSBwY2lfZ2V0X3BkZXYoMCwgYnVzLCBkZXZm bik7Ci0gICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnBjaWRldnNfbG9jayk7CisgICAgICAg ICAgICAgICAgcGNpZGV2c191bmxvY2soKTsKIAogICAgICAgICAgICAgICAgIGlmICggIXBkZXYg fHwKICAgICAgICAgICAgICAgICAgICAgIHBjaV9jb25mX3JlYWQxNigwLCBidXMsIFBDSV9TTE9U KGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3Bj aS5oIGIveGVuL2luY2x1ZGUveGVuL3BjaS5oCmluZGV4IGE1YWVmNTUuLjZkMWU5MWQgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9wY2kuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vcGNpLmgK QEAgLTk0LDcgKzk0LDEwIEBAIHN0cnVjdCBwY2lfZGV2IHsKICAqIGludGVycnVwdCBoYW5kbGlu ZyByZWxhdGVkICh0aGUgbWFzayBiaXQgcmVnaXN0ZXIpLgogICovCiAKLWV4dGVybiBzcGlubG9j a190IHBjaWRldnNfbG9jazsKK3ZvaWQgcGNpZGV2c19sb2NrKHZvaWQpOwordm9pZCBwY2lkZXZz X3VubG9jayh2b2lkKTsKK2Jvb2xfdCBwY2lkZXZzX2lzX2xvY2tlZCh2b2lkKTsKK2Jvb2xfdCBw Y2lkZXZzX3RyeWxvY2sodm9pZCk7CiAKIGJvb2xfdCBwY2lfa25vd25fc2VnbWVudCh1MTYgc2Vn KTsKIGJvb2xfdCBwY2lfZGV2aWNlX2RldGVjdCh1MTYgc2VnLCB1OCBidXMsIHU4IGRldiwgdTgg ZnVuYyk7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==