From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 96FFE6E21E for ; Wed, 27 Mar 2019 19:03:49 +0000 (UTC) From: Ville Syrjala Date: Wed, 27 Mar 2019 21:03:37 +0200 Message-Id: <20190327190337.729-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] Revert "lib/igt_device: Move intel_get_pci_device under igt_device" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCk9u ZSBzaWduaWZpY2FudCB1c2VjYXNlIGZvciBpbnRlbF9yZWcvZXRjLiBpcyB0byBiZSBhYmxlIHRv IGV4YW1pbmUKdGhlIGhhcmR3YXJlIHN0YXRlICpiZWZvcmUqIGxvYWRpbmcgdGhlIGRyaXZlci4g SWYgdGhlIHRvb2wgZm9yY2VzCnRoZSBkcml2ZXIgdG8gbG9hZCB3ZSd2ZSB0b3RhbGx5IGxvc3Qg dGhhdCBjYXBhYmlsaXR5LgoKVGhpcyByZXZlcnRzIGNvbW1pdCA4YWU4NjYyMWQ2ZmZmNjBiNmUy MGM2YjBmOWIzMzY3ODVjOTM1YjBmLgoKQ2M6IE1pY2hhxYIgV2luaWFyc2tpIDxtaWNoYWwud2lu aWFyc2tpQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgotLS0KIGJlbmNobWFya3MvZ2VtX2xhdGVuY3kuYyAgICAgICAgfCAgIDQgKy0K IGJlbmNobWFya3MvZ2VtX3dzaW0uYyAgICAgICAgICAgfCAgIDQgKy0KIGRlYnVnZ2VyL2RlYnVn X3JkYXRhLmMgICAgICAgICAgfCAgIDcgKy0KIGRlYnVnZ2VyL2V1ZGIuYyAgICAgICAgICAgICAg ICAgfCAgIDggKy0tCiBsaWIvaWd0X2RldmljZS5jICAgICAgICAgICAgICAgIHwgMTIwIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvaWd0X2RldmljZS5oICAgICAgICAgICAg ICAgIHwgICAxIC0KIGxpYi9pbnRlbF9jaGlwc2V0LmMgICAgICAgICAgICAgfCAgNTEgKysrKysr KysrKysrKysKIGxpYi9pbnRlbF9jaGlwc2V0LmggICAgICAgICAgICAgfCAgIDEgKwogbGliL2lu dGVsX21taW8uYyAgICAgICAgICAgICAgICB8ICAgNCArLQogbGliL2lvY3RsX3dyYXBwZXJzLmMg ICAgICAgICAgICB8ICAgNSArLQogbGliL2lvY3RsX3dyYXBwZXJzLmggICAgICAgICAgICB8ICAg MiArLQogdGVzdHMvaTkxNS9nZW1fY29uY3VycmVudF9hbGwuYyB8ICAxMiArKy0tCiB0ZXN0cy9p OTE1L2dlbV9jcHVfcmVsb2MuYyAgICAgIHwgICA0ICstCiB0ZXN0cy9pOTE1L2dlbV9leGVjX2xh dGVuY3kuYyAgIHwgICAzICstCiB0ZXN0cy9pOTE1L2dlbV9leGVjX3BhcnNlLmMgICAgIHwgICA0 ICstCiB0ZXN0cy9pOTE1L2dlbV9tbWFwLmMgICAgICAgICAgIHwgICA0ICstCiB0ZXN0cy9pOTE1 L2dlbV9tbWFwX2d0dC5jICAgICAgIHwgIDEwICstLQogdGVzdHMvaTkxNS9nZW1fcHdyaXRlLmMg ICAgICAgICB8ICAgNCArLQogdGVzdHMvaTkxNS9nZW1fc2hyaW5rLmMgICAgICAgICB8ICAgMiAr LQogdGVzdHMvaTkxNS9pOTE1X3BtX2xwc3AuYyAgICAgICB8ICAgMyArLQogdGVzdHMvaTkxNS9p OTE1X3BtX3JwbS5jICAgICAgICB8ICAgNCArLQogdGVzdHMva21zX2ZsaXAuYyAgICAgICAgICAg ICAgICB8ICAgMiArLQogdGVzdHMvcHJpbWVfbW1hcC5jICAgICAgICAgICAgICB8ICAgNCArLQog dG9vbHMvaW50ZWxfYXVkaW9fZHVtcC5jICAgICAgICB8ICAgOSArLS0KIHRvb2xzL2ludGVsX2Jh Y2tsaWdodC5jICAgICAgICAgfCAgIDggKy0tCiB0b29scy9pbnRlbF9kaXNwbGF5X3BvbGxlci5j ICAgIHwgICA4ICstLQogdG9vbHMvaW50ZWxfZm9yY2V3YWtlZC5jICAgICAgICB8ICAxMCArLS0K IHRvb2xzL2ludGVsX2dwdV90aW1lLmMgICAgICAgICAgfCAgIDggKy0tCiB0b29scy9pbnRlbF9n dHQuYyAgICAgICAgICAgICAgIHwgICA4ICstLQogdG9vbHMvaW50ZWxfaW5mb2ZyYW1lcy5jICAg ICAgICB8ICAgNyArLQogdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMgICAgICAgICB8ICAgMyArLQog dG9vbHMvaW50ZWxfbGlkLmMgICAgICAgICAgICAgICB8ICAgOSArLS0KIHRvb2xzL2ludGVsX3Bh bmVsX2ZpdHRlci5jICAgICAgfCAgIDggKy0tCiB0b29scy9pbnRlbF9wZXJmX2NvdW50ZXJzLmMg ICAgIHwgICAzICstCiB0b29scy9pbnRlbF9yZWcuYyAgICAgICAgICAgICAgIHwgIDIzICsrKy0t LQogdG9vbHMvaW50ZWxfcmVnX2NoZWNrZXIuYyAgICAgICB8ICAgOCArLS0KIHRvb2xzL2ludGVs X3dhdGVybWFyay5jICAgICAgICAgfCAgMjMgKysrLS0tCiAzNyBmaWxlcyBjaGFuZ2VkLCAxMzEg aW5zZXJ0aW9ucygrKSwgMjY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2JlbmNobWFya3Mv Z2VtX2xhdGVuY3kuYyBiL2JlbmNobWFya3MvZ2VtX2xhdGVuY3kuYwppbmRleCBhMjBiYmY4YTMx MGUuLmMzZmM0YmYwZjc0YyAxMDA2NDQKLS0tIGEvYmVuY2htYXJrcy9nZW1fbGF0ZW5jeS5jCisr KyBiL2JlbmNobWFya3MvZ2VtX2xhdGVuY3kuYwpAQCAtNDQsOCArNDQsNiBAQAogI2luY2x1ZGUg PHN5cy9yZXNvdXJjZS5oPgogI2luY2x1ZGUgImRybS5oIgogCi0jaW5jbHVkZSAiaWd0X2Rldmlj ZS5oIgotCiAjZGVmaW5lIExPQ0FMX0k5MTVfRVhFQ19GRU5DRV9JTiAgICAgICAgICAgICAgKDE8 PDE2KQogI2RlZmluZSBMT0NBTF9JOTE1X0VYRUNfRkVOQ0VfT1VUICAgICAgICAgICAgICgxPDwx NykKIApAQCAtNDU4LDcgKzQ1Niw3IEBAIHN0YXRpYyBpbnQgcnVuKGludCBzZWNvbmRzLAogCWlm IChnZW4gPCA2KQogCQlyZXR1cm4gSUdUX0VYSVRfU0tJUDsgLyogTmVlZHMgQkNTIHRpbWVzdGFt cCAqLwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaWd0X2RldmljZV9nZXRfcGNpX2Rl dmljZShmZCksIGZhbHNlLCBmZCk7CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxf Z2V0X3BjaV9kZXZpY2UoKSwgZmFsc2UsIGZkKTsKIAogCWlmIChnZW4gPT0gNikKIAkJdGltZXN0 YW1wX3JlZyA9IFJFRyhSQ1NfVElNRVNUQU1QKTsKZGlmZiAtLWdpdCBhL2JlbmNobWFya3MvZ2Vt X3dzaW0uYyBiL2JlbmNobWFya3MvZ2VtX3dzaW0uYwppbmRleCAyMWUyNjY4Njg1YzAuLmFmYjk2 NDRkZDdmMCAxMDA2NDQKLS0tIGEvYmVuY2htYXJrcy9nZW1fd3NpbS5jCisrKyBiL2JlbmNobWFy a3MvZ2VtX3dzaW0uYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2lu Y2x1ZGUgPHB0aHJlYWQuaD4KIAorCiAjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgogI2luY2x1 ZGUgImludGVsX3JlZy5oIgogI2luY2x1ZGUgImRybS5oIgpAQCAtNDksNyArNTAsNiBAQAogCiAj aW5jbHVkZSAiaW50ZWxfaW8uaCIKICNpbmNsdWRlICJpZ3RfYXV4LmgiCi0jaW5jbHVkZSAiaWd0 X2RldmljZS5oIgogI2luY2x1ZGUgImlndF9yYW5kLmgiCiAjaW5jbHVkZSAiaWd0X3BlcmYuaCIK ICNpbmNsdWRlICJzd19zeW5jLmgiCkBAIC0yMjIzLDcgKzIyMjMsNyBAQCBzdGF0aWMgdm9pZCBp bml0X2Nsb2Nrcyh2b2lkKQogCXVpbnQzMl90IHJjc19zdGFydCwgcmNzX2VuZDsKIAlkb3VibGUg b3ZlcmhlYWQsIHQ7CiAKLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dl dF9wY2lfZGV2aWNlKGZkKSwgZmFsc2UsIGZkKTsKKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5p dChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCBmYWxzZSwgZmQpOwogCiAJaWYgKHZlcmJvc2UgPD0g MSkKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZGVidWdnZXIvZGVidWdfcmRhdGEuYyBiL2RlYnVn Z2VyL2RlYnVnX3JkYXRhLmMKaW5kZXggZmVhOTUwMjk2NTM5Li42MWQ4MmQ5ZTUxYWQgMTAwNjQ0 Ci0tLSBhL2RlYnVnZ2VyL2RlYnVnX3JkYXRhLmMKKysrIGIvZGVidWdnZXIvZGVidWdfcmRhdGEu YwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGli Lmg+CiAjaW5jbHVkZSAiaW50ZWxfaW8uaCIKKyNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCiAK IHN0cnVjdCBldV9yZGF0YSB7CiAJdW5pb24gewpAQCAtMTMyLDExICsxMzMsNyBAQCBmaW5kX3N0 dWNrX3RocmVhZHModm9pZCkKIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewog CXN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2OwotCWludCBmZDsKLQotCWZkID0gZHJtX29wZW5f ZHJpdmVyKERSSVZFUl9JTlRFTCk7Ci0JcGNpX2RldiA9IGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZp Y2UoZmQpOwotCWNsb3NlKGZkKTsKKwlwY2lfZGV2ID0gaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKTsK IAogCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KHBjaV9kZXYsIDEpOwogCWZpbmRfc3R1Y2tf dGhyZWFkcygpOwpkaWZmIC0tZ2l0IGEvZGVidWdnZXIvZXVkYi5jIGIvZGVidWdnZXIvZXVkYi5j CmluZGV4IGI1Nzg0MTQ4NjY0ZS4uODY2ZDRiNTI0ZWQ0IDEwMDY0NAotLS0gYS9kZWJ1Z2dlci9l dWRiLmMKKysrIGIvZGVidWdnZXIvZXVkYi5jCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi ZHJtLmgiCiAjaW5jbHVkZSAiaTkxNV9kcm0uaCIKICNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5j bHVkZSAiaW50ZWxfY2hpcHNldC5oIgogI2luY2x1ZGUgImludGVsX2J1Zm1nci5oIgogI2luY2x1 ZGUgImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIKQEAgLTUwNSw3 ICs1MDYsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAJc3RydWN0IHBj aV9kZXZpY2UgKnBjaV9kZXY7CiAJdm9sYXRpbGUgdWludDhfdCAqc2NyYXRjaCA9IE5VTEw7CiAJ aW50IGJpdHNbNjRdOwotCWludCBkZXZpZCA9IC0xLCBvcHQsIGZkOworCWludCBkZXZpZCA9IC0x LCBvcHQ7CiAKIAl3aGlsZSAoKG9wdCA9IGdldG9wdChhcmdjLCBhcmd2LCAiY2RyOnBmP2giKSkg IT0gLTEpIHsKIAkJc3dpdGNoIChvcHQpIHsKQEAgLTUzMiwxMCArNTMzLDcgQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogCQl9CiAJfQogCi0JZmQgPSBkcm1fb3Blbl9kcml2 ZXIoRFJJVkVSX0lOVEVMKTsKLQlwY2lfZGV2ID0gaWd0X2RldmljZV9nZXRfcGNpX2RldmljZShm ZCk7Ci0JY2xvc2UoZmQpOwotCisJcGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7CiAJ aWYgKGRldmlkID09IC0xKQogCQlkZXZpZCA9IHBjaV9kZXYtPmRldmljZV9pZDsKIAlpZiAoaWRl bnRpZnlfZGV2aWNlKGRldmlkKSkgewpkaWZmIC0tZ2l0IGEvbGliL2lndF9kZXZpY2UuYyBiL2xp Yi9pZ3RfZGV2aWNlLmMKaW5kZXggYTJmOWJiM2FmYzE2Li4wOGYzOWM4YjE2MDUgMTAwNjQ0Ci0t LSBhL2xpYi9pZ3RfZGV2aWNlLmMKKysrIGIvbGliL2lndF9kZXZpY2UuYwpAQCAtMjYsNyArMjYs NiBAQAogI2luY2x1ZGUgPHN5cy9zeXNtYWNyb3MuaD4KICNpbmNsdWRlICJpZ3QuaCIKICNpbmNs dWRlICJpZ3RfZGV2aWNlLmgiCi0jaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCiAKIGludCBfX2lndF9k ZXZpY2Vfc2V0X21hc3RlcihpbnQgZmQpCiB7CkBAIC0xMDQsMTIyICsxMDMsMyBAQCBpbnQgaWd0 X2RldmljZV9nZXRfY2FyZF9pbmRleChpbnQgZmQpCiAKIAlyZXR1cm4gbWlub3Ioc3Quc3RfcmRl dik7CiB9Ci0KLSNkZWZpbmUgSUdUX0RFVl9QQVRIX0xFTiA4MAotCi1zdGF0aWMgYm9vbCBpZ3Rf ZGV2aWNlX2lzX3BjaShpbnQgZmQpCi17Ci0JY2hhciBwYXRoW0lHVF9ERVZfUEFUSF9MRU5dOwot CWNoYXIgKnN1YnN5c3RlbTsKLQlpbnQgc3lzZnM7Ci0JaW50IGxlbjsKLQotCXN5c2ZzID0gaWd0 X3N5c2ZzX29wZW4oZmQpOwotCWlmIChzeXNmcyA9PSAtMSkKLQkJcmV0dXJuIGZhbHNlOwotCi0J bGVuID0gcmVhZGxpbmthdChzeXNmcywgImRldmljZS9zdWJzeXN0ZW0iLCBwYXRoLCBzaXplb2Yo cGF0aCkgLSAxKTsKLQlpZiAobGVuID09IC0xKQotCQlyZXR1cm4gZmFsc2U7Ci0JcGF0aFtsZW5d ID0gJ1wwJzsKLQotCXN1YnN5c3RlbSA9IHN0cnJjaHIocGF0aCwgJy8nKTsKLQlpZiAoIXN1YnN5 c3RlbSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JcmV0dXJuIHN0cmNtcChzdWJzeXN0ZW0sICIvcGNp IikgPT0gMDsKLX0KLQotc3RydWN0IGlndF9wY2lfYWRkciB7Ci0JdW5zaWduZWQgaW50IGRvbWFp bjsKLQl1bnNpZ25lZCBpbnQgYnVzOwotCXVuc2lnbmVkIGludCBkZXZpY2U7Ci0JdW5zaWduZWQg aW50IGZ1bmN0aW9uOwotfTsKLQotc3RhdGljIGludCBpZ3RfZGV2aWNlX2dldF9wY2lfYWRkcihp bnQgZmQsIHN0cnVjdCBpZ3RfcGNpX2FkZHIgKnBjaSkKLXsKLQljaGFyIHBhdGhbSUdUX0RFVl9Q QVRIX0xFTl07Ci0JY2hhciAqYnVmOwotCWludCBzeXNmczsKLQlpbnQgbGVuOwotCi0JaWYgKCFp Z3RfZGV2aWNlX2lzX3BjaShmZCkpCi0JCXJldHVybiAtRU5PREVWOwotCi0Jc3lzZnMgPSBpZ3Rf c3lzZnNfb3BlbihmZCk7Ci0JaWYgKHN5c2ZzID09IC0xKQotCQlyZXR1cm4gLUVOT0VOVDsKLQot CWxlbiA9IHJlYWRsaW5rYXQoc3lzZnMsICJkZXZpY2UiLCBwYXRoLCBzaXplb2YocGF0aCkgLSAx KTsKLQlpZiAobGVuID09IC0xKQotCQlyZXR1cm4gLUVOT0VOVDsKLQlwYXRoW2xlbl0gPSAnXDAn OwotCi0JYnVmID0gc3RycmNocihwYXRoLCAnLycpOwotCWlmICghYnVmKQotCQlyZXR1cm4gLUVO T0VOVDsKLQotCWlmIChzc2NhbmYoYnVmLCAiLyU0eDolMng6JTJ4LiUyeCIsCi0JCSAgICZwY2kt PmRvbWFpbiwgJnBjaS0+YnVzLAotCQkgICAmcGNpLT5kZXZpY2UsICZwY2ktPmZ1bmN0aW9uKSAh PSA0KSB7Ci0JCWlndF93YXJuKCJVbmFibGUgdG8gZXh0cmFjdCBQQ0kgZGV2aWNlIGFkZHJlc3Mg ZnJvbSAnJXMnXG4iLCBidWYpOwotCQlyZXR1cm4gLUVOT0VOVDsKLQl9Ci0KLQlyZXR1cm4gMDsK LX0KLQotc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlICpfX2lndF9kZXZpY2VfZ2V0X3BjaV9kZXZp Y2UoaW50IGZkKQotewotCXN0cnVjdCBpZ3RfcGNpX2FkZHIgcGNpX2FkZHI7Ci0Jc3RydWN0IHBj aV9kZXZpY2UgKnBjaV9kZXY7Ci0KLQlpZiAoaWd0X2RldmljZV9nZXRfcGNpX2FkZHIoZmQsICZw Y2lfYWRkcikpIHsKLQkJaWd0X3dhcm4oIlVuYWJsZSB0byBmaW5kIGRldmljZSBQQ0kgYWRkcmVz c1xuIik7Ci0JCXJldHVybiBOVUxMOwotCX0KLQotCWlmIChwY2lfc3lzdGVtX2luaXQoKSkgewot CQlpZ3Rfd2FybigiQ291bGRuJ3QgaW5pdGlhbGl6ZSBQQ0kgc3lzdGVtXG4iKTsKLQkJcmV0dXJu IE5VTEw7Ci0JfQotCi0JcGNpX2RldiA9IHBjaV9kZXZpY2VfZmluZF9ieV9zbG90KHBjaV9hZGRy LmRvbWFpbiwKLQkJCQkJICBwY2lfYWRkci5idXMsCi0JCQkJCSAgcGNpX2FkZHIuZGV2aWNlLAot CQkJCQkgIHBjaV9hZGRyLmZ1bmN0aW9uKTsKLQlpZiAoIXBjaV9kZXYpIHsKLQkJaWd0X3dhcm4o IkNvdWxkbid0IGZpbmQgUENJIGRldmljZSAlMDR4OiUwMng6JTAyeDolMDJ4XG4iLAotCQkJIHBj aV9hZGRyLmRvbWFpbiwgcGNpX2FkZHIuYnVzLAotCQkJIHBjaV9hZGRyLmRldmljZSwgcGNpX2Fk ZHIuZnVuY3Rpb24pOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0KLQlpZiAocGNpX2RldmljZV9wcm9i ZShwY2lfZGV2KSkgewotCQlpZ3Rfd2FybigiQ291bGRuJ3QgcHJvYmUgUENJIGRldmljZVxuIik7 Ci0JCXJldHVybiBOVUxMOwotCX0KLQotCXJldHVybiBwY2lfZGV2OwotfQotCi0vKioKLSAqIGln dF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2U6Ci0gKgotICogQGZkOiB0aGUgZGV2aWNlCi0gKgotICog TG9va3MgdXAgdGhlIG1haW4gZ3JhcGhpY3MgcGNpIGRldmljZSB1c2luZyBsaWJwY2lhY2Nlc3Mu Ci0gKgotICogUmV0dXJuczoKLSAqIFRoZSBwY2lfZGV2aWNlLCBza2lwcyB0aGUgdGVzdCBvbiBh bnkgZmFpbHVyZXMuCi0gKi8KLXN0cnVjdCBwY2lfZGV2aWNlICppZ3RfZGV2aWNlX2dldF9wY2lf ZGV2aWNlKGludCBmZCkKLXsKLQlzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldjsKLQotCXBjaV9k ZXYgPSBfX2lndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpOwotCWlndF9yZXF1aXJlKHBjaV9k ZXYpOwotCi0JcmV0dXJuIHBjaV9kZXY7Ci19CmRpZmYgLS1naXQgYS9saWIvaWd0X2RldmljZS5o IGIvbGliL2lndF9kZXZpY2UuaAppbmRleCAyNzhiYTdhOWIzODAuLjlkN2RjMmMzOTJjYiAxMDA2 NDQKLS0tIGEvbGliL2lndF9kZXZpY2UuaAorKysgYi9saWIvaWd0X2RldmljZS5oCkBAIC0zMiw2 ICszMiw1IEBAIGludCBfX2lndF9kZXZpY2VfZHJvcF9tYXN0ZXIoaW50IGZkKTsKIHZvaWQgaWd0 X2RldmljZV9kcm9wX21hc3RlcihpbnQgZmQpOwogCiBpbnQgaWd0X2RldmljZV9nZXRfY2FyZF9p bmRleChpbnQgZmQpOwotc3RydWN0IHBjaV9kZXZpY2UgKmlndF9kZXZpY2VfZ2V0X3BjaV9kZXZp Y2UoaW50IGZkKTsKIAogI2VuZGlmIC8qIF9fSUdUX0RFVklDRV9IX18gKi8KZGlmZiAtLWdpdCBh L2xpYi9pbnRlbF9jaGlwc2V0LmMgYi9saWIvaW50ZWxfY2hpcHNldC5jCmluZGV4IDA1NzdmNzdh NDkwZC4uNDc0OGEzZmI4NTNiIDEwMDY0NAotLS0gYS9saWIvaW50ZWxfY2hpcHNldC5jCisrKyBi L2xpYi9pbnRlbF9jaGlwc2V0LmMKQEAgLTYxLDYgKzYxLDU3IEBACiAgKi8KIGVudW0gcGNoX3R5 cGUgaW50ZWxfcGNoOwogCisvKioKKyAqIGludGVsX2dldF9wY2lfZGV2aWNlOgorICoKKyAqIExv b2tzIHVwIHRoZSBtYWluIGdyYXBoaWNzIHBjaSBkZXZpY2UgdXNpbmcgbGlicGNpYWNjZXNzLgor ICoKKyAqIFJldHVybnM6CisgKiBUaGUgcGNpX2RldmljZSwgZXhpdHMgdGhlIHByb2dyYW0gb24g YW55IGZhaWx1cmVzLgorICovCitzdHJ1Y3QgcGNpX2RldmljZSAqCitpbnRlbF9nZXRfcGNpX2Rl dmljZSh2b2lkKQoreworCXN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2OworCWludCBlcnJvcjsK KworCWVycm9yID0gcGNpX3N5c3RlbV9pbml0KCk7CisJaWd0X2ZhaWxfb25fZihlcnJvciAhPSAw LAorCQkgICAgICAiQ291bGRuJ3QgaW5pdGlhbGl6ZSBQQ0kgc3lzdGVtXG4iKTsKKworCS8qIEdy YWIgdGhlIGdyYXBoaWNzIGNhcmQuIFRyeSB0aGUgY2Fub25pY2FsIHNsb3QgZmlyc3QsIHRoZW4K KwkgKiB3YWxrIHRoZSBlbnRpcmUgUENJIGJ1cyBmb3IgYSBtYXRjaGluZyBkZXZpY2UuICovCisJ cGNpX2RldiA9IHBjaV9kZXZpY2VfZmluZF9ieV9zbG90KDAsIDAsIDIsIDApOworCWlmIChwY2lf ZGV2ID09IE5VTEwgfHwgcGNpX2Rldi0+dmVuZG9yX2lkICE9IDB4ODA4NikgeworCQlzdHJ1Y3Qg cGNpX2RldmljZV9pdGVyYXRvciAqaXRlcjsKKwkJc3RydWN0IHBjaV9pZF9tYXRjaCBtYXRjaDsK KworCQltYXRjaC52ZW5kb3JfaWQgPSAweDgwODY7IC8qIEludGVsICovCisJCW1hdGNoLmRldmlj ZV9pZCA9IFBDSV9NQVRDSF9BTlk7CisJCW1hdGNoLnN1YnZlbmRvcl9pZCA9IFBDSV9NQVRDSF9B Tlk7CisJCW1hdGNoLnN1YmRldmljZV9pZCA9IFBDSV9NQVRDSF9BTlk7CisKKwkJbWF0Y2guZGV2 aWNlX2NsYXNzID0gMHgzIDw8IDE2OworCQltYXRjaC5kZXZpY2VfY2xhc3NfbWFzayA9IDB4ZmYg PDwgMTY7CisKKwkJbWF0Y2gubWF0Y2hfZGF0YSA9IDA7CisKKwkJaXRlciA9IHBjaV9pZF9tYXRj aF9pdGVyYXRvcl9jcmVhdGUoJm1hdGNoKTsKKwkJcGNpX2RldiA9IHBjaV9kZXZpY2VfbmV4dChp dGVyKTsKKwkJcGNpX2l0ZXJhdG9yX2Rlc3Ryb3koaXRlcik7CisJfQorCWlndF9yZXF1aXJlX2Yo cGNpX2RldiwgIkNvdWxkbid0IGZpbmQgSW50ZWwgZ3JhcGhpY3MgY2FyZFxuIik7CisKKwllcnJv ciA9IHBjaV9kZXZpY2VfcHJvYmUocGNpX2Rldik7CisJaWd0X2ZhaWxfb25fZihlcnJvciAhPSAw LAorCQkgICAgICAiQ291bGRuJ3QgcHJvYmUgZ3JhcGhpY3MgY2FyZFxuIik7CisKKwlpZiAocGNp X2Rldi0+dmVuZG9yX2lkICE9IDB4ODA4NikKKwkJZXJyeCgxLCAiR3JhcGhpY3MgY2FyZCBpcyBu b24taW50ZWwiKTsKKworCXJldHVybiBwY2lfZGV2OworfQorCiAvKioKICAqIGludGVsX2dldF9k cm1fZGV2aWQ6CiAgKiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yCmRpZmYgLS1n aXQgYS9saWIvaW50ZWxfY2hpcHNldC5oIGIvbGliL2ludGVsX2NoaXBzZXQuaAppbmRleCBkZDMx ZDNmYjZiZWYuLjQwMTcwYjdiZjMwZiAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2NoaXBzZXQuaAor KysgYi9saWIvaW50ZWxfY2hpcHNldC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8cGNp YWNjZXNzLmg+CiAjaW5jbHVkZSA8c3RkYm9vbC5oPgogCitzdHJ1Y3QgcGNpX2RldmljZSAqaW50 ZWxfZ2V0X3BjaV9kZXZpY2Uodm9pZCk7CiB1aW50MzJfdCBpbnRlbF9nZXRfZHJtX2RldmlkKGlu dCBmZCk7CiAKIHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyB7CmRpZmYgLS1naXQgYS9saWIvaW50 ZWxfbW1pby5jIGIvbGliL2ludGVsX21taW8uYwppbmRleCBmNWUwYmUwY2U1ODYuLmE1NDU4YWVi YWJlMiAxMDA2NDQKLS0tIGEvbGliL2ludGVsX21taW8uYworKysgYi9saWIvaW50ZWxfbW1pby5j CkBAIC0xMTIsNyArMTEyLDcgQEAgaW50ZWxfbW1pb191c2VfZHVtcF9maWxlKGNoYXIgKmZpbGUp CiAgKgogICogU2V0cyB1cCAjaWd0X2dsb2JhbF9tbWlvIHRvIHBvaW50IGF0IHRoZSBtbWlvIGJh ci4KICAqCi0gKiBAcGNpX2RldiBjYW4gYmUgb2J0YWluZWQgZnJvbSBpZ3RfZGV2aWNlX2dldF9w Y2lfZGV2aWNlKCkuCisgKiBAcGNpX2RldiBjYW4gYmUgb2J0YWluZWQgZnJvbSBpbnRlbF9nZXRf cGNpX2RldmljZSgpLgogICovCiB2b2lkCiBpbnRlbF9tbWlvX3VzZV9wY2lfYmFyKHN0cnVjdCBw Y2lfZGV2aWNlICpwY2lfZGV2KQpAQCAtMTYyLDcgKzE2Miw3IEBAIHJlbGVhc2VfZm9yY2V3YWtl X2xvY2soaW50IGZkKQogICoKICAqIEl0IGFsc28gaW5pdGlhbGl6ZXMgI2lndF9nbG9iYWxfbW1p byBsaWtlIGludGVsX21taW9fdXNlX3BjaV9iYXIoKS4KICAqCi0gKiBAcGNpX2RldiBjYW4gYmUg b2J0YWluZWQgZnJvbSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKCkuCisgKiBAcGNpX2RldiBj YW4gYmUgb2J0YWluZWQgZnJvbSBpbnRlbF9nZXRfcGNpX2RldmljZSgpLgogICovCiBpbnQKIGlu dGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KHN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2LCBpbnQg c2FmZSwgaW50IGZkKQpkaWZmIC0tZ2l0IGEvbGliL2lvY3RsX3dyYXBwZXJzLmMgYi9saWIvaW9j dGxfd3JhcHBlcnMuYwppbmRleCBhNjZlYjRiYzBmNGYuLjM5OTIwZjg3MDdkMiAxMDA2NDQKLS0t IGEvbGliL2lvY3RsX3dyYXBwZXJzLmMKKysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKQEAgLTUz LDcgKzUzLDYgQEAKICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCiAjaW5jbHVkZSAiaW50ZWxf aW8uaCIKICNpbmNsdWRlICJpZ3RfZGVidWdmcy5oIgotI2luY2x1ZGUgImlndF9kZXZpY2UuaCIK ICNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKICNpbmNsdWRlICJjb25maWcuaCIKIApAQCAtMTA5Nyw5 ICsxMDk2LDkgQEAgdWludDY0X3QgZ2VtX2FwZXJ0dXJlX3NpemUoaW50IGZkKQogICoKICAqIFJl dHVybnM6IFRoZSBtYXBwYWJsZSBndHQgYWRkcmVzcyBzcGFjZSBzaXplLgogICovCi11aW50NjRf dCBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShpbnQgZmQpCit1aW50NjRfdCBnZW1fbWFwcGFi bGVfYXBlcnR1cmVfc2l6ZSh2b2lkKQogewotCXN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2ID0g aWd0X2RldmljZV9nZXRfcGNpX2RldmljZShmZCk7CisJc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9k ZXYgPSBpbnRlbF9nZXRfcGNpX2RldmljZSgpOwogCWludCBiYXI7CiAKIAlpZiAoaW50ZWxfZ2Vu KHBjaV9kZXYtPmRldmljZV9pZCkgPCAzKQpkaWZmIC0tZ2l0IGEvbGliL2lvY3RsX3dyYXBwZXJz LmggYi9saWIvaW9jdGxfd3JhcHBlcnMuaAppbmRleCBhZDkzZGFmZmNmZDUuLmYwYmUyNjA4MGRh NiAxMDA2NDQKLS0tIGEvbGliL2lvY3RsX3dyYXBwZXJzLmgKKysrIGIvbGliL2lvY3RsX3dyYXBw ZXJzLmgKQEAgLTEzNiw3ICsxMzYsNyBAQCB1aW50NjRfdCBnZW1fdG90YWxfc3RvbGVuX3NpemUo aW50IGZkKTsKIHVpbnQ2NF90IGdlbV9hdmFpbGFibGVfYXBlcnR1cmVfc2l6ZShpbnQgZmQpOwog dWludDY0X3QgZ2VtX2FwZXJ0dXJlX3NpemUoaW50IGZkKTsKIHVpbnQ2NF90IGdlbV9nbG9iYWxf YXBlcnR1cmVfc2l6ZShpbnQgZmQpOwotdWludDY0X3QgZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3Np emUoaW50IGZkKTsKK3VpbnQ2NF90IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKHZvaWQpOwog Ym9vbCBnZW1faGFzX3NvZnRwaW4oaW50IGZkKTsKIGJvb2wgZ2VtX2hhc19leGVjX2ZlbmNlKGlu dCBmZCk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2NvbmN1cnJlbnRfYWxsLmMgYi90 ZXN0cy9pOTE1L2dlbV9jb25jdXJyZW50X2FsbC5jCmluZGV4IGY3MTliMGExOWE4My4uNjA0OTM3 MmQxYTYxIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9jb25jdXJyZW50X2FsbC5jCisrKyBi L3Rlc3RzL2k5MTUvZ2VtX2NvbmN1cnJlbnRfYWxsLmMKQEAgLTE4NTAsNyArMTg1MCw3IEBAIGln dF9tYWluCiAJCQkJIGMtPm5hbWUsIHMtPm5hbWUsICJzbWFsbCIpOwogCQkJaWd0X3N1YnRlc3Rf Z3JvdXAgewogCQkJCWlndF9maXh0dXJlIHsKLQkJCQkJY291bnQgPSBudW1fYnVmZmVycyhnZW1f bWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkvNCwKKwkJCQkJY291bnQgPSBudW1fYnVmZmVycyhn ZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpLzQsCiAJCQkJCQkJICAgIHMsIGMsIENIRUNLX1JB TSk7CiAJCQkJfQogCQkJCXJ1bl9tb2RlcyhuYW1lLCBjLCBtb2RlcywgcywgY291bnQpOwpAQCAt MTg2MSw3ICsxODYxLDcgQEAgaWd0X21haW4KIAkJCQkgYy0+bmFtZSwgcy0+bmFtZSwgInRocmFz aCIpOwogCQkJaWd0X3N1YnRlc3RfZ3JvdXAgewogCQkJCWlndF9maXh0dXJlIHsKLQkJCQkJY291 bnQgPSBudW1fYnVmZmVycyhnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCksCisJCQkJCWNv dW50ID0gbnVtX2J1ZmZlcnMoZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKSwKIAkJCQkJCQkg ICAgcywgYywgQ0hFQ0tfUkFNKTsKIAkJCQl9CiAJCQkJcnVuX21vZGVzKG5hbWUsIGMsIG1vZGVz LCBzLCBjb3VudCk7CkBAIC0xODkzLDcgKzE4OTMsNyBAQCBpZ3RfbWFpbgogCQkJCSBjLT5uYW1l LCBzLT5uYW1lLCAic2hyaW5rIik7CiAJCQlpZ3Rfc3VidGVzdF9ncm91cCB7CiAJCQkJaWd0X2Zp eHR1cmUgewotCQkJCQljb3VudCA9IG51bV9idWZmZXJzKGdlbV9tYXBwYWJsZV9hcGVydHVyZV9z aXplKGZkKSwKKwkJCQkJY291bnQgPSBudW1fYnVmZmVycyhnZW1fbWFwcGFibGVfYXBlcnR1cmVf c2l6ZSgpLAogCQkJCQkJCSAgICBzLCBjLCBDSEVDS19SQU0pOwogCiAJCQkJCWlndF9mb3JrX3No cmlua19oZWxwZXIoZmQpOwpAQCAtMTkwOSw4ICsxOTA5LDggQEAgaWd0X21haW4KIAkJCQkgYy0+ bmFtZSwgcy0+bmFtZSwgInN3YXAiKTsKIAkJCWlndF9zdWJ0ZXN0X2dyb3VwIHsKIAkJCQlpZ3Rf Zml4dHVyZSB7Ci0JCQkJCWlmIChpbnRlbF9nZXRfYXZhaWxfcmFtX21iKCkgPiBnZW1fbWFwcGFi bGVfYXBlcnR1cmVfc2l6ZShmZCkvKDEwMjQqMTAyNCkpIHsKLQkJCQkJCXBpbl9zeiA9IGludGVs X2dldF9hdmFpbF9yYW1fbWIoKSAtIGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKS8oMTAy NCoxMDI0KTsKKwkJCQkJaWYgKGludGVsX2dldF9hdmFpbF9yYW1fbWIoKSA+IGdlbV9tYXBwYWJs ZV9hcGVydHVyZV9zaXplKCkvKDEwMjQqMTAyNCkpIHsKKwkJCQkJCXBpbl9zeiA9IGludGVsX2dl dF9hdmFpbF9yYW1fbWIoKSAtIGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKCkvKDEwMjQqMTAy NCk7CiAKIAkJCQkJCWlndF9kZWJ1ZygiUGlubmluZyAlbGxkIE1pQlxuIiwgKGxvbmcgbG9uZylw aW5fc3opOwogCQkJCQkJcGluX3N6ICo9IDEwMjQgKiAxMDI0OwpAQCAtMTkyNCw3ICsxOTI0LDcg QEAgaWd0X21haW4KIAkJCQkJCWlndF9yZXF1aXJlKHBpbm5lZCk7CiAJCQkJCX0KIAotCQkJCQlj b3VudCA9IG51bV9idWZmZXJzKGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKSwKKwkJCQkJ Y291bnQgPSBudW1fYnVmZmVycyhnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpLAogCQkJCQkJ CSAgICBzLCBjLCBDSEVDS19SQU0gfCBDSEVDS19TV0FQKTsKIAkJCQl9CiAJCQkJcnVuX21vZGVz KG5hbWUsIGMsIG1vZGVzLCBzLCBjb3VudCk7CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9j cHVfcmVsb2MuYyBiL3Rlc3RzL2k5MTUvZ2VtX2NwdV9yZWxvYy5jCmluZGV4IDE3YzJmZTExNTVk YS4uNDcwOTk4NjI4NTNlIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9jcHVfcmVsb2MuYwor KysgYi90ZXN0cy9pOTE1L2dlbV9jcHVfcmVsb2MuYwpAQCAtMjgzLDcgKzI4Myw3IEBAIGlndF9t YWluCiAJCXJ1bl90ZXN0KGk5MTUsIDEpOwogCiAJaWd0X3N1YnRlc3QoImZ1bGwiKSB7Ci0JCXVp bnQ2NF90IGFwZXJfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGk5MTUpOworCQl1 aW50NjRfdCBhcGVyX3NpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpOwogCQl1bnNp Z25lZCBsb25nIGNvdW50ID0gYXBlcl9zaXplIC8gNDA5NiArIDE7CiAKIAkJaW50ZWxfcmVxdWly ZV9tZW1vcnkoY291bnQsIDQwOTYsIENIRUNLX1JBTSk7CkBAIC0yOTIsNyArMjkyLDcgQEAgaWd0 X21haW4KIAl9CiAKIAlpZ3Rfc3VidGVzdCgiZm9ya2VkIikgewotCQl1aW50NjRfdCBhcGVyX3Np emUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShpOTE1KTsKKwkJdWludDY0X3QgYXBlcl9z aXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKTsKIAkJdW5zaWduZWQgbG9uZyBjb3Vu dCA9IGFwZXJfc2l6ZSAvIDQwOTYgKyAxOwogCQlpbnQgbmNwdXMgPSBzeXNjb25mKF9TQ19OUFJP Q0VTU09SU19PTkxOKTsKIApkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5 LmMgYi90ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYwppbmRleCBmMzA4ZTA4NTFjODYuLjZk ZDE5MWVjZWUyMSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMKKysr IGIvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMKQEAgLTQwLDcgKzQwLDYgQEAKIAogI2lu Y2x1ZGUgImRybS5oIgogCi0jaW5jbHVkZSAiaWd0X2RldmljZS5oIgogI2luY2x1ZGUgImlndF9z eXNmcy5oIgogI2luY2x1ZGUgImlndF92Z2VtLmgiCiAjaW5jbHVkZSAiaWd0X2R1bW15bG9hZC5o IgpAQCAtNjgwLDcgKzY3OSw3IEBAIGlndF9tYWluCiAJCWlmIChyaW5nX3NpemUgPiAxMDI0KQog CQkJcmluZ19zaXplID0gMTAyNDsKIAotCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3Rf ZGV2aWNlX2dldF9wY2lfZGV2aWNlKGRldmljZSksIGZhbHNlLCBkZXZpY2UpOworCQlpbnRlbF9y ZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCBmYWxzZSwgZGV2aWNl KTsKIAkJcmNzX2Nsb2NrID0gY2xvY2tyYXRlKGRldmljZSwgUkNTX1RJTUVTVEFNUCk7CiAJCWln dF9pbmZvKCJSQ1MgdGltZXN0YW1wIGNsb2NrOiAlLjBmS0h6LCAlLjFmbnNcbiIsCiAJCQkgcmNz X2Nsb2NrIC8gMWUzLCAxZTkgLyByY3NfY2xvY2spOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9n ZW1fZXhlY19wYXJzZS5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19wYXJzZS5jCmluZGV4IGQzYjg0 OGUyYTEwNi4uNjJlOGQwYTUxZDBiIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX3Bh cnNlLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19wYXJzZS5jCkBAIC0zMCw4ICszMCw2IEBA CiAKICNpbmNsdWRlIDxkcm0uaD4KIAotI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKLQogI2lmbmRl ZiBJOTE1X1BBUkFNX0NNRF9QQVJTRVJfVkVSU0lPTgogI2RlZmluZSBJOTE1X1BBUkFNX0NNRF9Q QVJTRVJfVkVSU0lPTiAgICAgICAyOAogI2VuZGlmCkBAIC01MzIsNyArNTMwLDcgQEAgaWd0X21h aW4KICN1bmRlZiBSRUcKIAogCQlpZ3RfZml4dHVyZSB7Ci0JCQlpbnRlbF9yZWdpc3Rlcl9hY2Nl c3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKSwgMCwgZmQpOworCQkJaW50ZWxf cmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgZmQpOwogCQl9 CiAKIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGxyaXMpOyBpKyspIHsKZGlmZiAt LWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX21tYXAuYyBiL3Rlc3RzL2k5MTUvZ2VtX21tYXAuYwppbmRl eCAyMjdhZTdjYTc0MmIuLjFmNTM0OGQ5MTMzYiAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1f bW1hcC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX21tYXAuYwpAQCAtNTMsMTAgKzUzLDEwIEBAIHRl c3RfaHVnZV9ibyhpbnQgaHVnZSkKIAogCXN3aXRjaCAoaHVnZSkgewogCWNhc2UgLTE6Ci0JCWh1 Z2Vfb2JqZWN0X3NpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgLyAyOworCQlo dWdlX29iamVjdF9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKSAvIDI7CiAJCWJy ZWFrOwogCWNhc2UgMDoKLQkJaHVnZV9vYmplY3Rfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVy ZV9zaXplKGZkKSArIFBBR0VfU0laRTsKKwkJaHVnZV9vYmplY3Rfc2l6ZSA9IGdlbV9tYXBwYWJs ZV9hcGVydHVyZV9zaXplKCkgKyBQQUdFX1NJWkU7CiAJCWJyZWFrOwogCWNhc2UgMToKIAkJaHVn ZV9vYmplY3Rfc2l6ZSA9IGdlbV9hcGVydHVyZV9zaXplKGZkKSArIFBBR0VfU0laRTsKZGlmZiAt LWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX21tYXBfZ3R0LmMgYi90ZXN0cy9pOTE1L2dlbV9tbWFwX2d0 dC5jCmluZGV4IDYzOWRlMTkwMjE2OC4uNTg5MjJlZTMyNzUyIDEwMDY0NAotLS0gYS90ZXN0cy9p OTE1L2dlbV9tbWFwX2d0dC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX21tYXBfZ3R0LmMKQEAgLTU2 Miw3ICs1NjIsNyBAQCB0ZXN0X2h1Z2VfYm8oaW50IGZkLCBpbnQgaHVnZSwgaW50IHRpbGluZykK IAogCXN3aXRjaCAoaHVnZSkgewogCWNhc2UgLTE6Ci0JCXNpemUgPSBnZW1fbWFwcGFibGVfYXBl cnR1cmVfc2l6ZShmZCkgLyAyOworCQlzaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUo KSAvIDI7CiAKIAkJLyogUG93ZXIgb2YgdHdvIGZlbmNlIHNpemUsIG5hdHVyYWwgZmVuY2UKIAkJ ICogYWxpZ25tZW50LCBhbmQgdGhlIGd1YXJkIHBhZ2UgYXQgdGhlIGVuZApAQCAtNTc3LDcgKzU3 Nyw3IEBAIHRlc3RfaHVnZV9ibyhpbnQgZmQsIGludCBodWdlLCBpbnQgdGlsaW5nKQogCQkJc2l6 ZSAvPSAyOwogCQlicmVhazsKIAljYXNlIDA6Ci0JCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1 cmVfc2l6ZShmZCkgKyBQQUdFX1NJWkU7CisJCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVf c2l6ZSgpICsgUEFHRV9TSVpFOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlzaXplID0gZ2VtX2ds b2JhbF9hcGVydHVyZV9zaXplKGZkKSArIFBBR0VfU0laRTsKQEAgLTY1OCwxMyArNjU4LDEzIEBA IHRlc3RfaHVnZV9jb3B5KGludCBmZCwgaW50IGh1Z2UsIGludCB0aWxpbmdfYSwgaW50IHRpbGlu Z19iLCBpbnQgbmNwdXMpCiAKIAlzd2l0Y2ggKGh1Z2UpIHsKIAljYXNlIC0yOgotCQlodWdlX29i amVjdF9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoZmQpIC8gNDsKKwkJaHVnZV9v YmplY3Rfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKCkgLyA0OwogCQlicmVhazsK IAljYXNlIC0xOgotCQlodWdlX29iamVjdF9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3Np emUoZmQpIC8gMjsKKwkJaHVnZV9vYmplY3Rfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9z aXplKCkgLyAyOwogCQlicmVhazsKIAljYXNlIDA6Ci0JCWh1Z2Vfb2JqZWN0X3NpemUgPSBnZW1f bWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgKyBQQUdFX1NJWkU7CisJCWh1Z2Vfb2JqZWN0X3Np emUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpICsgUEFHRV9TSVpFOwogCQlicmVhazsK IAljYXNlIDE6CiAJCWh1Z2Vfb2JqZWN0X3NpemUgPSBnZW1fZ2xvYmFsX2FwZXJ0dXJlX3NpemUo ZmQpICsgUEFHRV9TSVpFOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fcHdyaXRlLmMgYi90 ZXN0cy9pOTE1L2dlbV9wd3JpdGUuYwppbmRleCA1Y2FlMTIxYTczODQuLjY5NmJkMzE2YWI3YyAx MDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fcHdyaXRlLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1f cHdyaXRlLmMKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9iaWdfY3B1KGludCBm ZCwgaW50IHNjYWxlLCB1bnNpZ25lZCBmbGFncykKIAogCXN3aXRjaCAoc2NhbGUpIHsKIAljYXNl IDA6Ci0JCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgKyA0MDk2OworCQlz aXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKSArIDQwOTY7CiAJCWJyZWFrOwogCWNh c2UgMToKIAkJc2l6ZSA9IGdlbV9nbG9iYWxfYXBlcnR1cmVfc2l6ZShmZCkgKyA0MDk2OwpAQCAt MTUxLDcgKzE1MSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfYmlnX2d0dChpbnQgZmQsIGludCBzY2Fs ZSwgdW5zaWduZWQgZmxhZ3MpCiAJaWd0X3JlcXVpcmUoZ2VtX21tYXBfX2hhc193YyhmZCkpOwog CXN3aXRjaCAoc2NhbGUpIHsKIAljYXNlIDA6Ci0JCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1 cmVfc2l6ZShmZCkgKyA0MDk2OworCQlzaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUo KSArIDQwOTY7CiAJCWJyZWFrOwogCWNhc2UgMToKIAkJc2l6ZSA9IGdlbV9nbG9iYWxfYXBlcnR1 cmVfc2l6ZShmZCkgKyA0MDk2OwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fc2hyaW5rLmMg Yi90ZXN0cy9pOTE1L2dlbV9zaHJpbmsuYwppbmRleCBmNzFhMWZjYjkxMTMuLjNlOGI4ZjJkY2Rm ZCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fc2hyaW5rLmMKKysrIGIvdGVzdHMvaTkxNS9n ZW1fc2hyaW5rLmMKQEAgLTQxMyw3ICs0MTMsNyBAQCBpZ3RfbWFpbgogCQkgKiB3ZSBleHBlY3Qg dGhlIHNocmlua2VyIHRvIHN0YXJ0IHB1cmdpbmcgb2JqZWN0cywKIAkJICogYW5kIHBvc3NpYmx5 IGZhaWwuCiAJCSAqLwotCQlhbGxvY19zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUo ZmQpIC8gMjsKKwkJYWxsb2Nfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKCkgLyAy OwogCQludW1fcHJvY2Vzc2VzID0gMSArIChtZW1fc2l6ZSAvIChhbGxvY19zaXplID4+IDIwKSk7 CiAKIAkJaWd0X2luZm8oIlVzaW5nICVkIHByb2Nlc3NlcyBhbmQgJSdsbHVNaUIgcGVyIHByb2Nl c3NcbiIsCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2k5MTVfcG1fbHBzcC5jIGIvdGVzdHMvaTkx NS9pOTE1X3BtX2xwc3AuYwppbmRleCA0ZTdjZTM5OWQ4MTMuLmIzMTlkYmU5YTBiNyAxMDA2NDQK LS0tIGEvdGVzdHMvaTkxNS9pOTE1X3BtX2xwc3AuYworKysgYi90ZXN0cy9pOTE1L2k5MTVfcG1f bHBzcC5jCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDx1 bmlzdGQuaD4KIAotI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKIAogc3RhdGljIGJvb2wgc3VwcG9y dHNfbHBzcCh1aW50MzJfdCBkZXZpZCkKIHsKQEAgLTIxMSw3ICsyMTAsNyBAQCBpZ3RfbWFpbgog CiAJCWlndF9yZXF1aXJlKHN1cHBvcnRzX2xwc3AoZGV2aWQpKTsKIAotCQlpbnRlbF9yZWdpc3Rl cl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGRybV9mZCksIDAsIGRybV9m ZCk7CisJCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCks IDAsIGRybV9mZCk7CiAKIAkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwogCX0KZGlm ZiAtLWdpdCBhL3Rlc3RzL2k5MTUvaTkxNV9wbV9ycG0uYyBiL3Rlc3RzL2k5MTUvaTkxNV9wbV9y cG0uYwppbmRleCAxOGFkYWY2YjU3NTEuLjAzZGU2MDljYmZjYiAxMDA2NDQKLS0tIGEvdGVzdHMv aTkxNS9pOTE1X3BtX3JwbS5jCisrKyBiL3Rlc3RzL2k5MTUvaTkxNV9wbV9ycG0uYwpAQCAtMTM2 OCw3ICsxMzY4LDcgQEAgc3RhdGljIHZvaWQgZ2VtX2V2aWN0X3B3cml0ZV9zdWJ0ZXN0KHZvaWQp CiAJdW5zaWduZWQgaW50IG51bV90cmFzaF9ib3MsIG47CiAJdWludDMyX3QgYnVmOwogCi0JbnVt X3RyYXNoX2JvcyA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGRybV9mZCkgLyAoMTAyNCox MDI0KSArIDE7CisJbnVtX3RyYXNoX2JvcyA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKCkg LyAoMTAyNCoxMDI0KSArIDE7CiAJdHJhc2hfYm9zID0gbWFsbG9jKG51bV90cmFzaF9ib3MgKiBz aXplb2YoKnRyYXNoX2JvcykpOwogCWlndF9hc3NlcnQodHJhc2hfYm9zKTsKIApAQCAtMTQxMiw3 ICsxNDEyLDcgQEAgc3RhdGljIGJvb2wgZGV2aWNlX2luX3BjaV9kMyh2b2lkKQogCXVpbnQxNl90 IHZhbDsKIAlpbnQgcmM7CiAKLQlyYyA9IHBjaV9kZXZpY2VfY2ZnX3JlYWRfdTE2KGlndF9kZXZp Y2VfZ2V0X3BjaV9kZXZpY2UoZHJtX2ZkKSwgJnZhbCwgMHhkNCk7CisJcmMgPSBwY2lfZGV2aWNl X2NmZ19yZWFkX3UxNihpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAmdmFsLCAweGQ0KTsKIAlpZ3Rf YXNzZXJ0X2VxKHJjLCAwKTsKIAogCWlndF9kZWJ1ZygiJXM6IFBDSSBEMyBzdGF0ZT0lZFxuIiwg X19mdW5jX18sIHZhbCAmIDB4Myk7CmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZmxpcC5jIGIvdGVz dHMva21zX2ZsaXAuYwppbmRleCA2ZWNlMWU1M2JjZTMuLmRmYTVhNjllOGYyOCAxMDA3NTUKLS0t IGEvdGVzdHMva21zX2ZsaXAuYworKysgYi90ZXN0cy9rbXNfZmxpcC5jCkBAIC0xMjI0LDcgKzEy MjQsNyBAQCBzdGF0aWMgdm9pZCBydW5fdGVzdF9vbl9jcnRjX3NldChzdHJ1Y3QgdGVzdF9vdXRw dXQgKm8sIGludCAqY3J0Y19pZHhzLAogCS8qIDI1NiBNQiBpcyB1c3VhbGx5IHRoZSBtYXhpbXVt IG1hcHBhYmxlIGFwZXJ0dXJlLAogCSAqIChtYWtlIGl0IDR4IHRpbWVzIHRoYXQgdG8gZW5zdXJl IGZhaWx1cmUpICovCiAJaWYgKG8tPmZsYWdzICYgVEVTVF9CT19UT09CSUcpIHsKLQkJYm9fc2l6 ZSA9IDQqZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoZHJtX2ZkKTsKKwkJYm9fc2l6ZSA9IDQq Z2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKTsKIAkJaWd0X3JlcXVpcmUoYm9fc2l6ZSA8IGdl bV9nbG9iYWxfYXBlcnR1cmVfc2l6ZShkcm1fZmQpKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3Rlc3Rz L3ByaW1lX21tYXAuYyBiL3Rlc3RzL3ByaW1lX21tYXAuYwppbmRleCAwNmE2NmNhYjc0OTQuLmZj OTg1Nzg0NDA3YiAxMDA2NDQKLS0tIGEvdGVzdHMvcHJpbWVfbW1hcC5jCisrKyBiL3Rlc3RzL3By aW1lX21tYXAuYwpAQCAtNDQ3LDggKzQ0Nyw4IEBAIHRlc3RfYXBlcnR1cmVfbGltaXQodm9pZCkK IAljaGFyICpwdHIxLCAqcHRyMjsKIAl1aW50MzJfdCBoYW5kbGUxLCBoYW5kbGUyOwogCS8qIFR3 byBidWZmZXJzIHRoZSBzdW0gb2Ygd2hpY2ggPiBtYXBwYWJsZSBhcGVydHVyZSAqLwotCXVpbnQ2 NF90IHNpemUxID0gKGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKSAqIDcpIC8gODsKLQl1 aW50NjRfdCBzaXplMiA9IChnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgKiAzKSAvIDg7 CisJdWludDY0X3Qgc2l6ZTEgPSAoZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKSAqIDcpIC8g ODsKKwl1aW50NjRfdCBzaXplMiA9IChnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpICogMykg LyA4OwogCiAJaGFuZGxlMSA9IGdlbV9jcmVhdGUoZmQsIHNpemUxKTsKIAlmaWxsX2JvKGhhbmRs ZTEsIEJPX1NJWkUpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfYXVkaW9fZHVtcC5jIGIvdG9v bHMvaW50ZWxfYXVkaW9fZHVtcC5jCmluZGV4IDM1MGEyMWQ5ZmEzMC4uOTAyNjBhMmZlMDA3IDEw MDY0NAotLS0gYS90b29scy9pbnRlbF9hdWRpb19kdW1wLmMKKysrIGIvdG9vbHMvaW50ZWxfYXVk aW9fZHVtcC5jCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVk ZSA8ZXJyLmg+CiAjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0jaW5jbHVkZSAiaWd0X2RldmljZS5o IgogI2luY2x1ZGUgImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCiAjaW5jbHVk ZSAiaW50ZWxfY2hpcHNldC5oIgpAQCAtMjQ2NSwxMiArMjQ2NCw4IEBAIHN0YXRpYyB2b2lkIGR1 bXBfYnJhc3dlbGwodm9pZCkKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlz dHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldjsKLQlpbnQgZmQ7Ci0KLQlmZCA9IGRybV9vcGVuX2Ry aXZlcihEUklWRVJfSU5URUwpOwotCXBjaV9kZXYgPSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNl KGZkKTsKLQljbG9zZShmZCk7CiAKKwlwY2lfZGV2ID0gaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKTsK IAlkZXZpZCA9IHBjaV9kZXYtPmRldmljZV9pZDsgLyogWFhYIG5vdCB0cnVlIHdoZW4gbWFwcGlu ZyEgKi8KIAogCWRvX3NlbGZfdGVzdHMoKTsKQEAgLTI0OTgsNyArMjQ5Myw1IEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJZHVtcF9lYWdsZWxha2UoKTsKIAl9CiAKLQljbG9z ZShmZCk7Ci0KIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2JhY2tsaWdo dC5jIGIvdG9vbHMvaW50ZWxfYmFja2xpZ2h0LmMKaW5kZXggZmM0NWQ5ODUzNDMwLi4wNjdmZDQx ODA5NjggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ludGVsX2JhY2tsaWdodC5jCisrKyBiL3Rvb2xzL2lu dGVsX2JhY2tsaWdodC5jCkBAIC0zMCw5ICszMCw4IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNp bmNsdWRlIDxzdHJpbmcuaD4KIAotI2luY2x1ZGUgImRybXRlc3QuaCIKLSNpbmNsdWRlICJpZ3Rf ZGV2aWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfaW8uaCIKKyNpbmNsdWRlICJpbnRlbF9jaGlwc2V0 LmgiCiAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCiAKIC8qIFhYWCBQQ0ggb25seSB0b2RheSAqLwpA QCAtNDAsMTEgKzM5LDggQEAKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKIAl1 aW50MzJfdCBjdXJyZW50LCBtYXg7Ci0JaW50IGZkOwogCi0JZmQgPSBkcm1fb3Blbl9kcml2ZXIo RFJJVkVSX0lOVEVMKTsKLQlpbnRlbF9tbWlvX3VzZV9wY2lfYmFyKGlndF9kZXZpY2VfZ2V0X3Bj aV9kZXZpY2UoZmQpKTsKLQljbG9zZShmZCk7CisJaW50ZWxfbW1pb191c2VfcGNpX2JhcihpbnRl bF9nZXRfcGNpX2RldmljZSgpKTsKIAogCWN1cnJlbnQgPSBJTlJFRyhCTENfUFdNX0NQVV9DVEwp ICYgQkFDS0xJR0hUX0RVVFlfQ1lDTEVfTUFTSzsKIAltYXggPSBJTlJFRyhCTENfUFdNX1BDSF9D VEwyKSA+PiAxNjsKZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2Rpc3BsYXlfcG9sbGVyLmMgYi90 b29scy9pbnRlbF9kaXNwbGF5X3BvbGxlci5jCmluZGV4IDI5MzU3NGYyNGFhZC4uNTFmNWI5YTU4 YWQxIDEwMDY0NAotLS0gYS90b29scy9pbnRlbF9kaXNwbGF5X3BvbGxlci5jCisrKyBiL3Rvb2xz L2ludGVsX2Rpc3BsYXlfcG9sbGVyLmMKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJpbnRl bF9pby5oIgogI2luY2x1ZGUgImludGVsX3JlZy5oIgogI2luY2x1ZGUgImlndF9kZWJ1Z2ZzLmgi Ci0jaW5jbHVkZSAiaWd0X2RldmljZS5oIgogI2luY2x1ZGUgImRybXRlc3QuaCIKICNpbmNsdWRl ICJpZ3RfYXV4LmgiCiAKQEAgLTk3Miw3ICs5NzEsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdKQogCXVpbnQzMl90IGEsIGI7CiAJZW51bSB0ZXN0IHRlc3QgPSBURVNUX0lOVkFM SUQ7CiAJY29uc3QgaW50IGNvdW50ID0gQVJSQVlfU0laRShtaW4pLzI7Ci0JaW50IGZkOwogCiAJ Zm9yICg7OykgewogCQlzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9 IHsKQEAgLTEwNDgsOCArMTA0Niw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAJCX0KIAl9CiAKLQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwotCWRldmlk ID0gaWd0X2RldmljZV9nZXRfcGNpX2RldmljZShmZCktPmRldmljZV9pZDsKKwlkZXZpZCA9IGlu dGVsX2dldF9wY2lfZGV2aWNlKCktPmRldmljZV9pZDsKIAogCS8qCiAJICogY2hlY2sgaWYgdGhl IHJlcXVpcmVzIHJlZ2lzdGVycyBhcmUKQEAgLTExOTAsNyArMTE4Nyw3IEBAIGludCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCiAJCWJyZWFrOwogCX0KIAotCWludGVsX3JlZ2lzdGVyX2Fj Y2Vzc19pbml0KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpLCAwLCAtMSk7CisJaW50ZWxf cmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwogCiAJ cHJpbnRmKCIlcz9cbiIsIHRlc3RfbmFtZSh0ZXN0LCBwaXBlLCBiaXQsIHRlc3RfcGl4ZWxjb3Vu dCkpOwogCkBAIC0xMjY2LDcgKzEyNjMsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCX0KIAogCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCk7Ci0JY2xvc2UoZmQpOwog CiAJaWYgKHF1aXQpCiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfZm9yY2V3 YWtlZC5jIGIvdG9vbHMvaW50ZWxfZm9yY2V3YWtlZC5jCmluZGV4IDdkMzIzMzdhZDI3My4uMDJm YmY4ODgwNjA0IDEwMDY0NAotLS0gYS90b29scy9pbnRlbF9mb3JjZXdha2VkLmMKKysrIGIvdG9v bHMvaW50ZWxfZm9yY2V3YWtlZC5jCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSA8c3RkbGli Lmg+CiAjaW5jbHVkZSA8c3lzbG9nLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSAi aWd0X2RldmljZS5oIgogI2luY2x1ZGUgImludGVsX2lvLmgiCisjaW5jbHVkZSAiaW50ZWxfY2hp cHNldC5oIgogI2luY2x1ZGUgImRybXRlc3QuaCIKIAogYm9vbCBkYWVtb25pemVkOwpAQCAtNjUs NyArNjUsNiBAQCBpc19hbGl2ZSh2b2lkKSB7CiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogewogCWludCByZXQ7Ci0JaW50IGZkOwogCiAJaWYgKGFyZ2MgPiAyIHx8IChhcmdjID09 IDIgJiYgIXN0cm5jbXAoYXJndlsxXSwgIi1oIiwgMikpKSB7CiAJCWhlbHAoYXJndlsxXSk7CkBA IC04MSwyNyArODAsMjQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJSU5G T19QUklOVCgic3RhcnRlZCBkYWVtb24iKTsKIAl9CiAKLQlmZCA9IGRybV9vcGVuX2RyaXZlcihE UklWRVJfSU5URUwpOwotCXJldCA9IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9kZXZp Y2VfZ2V0X3BjaV9kZXZpY2UoZmQpLCAxLCAtMSk7CisJcmV0ID0gaW50ZWxfcmVnaXN0ZXJfYWNj ZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMSwgLTEpOwogCWlmIChyZXQpIHsKIAkJ SU5GT19QUklOVCgiQ291bGRuJ3QgaW5pdCByZWdpc3RlciBhY2Nlc3NcbiIpOwogCQlleGl0KDEp OwogCX0gZWxzZSB7CiAJCUlORk9fUFJJTlQoIkZvcmNld2FrZSBsb2NrZWRcbiIpOwogCX0KLQog CXdoaWxlKDEpIHsKIAkJaWYgKCFpc19hbGl2ZSgpKSB7CiAJCQlJTkZPX1BSSU5UKCJncHUgcmVz ZXQ/IHJlc3RhcnRpbmcgZGFlbW9uXG4iKTsKIAkJCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5p KCk7Ci0JCQlyZXQgPSBpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9w Y2lfZGV2aWNlKGZkKSwgMSwgLTEpOworCQkJcmV0ID0gaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2lu aXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMSwgLTEpOwogCQkJaWYgKHJldCkKIAkJCQlJTkZP X1BSSU5UKCJSZWcgYWNjZXNzIGluaXQgZmFpbFxuIik7CiAJCX0KIAkJc2xlZXAoMSk7CiAJfQog CWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCk7Ci0JY2xvc2UoZmQpOwogCUlORk9fUFJJTlQo IkZvcmNld2FrZSB1bmxvY2tcbiIpOwogCiAJaWYgKGRhZW1vbml6ZWQpIHsKZGlmZiAtLWdpdCBh L3Rvb2xzL2ludGVsX2dwdV90aW1lLmMgYi90b29scy9pbnRlbF9ncHVfdGltZS5jCmluZGV4IDBm YzczZjkyMDQzZC4uNTZkNjVmZTA3OTY3IDEwMDY0NAotLS0gYS90b29scy9pbnRlbF9ncHVfdGlt ZS5jCisrKyBiL3Rvb2xzL2ludGVsX2dwdV90aW1lLmMKQEAgLTM0LDkgKzM0LDggQEAKICNpbmNs dWRlIDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDxzeXMvd2FpdC5oPgogCi0jaW5jbHVkZSAi ZHJtdGVzdC5oIgotI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKICNpbmNsdWRlICJpbnRlbF9pby5o IgorI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKICNpbmNsdWRlICJpbnRlbF9yZWcuaCIKIAog I2RlZmluZSBTQU1QTEVTX1BFUl9TRUMgICAgICAgICAgICAgMTAwMDAKQEAgLTY3LDExICs2Niw4 IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlzdHJ1Y3QgdGltZXZhbCBzdGFy dCwgZW5kOwogCXN0YXRpYyBzdHJ1Y3QgcnVzYWdlIHJ1c2FnZTsKIAlpbnQgc3RhdHVzOwotCWlu dCBmZDsKIAotCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Ci0JaW50ZWxfbW1p b191c2VfcGNpX2JhcihpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKSk7Ci0JY2xvc2UoZmQp OworCWludGVsX21taW9fdXNlX3BjaV9iYXIoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSk7CiAKIAlp ZiAoYXJnYyA9PSAxKSB7CiAJCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIGNtZCBbYXJncy4u Ll1cbiIsIGFyZ3ZbMF0pOwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfZ3R0LmMgYi90b29scy9p bnRlbF9ndHQuYwppbmRleCA1NzQwZTc5NGU4ODcuLjMxMTY5NGJhYWI3YSAxMDA2NDQKLS0tIGEv dG9vbHMvaW50ZWxfZ3R0LmMKKysrIGIvdG9vbHMvaW50ZWxfZ3R0LmMKQEAgLTM0LDggKzM0LDYg QEAKICNpbmNsdWRlIDxwY2lhY2Nlc3MuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KIAotI2luY2x1 ZGUgImRybXRlc3QuaCIKLSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxf aW8uaCIKICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCiAKQEAgLTE0MiwxNyArMTQwLDEzIEBA IGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3QgcGNpX2RldmljZSAq cGNpX2RldjsKIAl1bnNpZ25lZCBpbnQgc3RhcnQsIGd0dF9zaXplOwotCWludCBmZDsKIAlpbnQg ZmxhZ1tdID0gewogCQlQQ0lfREVWX01BUF9GTEFHX1dSSVRFX0NPTUJJTkUsCiAJCVBDSV9ERVZf TUFQX0ZMQUdfV1JJVEFCTEUsCiAJCTAKIAl9LCBmOwogCi0JZmQgPSBkcm1fb3Blbl9kcml2ZXIo RFJJVkVSX0lOVEVMKTsKLQlwY2lfZGV2ID0gaWd0X2RldmljZV9nZXRfcGNpX2RldmljZShmZCk7 Ci0JY2xvc2UoZmQpOwotCisJcGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7CiAJZGV2 aWQgPSBwY2lfZGV2LT5kZXZpY2VfaWQ7CiAKIAlpZiAoSVNfR0VOMihkZXZpZCkpIHsKZGlmZiAt LWdpdCBhL3Rvb2xzL2ludGVsX2luZm9mcmFtZXMuYyBiL3Rvb2xzL2ludGVsX2luZm9mcmFtZXMu YwppbmRleCA5MTI5NTcyYTIwMDcuLjJlZjVkNGZkZDAyMCAxMDA2NDQKLS0tIGEvdG9vbHMvaW50 ZWxfaW5mb2ZyYW1lcy5jCisrKyBiL3Rvb2xzL2ludGVsX2luZm9mcmFtZXMuYwpAQCAtMzAsNyAr MzAsNiBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1 ZGUgPGdldG9wdC5oPgotI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKICNpbmNsdWRlICJpbnRlbF9p by5oIgogI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKICNpbmNsdWRlICJkcm10ZXN0LmgiCkBA IC0xMDgyLDcgKzEwODEsNiBAQCBwcmludGYoIk9wdGlvbnM6XG4iCiBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKQogewogCWludCBvcHQ7Ci0JaW50IGZkOwogCWludCByZXQgPSAwOwog CVRyYW5zY29kZXIgdHJhbnNjb2RlciA9IFRSQU5TQ19JTlZBTElEOwogCURpcFR5cGUgZGlwID0g RElQX0lOVkFMSUQ7CkBAIC0xMTA5LDEwICsxMTA3LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKIAlwcmludGYoIldBUk5JTkc6IFRoaXMgaXMganVzdCBhIGRlYnVnZ2luZyB0 b29sISBEb24ndCBleHBlY3QgaXQgdG8gd29yayIKIAkgICAgICAgIiBwZXJmZWN0bHk6IHRoZSBL ZXJuZWwgbWlnaHQgdW5kbyBvdXIgY2hhbmdlcy5cbiIpOwogCi0JZmQgPSBkcm1fb3Blbl9kcml2 ZXIoRFJJVkVSX0lOVEVMKTsKLQlwY2lfZGV2ID0gaWd0X2RldmljZV9nZXRfcGNpX2RldmljZShm ZCk7Ci0JY2xvc2UoZmQpOwotCisJcGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7CiAJ aW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQocGNpX2RldiwgMCwgLTEpOwogCWludGVsX2NoZWNr X3BjaCgpOwogCmRpZmYgLS1naXQgYS90b29scy9pbnRlbF9sM19wYXJpdHkuYyBiL3Rvb2xzL2lu dGVsX2wzX3Bhcml0eS5jCmluZGV4IGUyZTQ1MDNhMTI0NC4uZDhjOTk3YWY5Yjk3IDEwMDY0NAot LS0gYS90b29scy9pbnRlbF9sM19wYXJpdHkuYworKysgYi90b29scy9pbnRlbF9sM19wYXJpdHku YwpAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgPGdldG9wdC5oPgogI2luY2x1ZGUgImludGVs X2NoaXBzZXQuaCIKICNpbmNsdWRlICJpbnRlbF9pby5oIgotI2luY2x1ZGUgImlndF9kZXZpY2Uu aCIKICNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKICNpbmNsdWRlICJkcm10ZXN0LmgiCiAjaW5jbHVk ZSAiY29uZmlnLmgiCkBAIC0xOTAsNyArMTg5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkKIAlpZiAoaW50ZWxfZ2VuKGRldmlkKSA8IDcgfHwgSVNfVkFMTEVZVklFVyhkZXZp ZCkpCiAJCWV4aXQoNzcpOwogCi0JYXNzZXJ0KGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGln dF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZGV2aWNlKSwgMCwgZGV2aWNlKSA9PSAwKTsKKwlhc3Nl cnQoaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwg ZGV2aWNlKSA9PSAwKTsKIAogCWRpciA9IGlndF9zeXNmc19vcGVuKGRldmljZSk7CiAKZGlmZiAt LWdpdCBhL3Rvb2xzL2ludGVsX2xpZC5jIGIvdG9vbHMvaW50ZWxfbGlkLmMKaW5kZXggNDQ3Nzkw ZDljNTQ1Li4zN2M2YmE1ZTQ0M2YgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ludGVsX2xpZC5jCisrKyBi L3Rvb2xzL2ludGVsX2xpZC5jCkBAIC0zNywxMCArMzcsOSBAQAogI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAKLSNpbmNsdWRlICJkcm10ZXN0LmgiCi0jaW5j bHVkZSAiaWd0X2RldmljZS5oIgogI2luY2x1ZGUgImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaW50 ZWxfcmVnLmgiCisjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgogCiAjZGVmaW5lIFNXRjE0X0xJ RF9TVEFUVVNfQ0xPU0VECSgxPDwyOSkgLyogMCBoZXJlIG1lYW5zIG9wZW4gKi8KIApAQCAtMTE5 LDExICsxMTgsOCBAQCBvdXQ6CiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJ aW50IHN3ZjE0LCBhY3BpX2xpZDsKLQlpbnQgZmQ7CiAKLQlmZCA9IGRybV9vcGVuX2RyaXZlcihE UklWRVJfSU5URUwpOwotCWludGVsX21taW9fdXNlX3BjaV9iYXIoaWd0X2RldmljZV9nZXRfcGNp X2RldmljZShmZCkpOwotCWNsb3NlKGZkKTsKKwlpbnRlbF9tbWlvX3VzZV9wY2lfYmFyKGludGVs X2dldF9wY2lfZGV2aWNlKCkpOwogCiAJd2hpbGUgKDEpIHsKIAkJc3dmMTQgPSBJTlJFRyhTV0Yx NCk7CkBAIC0xNDYsNiArMTQyLDUgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQog CQl9CiAJCXNsZWVwKDIpOwogCX0KLQogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMv aW50ZWxfcGFuZWxfZml0dGVyLmMgYi90b29scy9pbnRlbF9wYW5lbF9maXR0ZXIuYwppbmRleCAw NmY0YWM1OTZmNWMuLjEzN2VmNjFhYmU1OSAxMDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfcGFuZWxf Zml0dGVyLmMKKysrIGIvdG9vbHMvaW50ZWxfcGFuZWxfZml0dGVyLmMKQEAgLTMwLDcgKzMwLDYg QEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxz dHJpbmcuaD4KLSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfaW8uaCIK ICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCiAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCkBAIC0y NzQsMTcgKzI3MywxMyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlib29s IGRvX2Rpc2FibGUgPSBmYWxzZSwgZG9fZHVtcCA9IGZhbHNlLCBkb191c2FnZSA9IGZhbHNlOwog CXN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2OwogCXVpbnQzMl90IGRldmlkOwotCWludCBmZDsK IAogCXByaW50ZigiV0FSTklORzpcbiIKIAkgICAgICAgIlRoaXMgdG9vbCBpcyBhIHdvcmthcm91 bmQgZm9yIHBlb3BsZSB0aGF0IGRvbid0IGhhdmUgYSBLZXJuZWwgIgogCSAgICAgICAid2l0aCBv dmVyc2NhbiBjb21wZW5zYXRpb24gcHJvcGVydGllczogaXQgaXMganVzdCBhIHRlbXBvcmFyeSAi CiAJICAgICAgICJzb2x1dGlvbiB0aGF0IG1heSBvciBtYXkgbm90IHdvcmsuIFVzZSBpdCBhdCB5 b3VyIG93biByaXNrLlxuIik7CiAKLQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwp OwotCXBjaV9kZXYgPSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKTsKLQljbG9zZShmZCk7 Ci0KKwlwY2lfZGV2ID0gaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKTsKIAlpbnRlbF9yZWdpc3Rlcl9h Y2Nlc3NfaW5pdChwY2lfZGV2LCAwLCAtMSk7CiAJZGV2aWQgPSBwY2lfZGV2LT5kZXZpY2VfaWQ7 CiAKQEAgLTM0OCw2ICszNDMsNSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAogb3V0OgogCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCk7Ci0KIAlyZXR1cm4gcmV0Owog fQpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfcGVyZl9jb3VudGVycy5jIGIvdG9vbHMvaW50ZWxf cGVyZl9jb3VudGVycy5jCmluZGV4IDEwNWEwOTI0ZjZkYy4uNTBjNGJjZTYxZmY3IDEwMDY0NAot LS0gYS90b29scy9pbnRlbF9wZXJmX2NvdW50ZXJzLmMKKysrIGIvdG9vbHMvaW50ZWxfcGVyZl9j b3VudGVycy5jCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiZHJtLmgiCiAjaW5jbHVkZSAi aTkxNV9kcm0uaCIKICNpbmNsdWRlICJkcm10ZXN0LmgiCi0jaW5jbHVkZSAiaWd0X2RldmljZS5o IgogI2luY2x1ZGUgImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaW50ZWxfYnVmbWdyLmgiCiAjaW5j bHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIKQEAgLTQ4NCw3ICs0ODMsNyBAQCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIAogCWlmIChvYWNvbnRyb2wpIHsKIAkJLyogRm9yY2V3YWtlICov Ci0JCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2Uo ZmQpLCAwLCBmZCk7CisJCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lf ZGV2aWNlKCksIDAsIGZkKTsKIAogCQkvKiBFbmFibGUgcGVyZm9ybWFuY2UgY291bnRlcnMgKi8K IAkJaW50ZWxfcmVnaXN0ZXJfd3JpdGUoT0FDT05UUk9MLApkaWZmIC0tZ2l0IGEvdG9vbHMvaW50 ZWxfcmVnLmMgYi90b29scy9pbnRlbF9yZWcuYwppbmRleCAzMDUzMjNiNjAzZDguLjEyNDdiNzBi MDkyNyAxMDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfcmVnLmMKKysrIGIvdG9vbHMvaW50ZWxfcmVn LmMKQEAgLTMzLDkgKzMzLDkgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1ZGUgImln dC5oIgotI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKICNpbmNsdWRlICJpZ3RfZ3QuaCIKICNpbmNs dWRlICJpbnRlbF9pby5oIgorI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKIAogI2luY2x1ZGUg ImludGVsX3JlZ19zcGVjLmgiCiAKQEAgLTI3NCw2ICsyNzQsMTUgQEAgc3RhdGljIGludCByZWdp c3Rlcl9zcm0oc3RydWN0IGNvbmZpZyAqY29uZmlnLCBzdHJ1Y3QgcmVnICpyZWcsCiAJaW50IGZk LCBpOwogCXVpbnQzMl90IHZhbDsKIAorCWlmIChjb25maWctPmZkID09IC0xKSB7CisJCWNvbmZp Zy0+ZmQgPSBfX2RybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOworCQlpZiAoY29uZmlnLT5m ZCA9PSAtMSkgeworCQkJZnByaW50ZihzdGRlcnIsICJFcnJvciBvcGVuaW5nIGRyaXZlcjogJXMi LAorCQkJCXN0cmVycm9yKGVycm5vKSk7CisJCQlleGl0KEVYSVRfRkFJTFVSRSk7CisJCX0KKwl9 CisKIAlmZCA9IGNvbmZpZy0+ZmQ7CiAJZW5naW5lID0gZmluZF9lbmdpbmUocmVnLT5lbmdpbmUp OwogCWlmIChlbmdpbmUgPT0gTlVMTCkKQEAgLTEwMDYsMTMgKzEwMTUsNiBAQCBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqYXJndltdKQogCQlyZXR1cm4gRVhJVF9GQUlMVVJFOwogCX0KIAotCWNv bmZpZy5mZCA9IF9fZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Ci0JaWYgKGNvbmZpZy5m ZCA9PSAtMSkgewotCQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yIG9wZW5pbmcgZHJpdmVyOiAlcyIs Ci0JCQlzdHJlcnJvcihlcnJubykpOwotCQlleGl0KEVYSVRfRkFJTFVSRSk7Ci0JfQotCiAJaWYg KGNvbmZpZy5tbWlvZmlsZSkgewogCQlpZiAoIWNvbmZpZy5kZXZpZCkgewogCQkJZnByaW50Zihz dGRlcnIsICItLW1taW8gcmVxdWlyZXMgLS1kZXZpZFxuIik7CkBAIC0xMDI0LDcgKzEwMjYsNyBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJZnByaW50ZihzdGRlcnIsICIt LWRldmlkIHdpdGhvdXQgLS1tbWlvXG4iKTsKIAkJCXJldHVybiBFWElUX0ZBSUxVUkU7CiAJCX0K LQkJY29uZmlnLnBjaV9kZXYgPSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGNvbmZpZy5mZCk7 CisJCWNvbmZpZy5wY2lfZGV2ID0gaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKTsKIAkJY29uZmlnLmRl dmlkID0gY29uZmlnLnBjaV9kZXYtPmRldmljZV9pZDsKIAl9CiAKQEAgLTEwNDgsNyArMTA1MCw4 IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKIAlmcmVlKGNvbmZpZy5tbWlv ZmlsZSk7CiAKLQljbG9zZShjb25maWcuZmQpOworCWlmIChjb25maWcuZmQgPj0gMCkKKwkJY2xv c2UoY29uZmlnLmZkKTsKIAogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS90b29scy9pbnRl bF9yZWdfY2hlY2tlci5jIGIvdG9vbHMvaW50ZWxfcmVnX2NoZWNrZXIuYwppbmRleCAwZWQyNjAy OWM3MmYuLjZiZGU2M2VjZWUyMiAxMDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfcmVnX2NoZWNrZXIu YworKysgYi90b29scy9pbnRlbF9yZWdfY2hlY2tlci5jCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5j bHVkZSA8ZXJyLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8c3RkYm9vbC5oPgot I2luY2x1ZGUgImRybXRlc3QuaCIKLSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCiAjaW5jbHVkZSAi aW50ZWxfaW8uaCIKICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCiAKQEAgLTM0NCwxMiArMzQy LDggQEAgY2hlY2tfZHBmY19jb250cm9sX3NhKHZvaWQpCiBpbnQgbWFpbihpbnQgYXJnYywgY2hh cioqIGFyZ3YpCiB7CiAJc3RydWN0IHBjaV9kZXZpY2UgKmRldjsKLQlpbnQgZmQ7Ci0KLQlmZCA9 IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwotCWRldiA9IGlndF9kZXZpY2VfZ2V0X3Bj aV9kZXZpY2UoZmQpOwotCWNsb3NlKGZkKTsKIAorCWRldiA9IGludGVsX2dldF9wY2lfZGV2aWNl KCk7CiAJZGV2aWQgPSBkZXYtPmRldmljZV9pZDsKIAlpbnRlbF9tbWlvX3VzZV9wY2lfYmFyKGRl dik7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX3dhdGVybWFyay5jIGIvdG9vbHMvaW50ZWxf d2F0ZXJtYXJrLmMKaW5kZXggMmRjNDMwN2MzM2EzLi5lNzFjM2Q5Y2ZmNmQgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2ludGVsX3dhdGVybWFyay5jCisrKyBiL3Rvb2xzL2ludGVsX3dhdGVybWFyay5jCkBA IC0yOSwxNCArMjksMTIgQEAKICNpbmNsdWRlIDxzdGRib29sLmg+CiAjaW5jbHVkZSA8ZXJyLmg+ CiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSAiaWd0X2RldmljZS5oIgogI2luY2x1ZGUg ImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgogI2luY2x1ZGUgImRybXRl c3QuaCIKIAogc3RhdGljIHVpbnQzMl90IGRpc3BsYXlfYmFzZTsKIHN0YXRpYyB1aW50MzJfdCBk ZXZpZDsKLXN0YXRpYyBpbnQgZmQ7CiAKIHN0YXRpYyB1aW50MzJfdCByZWFkX3JlZyh1aW50MzJf dCBhZGRyKQogewpAQCAtMjUxLDcgKzI0OSw3IEBAIHN0YXRpYyB2b2lkIHNrbF93bV9kdW1wKHZv aWQpCiAJdWludDMyX3QgcGxhbmVfY3RsW251bV9waXBlc11bbWF4X3BsYW5lc107CiAJdWludDMy X3Qgd21fbGluZXRpbWVbbnVtX3BpcGVzXTsKIAotCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0 KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpLCAwLCAtMSk7CisJaW50ZWxfcmVnaXN0ZXJf YWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwogCiAJZm9yIChwaXBl ID0gMDsgcGlwZSA8IG51bV9waXBlczsgcGlwZSsrKSB7CiAJCWludCBudW1fcGxhbmVzID0gc2ts X251bV9wbGFuZXMoZGV2aWQsIHBpcGUpOwpAQCAtNDcxLDcgKzQ2OSw3IEBAIHN0YXRpYyB2b2lk IGlsa193bV9kdW1wKHZvaWQpCiAJaW50IG51bV9waXBlcyA9IGludGVsX2dlbihkZXZpZCkgPj0g NyA/IDMgOiAyOwogCXN0cnVjdCBpbGtfd20gd20gPSB7fTsKIAotCWludGVsX3JlZ2lzdGVyX2Fj Y2Vzc19pbml0KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpLCAwLCAtMSk7CisJaW50ZWxf cmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwogCiAJ Zm9yIChpID0gMDsgaSA8IG51bV9waXBlczsgaSsrKSB7CiAJCWRzcGNudHJbaV0gPSByZWFkX3Jl ZygweDcwMTgwICsgaSAqIDB4MTAwMCk7CkBAIC02MjEsNyArNjE5LDcgQEAgc3RhdGljIHZvaWQg dmx2X3dtX2R1bXAodm9pZCkKIAl1aW50MzJfdCBkc3Bfc3NfcG0sIGRkcl9zZXR1cDI7CiAJc3Ry dWN0IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKIAotCWludGVsX3JlZ2lzdGVyX2FjY2Vz c19pbml0KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpLCAwLCAtMSk7CisJaW50ZWxfcmVn aXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwogCiAJZHNw YXJiID0gcmVhZF9yZWcoMHg3MDAzMCk7CiAJZHNwYXJiMiA9IHJlYWRfcmVnKDB4NzAwNjApOwpA QCAtODM3LDcgKzgzNSw3IEBAIHN0YXRpYyB2b2lkIGc0eF93bV9kdW1wKHZvaWQpCiAJdWludDMy X3QgbWlfYXJiX3N0YXRlOwogCXN0cnVjdCBnbWNoX3dtIHdtc1tNQVhfUExBTkVdID0ge307CiAK LQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZk KSwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2 aWNlKCksIDAsIC0xKTsKIAogCWRzcGFjbnRyID0gcmVhZF9yZWcoMHg3MDE4MCk7CiAJZHNwYmNu dHIgPSByZWFkX3JlZygweDcxMTgwKTsKQEAgLTkyMyw3ICs5MjEsNyBAQCBzdGF0aWMgdm9pZCBn ZW40X3dtX2R1bXAodm9pZCkKIAl1aW50MzJfdCBtaV9hcmJfc3RhdGU7CiAJc3RydWN0IGdtY2hf d20gd21zW01BWF9QTEFORV0gPSB7fTsKIAotCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGln dF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpLCAwLCAtMSk7CisJaW50ZWxfcmVnaXN0ZXJfYWNj ZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwogCiAJZHNwYXJiID0gcmVh ZF9yZWcoMHg3MDAzMCk7CiAJZncxID0gcmVhZF9yZWcoMHg3MDAzNCk7CkBAIC05OTQsNyArOTky LDcgQEAgc3RhdGljIHZvaWQgcG52X3dtX2R1bXAodm9pZCkKIAl1aW50MzJfdCBjYnI7CiAJc3Ry dWN0IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKIAotCWludGVsX3JlZ2lzdGVyX2FjY2Vz c19pbml0KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpLCAwLCAtMSk7CisJaW50ZWxfcmVn aXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwogCiAJZHNw YXJiID0gcmVhZF9yZWcoMHg3MDAzMCk7CiAJZncxID0gcmVhZF9yZWcoMHg3MDAzNCk7CkBAIC0x MDg0LDcgKzEwODIsNyBAQCBzdGF0aWMgdm9pZCBnZW4zX3dtX2R1bXAodm9pZCkKIAl1aW50MzJf dCBtaV9hcmJfc3RhdGU7CiAJc3RydWN0IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKIAot CWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQp LCAwLCAtMSk7CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZp Y2UoKSwgMCwgLTEpOwogCiAJZHNwYXJiID0gcmVhZF9yZWcoMHg3MDAzMCk7CiAJaW5zdHBtID0g cmVhZF9yZWcoMHgyMGMwKTsKQEAgLTExNTMsNyArMTE1MSw3IEBAIHN0YXRpYyB2b2lkIGdlbjJf d21fZHVtcCh2b2lkKQogCXVpbnQzMl90IG1pX3N0YXRlOwogCXN0cnVjdCBnbWNoX3dtIHdtc1tN QVhfUExBTkVdID0ge307CiAKLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNl X2dldF9wY2lfZGV2aWNlKGZkKSwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0 KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKIAogCWRzcGFyYiA9IHJlYWRfcmVnKDB4 NzAwMzApOwogCW1lbV9tb2RlID0gcmVhZF9yZWcoMHgyMGNjKTsKQEAgLTEyMjgsOCArMTIyNiw3 IEBAIHN0YXRpYyB2b2lkIGdlbjJfd21fZHVtcCh2b2lkKQogCiBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdKQogewotCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Ci0J ZGV2aWQgPSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKS0+ZGV2aWNlX2lkOworCWRldmlk ID0gaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKS0+ZGV2aWNlX2lkOwogCiAJaWYgKGludGVsX2dlbihk ZXZpZCkgPj0gOSkgewogCQlza2xfd21fZHVtcCgpOwpAQCAtMTI1Myw3ICsxMjUwLDUgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJcmV0dXJuIDE7CiAJfQogCi0JY2xvc2Uo ZmQpOwotCiAJcmV0dXJuIDA7CiB9Ci0tIAoyLjE5LjIKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldg==