From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Garzik Subject: Re: [PATCH] use dev_printk() in some net drivers Date: Tue, 27 Jun 2006 11:41:09 -0400 Message-ID: <44A15195.8060506@garzik.org> References: <20060627145145.GA30053@havoc.gtf.org> <44A14A5F.3090607@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080104000203080803030505" Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Return-path: Received: from srv5.dvmed.net ([207.36.208.214]:8071 "EHLO mail.dvmed.net") by vger.kernel.org with ESMTP id S1161093AbWF0PlP (ORCPT ); Tue, 27 Jun 2006 11:41:15 -0400 To: Jiri Slaby In-Reply-To: <44A14A5F.3090607@gmail.com> Sender: netdev-owner@vger.kernel.org List-Id: netdev.vger.kernel.org This is a multi-part message in MIME format. --------------080104000203080803030505 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Jiri Slaby wrote: > Don't you consider to use s#dev_printk(KERN_ERR, #dev_err(# macro? Done. Jeff --------------080104000203080803030505 Content-Type: text/plain; name="patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="patch" Njg1YWExMWY3ZjFkZTQyODAyY2IwYThkNTgxNmMxZWZiMDhmNjVjZApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvODEzOWNwLmMgYi9kcml2ZXJzL25ldC84MTM5Y3AuYwppbmRleCBjMzhl MzUyLi4yZjNmYjJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC84MTM5Y3AuYworKysgYi9k cml2ZXJzL25ldC84MTM5Y3AuYwpAQCAtMTgzNywxMSArMTgzNywxMCBAQCAjZW5kaWYKIAog CWlmIChwZGV2LT52ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9SRUFMVEVLICYmCiAJICAgIHBk ZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX1JFQUxURUtfODEzOSAmJiBwY2lfcmV2IDwg MHgyMCkgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LAorCQlkZXZfZXJy KCZwZGV2LT5kZXYsCiAJCQkgICAiVGhpcyAoaWQgJTA0eDolMDR4IHJldiAlMDJ4KSBpcyBu b3QgYW4gODEzOUMrIGNvbXBhdGlibGUgY2hpcFxuIiwKIAkJICAgICAgICAgICBwZGV2LT52 ZW5kb3IsIHBkZXYtPmRldmljZSwgcGNpX3Jldik7Ci0JCWRldl9wcmludGsoS0VSTl9FUlIs ICZwZGV2LT5kZXYsCi0JCQkgICAiVHJ5IHRoZSBcIjgxMzl0b29cIiBkcml2ZXIgaW5zdGVh ZC5cbiIpOworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJUcnkgdGhlIFwiODEzOXRvb1wiIGRy aXZlciBpbnN0ZWFkLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIApAQCAtMTg3OSwx MyArMTg3OCwxMiBAQCAjZW5kaWYKIAlwY2lhZGRyID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBk ZXYsIDEpOwogCWlmICghcGNpYWRkcikgewogCQlyYyA9IC1FSU87Ci0JCWRldl9wcmludGso S0VSTl9FUlIsICZwZGV2LT5kZXYsICJubyBNTUlPIHJlc291cmNlXG4iKTsKKwkJZGV2X2Vy cigmcGRldi0+ZGV2LCAibm8gTU1JTyByZXNvdXJjZVxuIik7CiAJCWdvdG8gZXJyX291dF9y ZXM7CiAJfQogCWlmIChwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDEpIDwgQ1BfUkVHU19TSVpF KSB7CiAJCXJjID0gLUVJTzsKLQkJZGV2X3ByaW50ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwK LQkJCSAgICJNTUlPIHJlc291cmNlICglbHgpIHRvbyBzbWFsbFxuIiwKKwkJZGV2X2Vycigm cGRldi0+ZGV2LCAiTU1JTyByZXNvdXJjZSAoJWx4KSB0b28gc21hbGxcbiIsCiAJCSAgICAg ICBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDEpKTsKIAkJZ290byBlcnJfb3V0X3JlczsKIAl9 CkBAIC0xOTAwLDEzICsxODk4LDEzIEBAICNlbmRpZgogCiAJCXJjID0gcGNpX3NldF9kbWFf bWFzayhwZGV2LCBETUFfMzJCSVRfTUFTSyk7CiAJCWlmIChyYykgewotCQkJZGV2X3ByaW50 ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwKKwkJCWRldl9lcnIoJnBkZXYtPmRldiwKIAkJCQkg ICAiTm8gdXNhYmxlIERNQSBjb25maWd1cmF0aW9uLCBhYm9ydGluZy5cbiIpOwogCQkJZ290 byBlcnJfb3V0X3JlczsKIAkJfQogCQlyYyA9IHBjaV9zZXRfY29uc2lzdGVudF9kbWFfbWFz ayhwZGV2LCBETUFfMzJCSVRfTUFTSyk7CiAJCWlmIChyYykgewotCQkJZGV2X3ByaW50ayhL RVJOX0VSUiwgJnBkZXYtPmRldiwKKwkJCWRldl9lcnIoJnBkZXYtPmRldiwKIAkJCQkgICAi Tm8gdXNhYmxlIGNvbnNpc3RlbnQgRE1BIGNvbmZpZ3VyYXRpb24sICIKIAkJCSAgICAgICAg ICAgImFib3J0aW5nLlxuIik7CiAJCQlnb3RvIGVycl9vdXRfcmVzOwpAQCAtMTkxOSw4ICsx OTE3LDcgQEAgI2VuZGlmCiAJcmVncyA9IGlvcmVtYXAocGNpYWRkciwgQ1BfUkVHU19TSVpF KTsKIAlpZiAoIXJlZ3MpIHsKIAkJcmMgPSAtRUlPOwotCQlkZXZfcHJpbnRrKEtFUk5fRVJS LCAmcGRldi0+ZGV2LAotCQkJICAgIkNhbm5vdCBtYXAgUENJIE1NSU8gKCVseEAlbHgpXG4i LAorCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDYW5ub3QgbWFwIFBDSSBNTUlPICglbHhAJWx4 KVxuIiwKIAkJICAgICAgIHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMSksIHBjaWFkZHIpOwog CQlnb3RvIGVycl9vdXRfcmVzOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0LzgxMzl0 b28uYyBiL2RyaXZlcnMvbmV0LzgxMzl0b28uYwppbmRleCBiMjU5MmM0Li4xNzNlNTllIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC84MTM5dG9vLmMKKysrIGIvZHJpdmVycy9uZXQvODEz OXRvby5jCkBAIC03NjksOCArNzY5LDcgQEAgc3RhdGljIGludCBfX2RldmluaXQgcnRsODEz OV9pbml0X2JvYXJkIAogCS8qIGRldiBhbmQgcHJpdiB6ZXJvZWQgaW4gYWxsb2NfZXRoZXJk ZXYgKi8KIAlkZXYgPSBhbGxvY19ldGhlcmRldiAoc2l6ZW9mICgqdHApKTsKIAlpZiAoZGV2 ID09IE5VTEwpIHsKLQkJZGV2X3ByaW50ayAoS0VSTl9FUlIsICZwZGV2LT5kZXYsCi0JCQkg ICAgIlVuYWJsZSB0byBhbGxvYyBuZXcgbmV0IGRldmljZVxuIik7CisJCWRldl9lcnIoJnBk ZXYtPmRldiwgIlVuYWJsZSB0byBhbGxvYyBuZXcgbmV0IGRldmljZVxuIik7CiAJCXJldHVy biAtRU5PTUVNOwogCX0KIAlTRVRfTU9EVUxFX09XTkVSKGRldik7CkBAIC04MDIsMjkgKzgw MSwyNSBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBydGw4MTM5X2luaXRfYm9hcmQgCiAjaWZk ZWYgVVNFX0lPX09QUwogCS8qIG1ha2Ugc3VyZSBQQ0kgYmFzZSBhZGRyIDAgaXMgUElPICov CiAJaWYgKCEocGlvX2ZsYWdzICYgSU9SRVNPVVJDRV9JTykpIHsKLQkJZGV2X3ByaW50ayAo S0VSTl9FUlIsICZwZGV2LT5kZXYsCi0JCQkgICAgInJlZ2lvbiAjMCBub3QgYSBQSU8gcmVz b3VyY2UsIGFib3J0aW5nXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAicmVnaW9uICMw IG5vdCBhIFBJTyByZXNvdXJjZSwgYWJvcnRpbmdcbiIpOwogCQlyYyA9IC1FTk9ERVY7CiAJ CWdvdG8gZXJyX291dDsKIAl9CiAJLyogY2hlY2sgZm9yIHdlaXJkL2Jyb2tlbiBQQ0kgcmVn aW9uIHJlcG9ydGluZyAqLwogCWlmIChwaW9fbGVuIDwgUlRMX01JTl9JT19TSVpFKSB7Ci0J CWRldl9wcmludGsgKEtFUk5fRVJSLCAmcGRldi0+ZGV2LAotCQkJICAgICJJbnZhbGlkIFBD SSBJL08gcmVnaW9uIHNpemUocyksIGFib3J0aW5nXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ ZGV2LCAiSW52YWxpZCBQQ0kgSS9PIHJlZ2lvbiBzaXplKHMpLCBhYm9ydGluZ1xuIik7CiAJ CXJjID0gLUVOT0RFVjsKIAkJZ290byBlcnJfb3V0OwogCX0KICNlbHNlCiAJLyogbWFrZSBz dXJlIFBDSSBiYXNlIGFkZHIgMSBpcyBNTUlPICovCiAJaWYgKCEobW1pb19mbGFncyAmIElP UkVTT1VSQ0VfTUVNKSkgewotCQlkZXZfcHJpbnRrIChLRVJOX0VSUiwgJnBkZXYtPmRldiwK LQkJCSAgICAicmVnaW9uICMxIG5vdCBhbiBNTUlPIHJlc291cmNlLCBhYm9ydGluZ1xuIik7 CisJCWRldl9lcnIoJnBkZXYtPmRldiwgInJlZ2lvbiAjMSBub3QgYW4gTU1JTyByZXNvdXJj ZSwgYWJvcnRpbmdcbiIpOwogCQlyYyA9IC1FTk9ERVY7CiAJCWdvdG8gZXJyX291dDsKIAl9 CiAJaWYgKG1taW9fbGVuIDwgUlRMX01JTl9JT19TSVpFKSB7Ci0JCWRldl9wcmludGsgKEtF Uk5fRVJSLCAmcGRldi0+ZGV2LAotCQkJICAgICJJbnZhbGlkIFBDSSBtZW0gcmVnaW9uIHNp emUocyksIGFib3J0aW5nXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiSW52YWxpZCBQ Q0kgbWVtIHJlZ2lvbiBzaXplKHMpLCBhYm9ydGluZ1xuIik7CiAJCXJjID0gLUVOT0RFVjsK IAkJZ290byBlcnJfb3V0OwogCX0KQEAgLTg0MSw3ICs4MzYsNyBAQCAjZW5kaWYKICNpZmRl ZiBVU0VfSU9fT1BTCiAJaW9hZGRyID0gaW9wb3J0X21hcChwaW9fc3RhcnQsIHBpb19sZW4p OwogCWlmICghaW9hZGRyKSB7Ci0JCWRldl9wcmludGsgKEtFUk5fRVJSLCAmcGRldi0+ZGV2 LCAiY2Fubm90IG1hcCBQSU8sIGFib3J0aW5nXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2 LCAiY2Fubm90IG1hcCBQSU8sIGFib3J0aW5nXG4iKTsKIAkJcmMgPSAtRUlPOwogCQlnb3Rv IGVycl9vdXQ7CiAJfQpAQCAtODUyLDggKzg0Nyw3IEBAICNlbHNlCiAJLyogaW9yZW1hcCBN TUlPIHJlZ2lvbiAqLwogCWlvYWRkciA9IHBjaV9pb21hcChwZGV2LCAxLCAwKTsKIAlpZiAo aW9hZGRyID09IE5VTEwpIHsKLQkJZGV2X3ByaW50ayAoS0VSTl9FUlIsICZwZGV2LT5kZXYs Ci0JCQkgICAgImNhbm5vdCByZW1hcCBNTUlPLCBhYm9ydGluZ1xuIik7CisJCWRldl9lcnIo JnBkZXYtPmRldiwgImNhbm5vdCByZW1hcCBNTUlPLCBhYm9ydGluZ1xuIik7CiAJCXJjID0g LUVJTzsKIAkJZ290byBlcnJfb3V0OwogCX0KQEAgLTg2Nyw4ICs4NjEsNyBAQCAjZW5kaWYg LyogVVNFX0lPX09QUyAqLwogCiAJLyogY2hlY2sgZm9yIG1pc3NpbmcvYnJva2VuIGhhcmR3 YXJlICovCiAJaWYgKFJUTF9SMzIgKFR4Q29uZmlnKSA9PSAweEZGRkZGRkZGKSB7Ci0JCWRl dl9wcmludGsgKEtFUk5fRVJSLCAmcGRldi0+ZGV2LAotCQkJICAgICJDaGlwIG5vdCByZXNw b25kaW5nLCBpZ25vcmluZyBib2FyZFxuIik7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIkNo aXAgbm90IHJlc3BvbmRpbmcsIGlnbm9yaW5nIGJvYXJkXG4iKTsKIAkJcmMgPSAtRUlPOwog CQlnb3RvIGVycl9vdXQ7CiAJfQpAQCAtOTYyLDEwICs5NTUsMTAgQEAgI2VuZGlmCiAKIAlp ZiAocGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfUkVBTFRFSyAmJgogCSAgICBwZGV2 LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9SRUFMVEVLXzgxMzkgJiYgcGNpX3JldiA+PSAw eDIwKSB7Ci0JCWRldl9wcmludGsoS0VSTl9JTkZPLCAmcGRldi0+ZGV2LAorCQlkZXZfaW5m bygmcGRldi0+ZGV2LAogCQkJICAgIlRoaXMgKGlkICUwNHg6JTA0eCByZXYgJTAyeCkgaXMg YW4gZW5oYW5jZWQgODEzOUMrIGNoaXBcbiIsCiAJCSAgICAgICAJICAgcGRldi0+dmVuZG9y LCBwZGV2LT5kZXZpY2UsIHBjaV9yZXYpOwotCQlkZXZfcHJpbnRrKEtFUk5fSU5GTywgJnBk ZXYtPmRldiwKKwkJZGV2X2luZm8oJnBkZXYtPmRldiwKIAkJCSAgICJVc2UgdGhlIFwiODEz OWNwXCIgZHJpdmVyIGZvciBpbXByb3ZlZCBwZXJmb3JtYW5jZSBhbmQgc3RhYmlsaXR5Llxu Iik7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9iNDQuYyBiL2RyaXZlcnMvbmV0 L2I0NC5jCmluZGV4IDZkNzc0OGQuLjlmY2U3ZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2I0NC5jCisrKyBiL2RyaXZlcnMvbmV0L2I0NC5jCkBAIC0yMTIwLDEzICsyMTIwLDEzIEBA IHN0YXRpYyBpbnQgX19kZXZpbml0IGI0NF9pbml0X29uZShzdHJ1Y3QKIAogCWVyciA9IHBj aV9lbmFibGVfZGV2aWNlKHBkZXYpOwogCWlmIChlcnIpIHsKLQkJZGV2X3ByaW50ayhLRVJO X0VSUiwgJnBkZXYtPmRldiwgIkNhbm5vdCBlbmFibGUgUENJIGRldmljZSwgIgorCQlkZXZf ZXJyKCZwZGV2LT5kZXYsICJDYW5ub3QgZW5hYmxlIFBDSSBkZXZpY2UsICIKIAkJICAgICAg ICJhYm9ydGluZy5cbiIpOwogCQlyZXR1cm4gZXJyOwogCX0KIAogCWlmICghKHBjaV9yZXNv dXJjZV9mbGFncyhwZGV2LCAwKSAmIElPUkVTT1VSQ0VfTUVNKSkgewotCQlkZXZfcHJpbnRr KEtFUk5fRVJSLCAmcGRldi0+ZGV2LAorCQlkZXZfZXJyKCZwZGV2LT5kZXYsCiAJCQkiQ2Fu bm90IGZpbmQgcHJvcGVyIFBDSSBkZXZpY2UgIgogCQkgICAgICAgImJhc2UgYWRkcmVzcywg YWJvcnRpbmcuXG4iKTsKIAkJZXJyID0gLUVOT0RFVjsKQEAgLTIxMzUsNyArMjEzNSw3IEBA IHN0YXRpYyBpbnQgX19kZXZpbml0IGI0NF9pbml0X29uZShzdHJ1Y3QKIAogCWVyciA9IHBj aV9yZXF1ZXN0X3JlZ2lvbnMocGRldiwgRFJWX01PRFVMRV9OQU1FKTsKIAlpZiAoZXJyKSB7 Ci0JCWRldl9wcmludGsoS0VSTl9FUlIsICZwZGV2LT5kZXYsCisJCWRldl9lcnIoJnBkZXYt PmRldiwKIAkJCSJDYW5ub3Qgb2J0YWluIFBDSSByZXNvdXJjZXMsIGFib3J0aW5nLlxuIik7 CiAJCWdvdG8gZXJyX291dF9kaXNhYmxlX3BkZXY7CiAJfQpAQCAtMjE0NCwxNSArMjE0NCwx MyBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBiNDRfaW5pdF9vbmUoc3RydWN0CiAKIAllcnIg PSBwY2lfc2V0X2RtYV9tYXNrKHBkZXYsICh1NjQpIEI0NF9ETUFfTUFTSyk7CiAJaWYgKGVy cikgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LAotCQkJIk5vIHVzYWJs ZSBETUEgY29uZmlndXJhdGlvbiwgYWJvcnRpbmcuXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ ZGV2LCAiTm8gdXNhYmxlIERNQSBjb25maWd1cmF0aW9uLCBhYm9ydGluZy5cbiIpOwogCQln b3RvIGVycl9vdXRfZnJlZV9yZXM7CiAJfQogCiAJZXJyID0gcGNpX3NldF9jb25zaXN0ZW50 X2RtYV9tYXNrKHBkZXYsICh1NjQpIEI0NF9ETUFfTUFTSyk7CiAJaWYgKGVycikgewotCQlk ZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LAotCQkJIk5vIHVzYWJsZSBETUEgY29u ZmlndXJhdGlvbiwgYWJvcnRpbmcuXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8g dXNhYmxlIERNQSBjb25maWd1cmF0aW9uLCBhYm9ydGluZy5cbiIpOwogCQlnb3RvIGVycl9v dXRfZnJlZV9yZXM7CiAJfQogCkBAIC0yMTYxLDggKzIxNTksNyBAQCBzdGF0aWMgaW50IF9f ZGV2aW5pdCBiNDRfaW5pdF9vbmUoc3RydWN0CiAKIAlkZXYgPSBhbGxvY19ldGhlcmRldihz aXplb2YoKmJwKSk7CiAJaWYgKCFkZXYpIHsKLQkJZGV2X3ByaW50ayhLRVJOX0VSUiwgJnBk ZXYtPmRldiwKLQkJCSJFdGhlcmRldiBhbGxvYyBmYWlsZWQsIGFib3J0aW5nLlxuIik7CisJ CWRldl9lcnIoJnBkZXYtPmRldiwgIkV0aGVyZGV2IGFsbG9jIGZhaWxlZCwgYWJvcnRpbmcu XG4iKTsKIAkJZXJyID0gLUVOT01FTTsKIAkJZ290byBlcnJfb3V0X2ZyZWVfcmVzOwogCX0K QEAgLTIxODMsOCArMjE4MCw3IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IGI0NF9pbml0X29u ZShzdHJ1Y3QKIAogCWJwLT5yZWdzID0gaW9yZW1hcChiNDRyZWdfYmFzZSwgYjQ0cmVnX2xl bik7CiAJaWYgKGJwLT5yZWdzID09IDBVTCkgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAm cGRldi0+ZGV2LCAiQ2Fubm90IG1hcCBkZXZpY2UgcmVnaXN0ZXJzLCAiCi0JCSAgICAgICAi YWJvcnRpbmcuXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ2Fubm90IG1hcCBkZXZp Y2UgcmVnaXN0ZXJzLCBhYm9ydGluZy5cbiIpOwogCQllcnIgPSAtRU5PTUVNOwogCQlnb3Rv IGVycl9vdXRfZnJlZV9kZXY7CiAJfQpAQCAtMjIxNCw3ICsyMjEwLDcgQEAgI2VuZGlmCiAK IAllcnIgPSBiNDRfZ2V0X2ludmFyaWFudHMoYnApOwogCWlmIChlcnIpIHsKLQkJZGV2X3By aW50ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwKKwkJZGV2X2VycigmcGRldi0+ZGV2LAogCQkJ IlByb2JsZW0gZmV0Y2hpbmcgaW52YXJpYW50cyBvZiBjaGlwLCBhYm9ydGluZy5cbiIpOwog CQlnb3RvIGVycl9vdXRfaW91bm1hcDsKIAl9CkBAIC0yMjM1LDggKzIyMzEsNyBAQCAjZW5k aWYKIAogCWVyciA9IHJlZ2lzdGVyX25ldGRldihkZXYpOwogCWlmIChlcnIpIHsKLQkJZGV2 X3ByaW50ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwgIkNhbm5vdCByZWdpc3RlciBuZXQgZGV2 aWNlLCAiCi0JCSAgICAgICAiYWJvcnRpbmcuXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2 LCAiQ2Fubm90IHJlZ2lzdGVyIG5ldCBkZXZpY2UsIGFib3J0aW5nLlxuIik7CiAJCWdvdG8g ZXJyX291dF9pb3VubWFwOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm54Mi5j IGIvZHJpdmVycy9uZXQvYm54Mi5jCmluZGV4IDE3MWU0OTguLjE1MmRlOTIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2JueDIuYworKysgYi9kcml2ZXJzL25ldC9ibngyLmMKQEAgLTU1 NjYsMTMgKzU1NjYsMTIgQEAgYm54Ml9pbml0X2JvYXJkKHN0cnVjdCBwY2lfZGV2ICpwZGV2 LCBzdAogCS8qIGVuYWJsZSBkZXZpY2UgKGluY2wuIFBDSSBQTSB3YWtldXApLCBhbmQgYnVz LW1hc3RlcmluZyAqLwogCXJjID0gcGNpX2VuYWJsZV9kZXZpY2UocGRldik7CiAJaWYgKHJj KSB7Ci0JCWRldl9wcmludGsoS0VSTl9FUlIsICZwZGV2LT5kZXYsCi0JCQkiQ2Fubm90IGVu YWJsZSBQQ0kgZGV2aWNlLCBhYm9ydGluZy4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAi Q2Fubm90IGVuYWJsZSBQQ0kgZGV2aWNlLCBhYm9ydGluZy4iKTsKIAkJZ290byBlcnJfb3V0 OwogCX0KIAogCWlmICghKHBjaV9yZXNvdXJjZV9mbGFncyhwZGV2LCAwKSAmIElPUkVTT1VS Q0VfTUVNKSkgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LAorCQlkZXZf ZXJyKCZwZGV2LT5kZXYsCiAJCQkiQ2Fubm90IGZpbmQgUENJIGRldmljZSBiYXNlIGFkZHJl c3MsIGFib3J0aW5nLlxuIik7CiAJCXJjID0gLUVOT0RFVjsKIAkJZ290byBlcnJfb3V0X2Rp c2FibGU7CkBAIC01NTgwLDggKzU1NzksNyBAQCBibngyX2luaXRfYm9hcmQoc3RydWN0IHBj aV9kZXYgKnBkZXYsIHN0CiAKIAlyYyA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRldiwgRFJW X01PRFVMRV9OQU1FKTsKIAlpZiAocmMpIHsKLQkJZGV2X3ByaW50ayhLRVJOX0VSUiwgJnBk ZXYtPmRldiwKLQkJCSJDYW5ub3Qgb2J0YWluIFBDSSByZXNvdXJjZXMsIGFib3J0aW5nLlxu Iik7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIkNhbm5vdCBvYnRhaW4gUENJIHJlc291cmNl cywgYWJvcnRpbmcuXG4iKTsKIAkJZ290byBlcnJfb3V0X2Rpc2FibGU7CiAJfQogCkBAIC01 NTg5LDcgKzU1ODcsNyBAQCBibngyX2luaXRfYm9hcmQoc3RydWN0IHBjaV9kZXYgKnBkZXYs IHN0CiAKIAlicC0+cG1fY2FwID0gcGNpX2ZpbmRfY2FwYWJpbGl0eShwZGV2LCBQQ0lfQ0FQ X0lEX1BNKTsKIAlpZiAoYnAtPnBtX2NhcCA9PSAwKSB7Ci0JCWRldl9wcmludGsoS0VSTl9F UlIsICZwZGV2LT5kZXYsCisJCWRldl9lcnIoJnBkZXYtPmRldiwKIAkJCSJDYW5ub3QgZmlu ZCBwb3dlciBtYW5hZ2VtZW50IGNhcGFiaWxpdHksIGFib3J0aW5nLlxuIik7CiAJCXJjID0g LUVJTzsKIAkJZ290byBlcnJfb3V0X3JlbGVhc2U7CkBAIC01NTk3LDggKzU1OTUsNyBAQCBi bngyX2luaXRfYm9hcmQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0CiAKIAlicC0+cGNpeF9j YXAgPSBwY2lfZmluZF9jYXBhYmlsaXR5KHBkZXYsIFBDSV9DQVBfSURfUENJWCk7CiAJaWYg KGJwLT5wY2l4X2NhcCA9PSAwKSB7Ci0JCWRldl9wcmludGsoS0VSTl9FUlIsICZwZGV2LT5k ZXYsCi0JCQkiQ2Fubm90IGZpbmQgUENJWCBjYXBhYmlsaXR5LCBhYm9ydGluZy5cbiIpOwor CQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDYW5ub3QgZmluZCBQQ0lYIGNhcGFiaWxpdHksIGFi b3J0aW5nLlxuIik7CiAJCXJjID0gLUVJTzsKIAkJZ290byBlcnJfb3V0X3JlbGVhc2U7CiAJ fQpAQCAtNTYwNiwxNSArNTYwMywxNCBAQCBibngyX2luaXRfYm9hcmQoc3RydWN0IHBjaV9k ZXYgKnBkZXYsIHN0CiAJaWYgKHBjaV9zZXRfZG1hX21hc2socGRldiwgRE1BXzY0QklUX01B U0spID09IDApIHsKIAkJYnAtPmZsYWdzIHw9IFVTSU5HX0RBQ19GTEFHOwogCQlpZiAocGNp X3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKHBkZXYsIERNQV82NEJJVF9NQVNLKSAhPSAwKSB7 Ci0JCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LAorCQkJZGV2X2VycigmcGRl di0+ZGV2LAogCQkJCSJwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2sgZmFpbGVkLCBhYm9y dGluZy5cbiIpOwogCQkJcmMgPSAtRUlPOwogCQkJZ290byBlcnJfb3V0X3JlbGVhc2U7CiAJ CX0KIAl9CiAJZWxzZSBpZiAocGNpX3NldF9kbWFfbWFzayhwZGV2LCBETUFfMzJCSVRfTUFT SykgIT0gMCkgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LAotCQkJIlN5 c3RlbSBkb2VzIG5vdCBzdXBwb3J0IERNQSwgYWJvcnRpbmcuXG4iKTsKKwkJZGV2X2Vycigm cGRldi0+ZGV2LCAiU3lzdGVtIGRvZXMgbm90IHN1cHBvcnQgRE1BLCBhYm9ydGluZy5cbiIp OwogCQlyYyA9IC1FSU87CiAJCWdvdG8gZXJyX291dF9yZWxlYXNlOwogCX0KQEAgLTU2MzQs OCArNTYzMCw3IEBAIGJueDJfaW5pdF9ib2FyZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3QK IAlicC0+cmVndmlldyA9IGlvcmVtYXBfbm9jYWNoZShkZXYtPmJhc2VfYWRkciwgbWVtX2xl bik7CiAKIAlpZiAoIWJwLT5yZWd2aWV3KSB7Ci0JCWRldl9wcmludGsoS0VSTl9FUlIsICZw ZGV2LT5kZXYsCi0JCQkiQ2Fubm90IG1hcCByZWdpc3RlciBzcGFjZSwgYWJvcnRpbmcuXG4i KTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ2Fubm90IG1hcCByZWdpc3RlciBzcGFjZSwg YWJvcnRpbmcuXG4iKTsKIAkJcmMgPSAtRU5PTUVNOwogCQlnb3RvIGVycl9vdXRfcmVsZWFz ZTsKIAl9CkBAIC01NzA3LDcgKzU3MDIsNyBAQCBibngyX2luaXRfYm9hcmQoc3RydWN0IHBj aV9kZXYgKnBkZXYsIHN0CiAJZWxzZSBpZiAoKENISVBfSUQoYnApID09IENISVBfSURfNTcw Nl9BMSkgJiYKIAkJIShicC0+ZmxhZ3MgJiBQQ0lYX0ZMQUcpKSB7CiAKLQkJZGV2X3ByaW50 ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwKKwkJZGV2X2VycigmcGRldi0+ZGV2LAogCQkJIjU3 MDYgQTEgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIFBDSVggYnVzLCBhYm9ydGluZy5cbiIpOwog CQlnb3RvIGVycl9vdXRfdW5tYXA7CiAJfQpAQCAtNTcyOSw4ICs1NzI0LDcgQEAgYm54Ml9p bml0X2JvYXJkKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdAogCiAJaWYgKChyZWcgJiBCTlgy X0RFVl9JTkZPX1NJR05BVFVSRV9NQUdJQ19NQVNLKSAhPQogCSAgICBCTlgyX0RFVl9JTkZP X1NJR05BVFVSRV9NQUdJQykgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2 LAotCQkJIkZpcm13YXJlIG5vdCBydW5uaW5nLCBhYm9ydGluZy5cbiIpOworCQlkZXZfZXJy KCZwZGV2LT5kZXYsICJGaXJtd2FyZSBub3QgcnVubmluZywgYWJvcnRpbmcuXG4iKTsKIAkJ cmMgPSAtRU5PREVWOwogCQlnb3RvIGVycl9vdXRfdW5tYXA7CiAJfQpAQCAtNTg5Miw4ICs1 ODg2LDcgQEAgI2lmIGRlZmluZWQoSEFWRV9QT0xMX0NPTlRST0xMRVIpIHx8IGRlZgogI2Vu ZGlmCiAKIAlpZiAoKHJjID0gcmVnaXN0ZXJfbmV0ZGV2KGRldikpKSB7Ci0JCWRldl9wcmlu dGsoS0VSTl9FUlIsICZwZGV2LT5kZXYsCi0JCQkiQ2Fubm90IHJlZ2lzdGVyIG5ldCBkZXZp Y2VcbiIpOworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDYW5ub3QgcmVnaXN0ZXIgbmV0IGRl dmljZVxuIik7CiAJCWlmIChicC0+cmVndmlldykKIAkJCWlvdW5tYXAoYnAtPnJlZ3ZpZXcp OwogCQlwY2lfcmVsZWFzZV9yZWdpb25zKHBkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvY2Fzc2luaS5jIGIvZHJpdmVycy9uZXQvY2Fzc2luaS5jCmluZGV4IGNjZmYyMzkuLjc5 ZWE5ZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2Nhc3NpbmkuYworKysgYi9kcml2ZXJz L25ldC9jYXNzaW5pLmMKQEAgLTQ4ODgsMTMgKzQ4ODgsMTIgQEAgc3RhdGljIGludCBfX2Rl dmluaXQgY2FzX2luaXRfb25lKHN0cnVjdAogCiAJZXJyID0gcGNpX2VuYWJsZV9kZXZpY2Uo cGRldik7CiAJaWYgKGVycikgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2 LCAiQ2Fubm90IGVuYWJsZSBQQ0kgZGV2aWNlLCAiCi0JCSAgICAgICAiYWJvcnRpbmcuXG4i KTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ2Fubm90IGVuYWJsZSBQQ0kgZGV2aWNlLCBh Ym9ydGluZy5cbiIpOwogCQlyZXR1cm4gZXJyOwogCX0KIAogCWlmICghKHBjaV9yZXNvdXJj ZV9mbGFncyhwZGV2LCAwKSAmIElPUkVTT1VSQ0VfTUVNKSkgewotCQlkZXZfcHJpbnRrKEtF Uk5fRVJSLCAmcGRldi0+ZGV2LCAiQ2Fubm90IGZpbmQgcHJvcGVyIFBDSSBkZXZpY2UgIgor CQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDYW5ub3QgZmluZCBwcm9wZXIgUENJIGRldmljZSAi CiAJCSAgICAgICAiYmFzZSBhZGRyZXNzLCBhYm9ydGluZy5cbiIpOwogCQllcnIgPSAtRU5P REVWOwogCQlnb3RvIGVycl9vdXRfZGlzYWJsZV9wZGV2OwpAQCAtNDkwMiw3ICs0OTAxLDcg QEAgc3RhdGljIGludCBfX2RldmluaXQgY2FzX2luaXRfb25lKHN0cnVjdAogCiAJZGV2ID0g YWxsb2NfZXRoZXJkZXYoc2l6ZW9mKCpjcCkpOwogCWlmICghZGV2KSB7Ci0JCWRldl9wcmlu dGsoS0VSTl9FUlIsICZwZGV2LT5kZXYsICJFdGhlcmRldiBhbGxvYyBmYWlsZWQsIGFib3J0 aW5nLlxuIik7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIkV0aGVyZGV2IGFsbG9jIGZhaWxl ZCwgYWJvcnRpbmcuXG4iKTsKIAkJZXJyID0gLUVOT01FTTsKIAkJZ290byBlcnJfb3V0X2Rp c2FibGVfcGRldjsKIAl9CkBAIC00OTExLDggKzQ5MTAsNyBAQCBzdGF0aWMgaW50IF9fZGV2 aW5pdCBjYXNfaW5pdF9vbmUoc3RydWN0CiAKIAllcnIgPSBwY2lfcmVxdWVzdF9yZWdpb25z KHBkZXYsIGRldi0+bmFtZSk7CiAJaWYgKGVycikgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJS LCAmcGRldi0+ZGV2LCAiQ2Fubm90IG9idGFpbiBQQ0kgcmVzb3VyY2VzLCAiCi0JCSAgICAg ICAiYWJvcnRpbmcuXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ2Fubm90IG9idGFp biBQQ0kgcmVzb3VyY2VzLCBhYm9ydGluZy5cbiIpOwogCQlnb3RvIGVycl9vdXRfZnJlZV9u ZXRkZXY7CiAJfQogCXBjaV9zZXRfbWFzdGVyKHBkZXYpOwpAQCAtNDk0Miw3ICs0OTQwLDcg QEAgI2lmIDEKIAkJaWYgKHBjaV93cml0ZV9jb25maWdfYnl0ZShwZGV2LCAKIAkJCQkJICBQ Q0lfQ0FDSEVfTElORV9TSVpFLCAKIAkJCQkJICBjYXNfY2FjaGVsaW5lX3NpemUpKSB7Ci0J CQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LCAiQ291bGQgbm90IHNldCBQQ0kg Y2FjaGUgIgorCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ291bGQgbm90IHNldCBQQ0kgY2Fj aGUgIgogCQkJICAgICAgICJsaW5lIHNpemVcbiIpOwogCQkJZ290byBlcnJfd3JpdGVfY2Fj aGVsaW5lOwogCQl9CkBAIC00OTU2LDcgKzQ5NTQsNyBAQCAjZW5kaWYKIAkJZXJyID0gcGNp X3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKHBkZXYsCiAJCQkJCQkgIERNQV82NEJJVF9NQVNL KTsKIAkJaWYgKGVyciA8IDApIHsKLQkJCWRldl9wcmludGsoS0VSTl9FUlIsICZwZGV2LT5k ZXYsICJVbmFibGUgdG8gb2J0YWluIDY0LWJpdCBETUEgIgorCQkJZGV2X2VycigmcGRldi0+ ZGV2LCAiVW5hYmxlIHRvIG9idGFpbiA2NC1iaXQgRE1BICIKIAkJCSAgICAgICAiZm9yIGNv bnNpc3RlbnQgYWxsb2NhdGlvbnNcbiIpOwogCQkJZ290byBlcnJfb3V0X2ZyZWVfcmVzOwog CQl9CkBAIC00OTY0LDcgKzQ5NjIsNyBAQCAjZW5kaWYKIAl9IGVsc2UgewogCQllcnIgPSBw Y2lfc2V0X2RtYV9tYXNrKHBkZXYsIERNQV8zMkJJVF9NQVNLKTsKIAkJaWYgKGVycikgewot CQkJZGV2X3ByaW50ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwgIk5vIHVzYWJsZSBETUEgY29u ZmlndXJhdGlvbiwgIgorCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8gdXNhYmxlIERNQSBj b25maWd1cmF0aW9uLCAiCiAJCQkgICAgICAgImFib3J0aW5nLlxuIik7CiAJCQlnb3RvIGVy cl9vdXRfZnJlZV9yZXM7CiAJCX0KQEAgLTUwMjQsOCArNTAyMiw3IEBAICNlbmRpZgogCS8q IGdpdmUgdXMgYWNjZXNzIHRvIGNhc3NpbmkgcmVnaXN0ZXJzICovCiAJY3AtPnJlZ3MgPSBw Y2lfaW9tYXAocGRldiwgMCwgY2FzcmVnX2xlbik7CiAJaWYgKGNwLT5yZWdzID09IDBVTCkg ewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LCAiQ2Fubm90IG1hcCBkZXZp Y2UgcmVnaXN0ZXJzLCAiCi0JCSAgICAgICAiYWJvcnRpbmcuXG4iKTsKKwkJZGV2X2Vycigm cGRldi0+ZGV2LCAiQ2Fubm90IG1hcCBkZXZpY2UgcmVnaXN0ZXJzLCBhYm9ydGluZy5cbiIp OwogCQlnb3RvIGVycl9vdXRfZnJlZV9yZXM7CiAJfQogCWNwLT5jYXNyZWdfbGVuID0gY2Fz cmVnX2xlbjsKQEAgLTUwNDEsOCArNTAzOCw3IEBAICNlbmRpZgogCQlwY2lfYWxsb2NfY29u c2lzdGVudChwZGV2LCBzaXplb2Yoc3RydWN0IGNhc19pbml0X2Jsb2NrKSwKIAkJCQkgICAg ICZjcC0+YmxvY2tfZHZtYSk7CiAJaWYgKCFjcC0+aW5pdF9ibG9jaykgewotCQlkZXZfcHJp bnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LCAiQ2Fubm90IGFsbG9jYXRlIGluaXQgYmxvY2ss ICIKLQkJICAgICAgICJhYm9ydGluZy5cbiIpOworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJD YW5ub3QgYWxsb2NhdGUgaW5pdCBibG9jaywgYWJvcnRpbmcuXG4iKTsKIAkJZ290byBlcnJf b3V0X2lvdW5tYXA7CiAJfQogCkBAIC01MDg2LDggKzUwODIsNyBAQCAjZW5kaWYKIAkJZGV2 LT5mZWF0dXJlcyB8PSBORVRJRl9GX0hJR0hETUE7CiAKIAlpZiAocmVnaXN0ZXJfbmV0ZGV2 KGRldikpIHsKLQkJZGV2X3ByaW50ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwgIkNhbm5vdCBy ZWdpc3RlciBuZXQgZGV2aWNlLCAiCi0JCSAgICAgICAiYWJvcnRpbmcuXG4iKTsKKwkJZGV2 X2VycigmcGRldi0+ZGV2LCAiQ2Fubm90IHJlZ2lzdGVyIG5ldCBkZXZpY2UsIGFib3J0aW5n LlxuIik7CiAJCWdvdG8gZXJyX291dF9mcmVlX2NvbnNpc3RlbnQ7CiAJfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9lZXBybzEwMC5jIGIvZHJpdmVycy9uZXQvZWVwcm8xMDAuYwpp bmRleCAwYjY1YTMxLi43Nzk1ZGU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9lZXBybzEw MC5jCisrKyBiL2RyaXZlcnMvbmV0L2VlcHJvMTAwLmMKQEAgLTU1NiwxNCArNTU2LDEyIEBA ICNlbmRpZgogCiAJaWYgKCFyZXF1ZXN0X3JlZ2lvbihwY2lfcmVzb3VyY2Vfc3RhcnQocGRl diwgMSksCiAJCQlwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDEpLCAiZWVwcm8xMDAiKSkgewot CQlkZXZfcHJpbnRrIChLRVJOX0VSUiwgJnBkZXYtPmRldiwKLQkJCSJlZXBybzEwMDogY2Fu bm90IHJlc2VydmUgSS9PIHBvcnRzXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZWVw cm8xMDA6IGNhbm5vdCByZXNlcnZlIEkvTyBwb3J0c1xuIik7CiAJCWdvdG8gZXJyX291dF9u b25lOwogCX0KIAlpZiAoIXJlcXVlc3RfbWVtX3JlZ2lvbihwY2lfcmVzb3VyY2Vfc3RhcnQo cGRldiwgMCksCiAJCQlwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDApLCAiZWVwcm8xMDAiKSkg ewotCQlkZXZfcHJpbnRrIChLRVJOX0VSUiwgJnBkZXYtPmRldiwKLQkJCSJlZXBybzEwMDog Y2Fubm90IHJlc2VydmUgTU1JTyByZWdpb25cbiIpOworCQlkZXZfZXJyKCZwZGV2LT5kZXYs ICJlZXBybzEwMDogY2Fubm90IHJlc2VydmUgTU1JTyByZWdpb25cbiIpOwogCQlnb3RvIGVy cl9vdXRfZnJlZV9waW9fcmVnaW9uOwogCX0KIApAQCAtNTc2LDcgKzU3NCw3IEBAICNlbmRp ZgogCiAJaW9hZGRyID0gcGNpX2lvbWFwKHBkZXYsIHBjaV9iYXIsIDApOwogCWlmICghaW9h ZGRyKSB7Ci0JCWRldl9wcmludGsgKEtFUk5fRVJSLCAmcGRldi0+ZGV2LCAiZWVwcm8xMDA6 IGNhbm5vdCByZW1hcCBJT1xuIik7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImVlcHJvMTAw OiBjYW5ub3QgcmVtYXAgSU9cbiIpOwogCQlnb3RvIGVycl9vdXRfZnJlZV9tbWlvX3JlZ2lv bjsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2VwaWMxMDAuYyBiL2RyaXZlcnMv bmV0L2VwaWMxMDAuYwppbmRleCAxZWMwNmE1Li43YzEyNDBkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9lcGljMTAwLmMKKysrIGIvZHJpdmVycy9uZXQvZXBpYzEwMC5jCkBAIC0zMzYs NyArMzM2LDcgQEAgI2VuZGlmCiAJaXJxID0gcGRldi0+aXJxOwogCiAJaWYgKHBjaV9yZXNv dXJjZV9sZW4ocGRldiwgMCkgPCBFUElDX1RPVEFMX1NJWkUpIHsKLQkJZGV2X3ByaW50ayhL RVJOX0VSUiwgJnBkZXYtPmRldiwgIm5vIFBDSSByZWdpb24gc3BhY2VcbiIpOworCQlkZXZf ZXJyKCZwZGV2LT5kZXYsICJubyBQQ0kgcmVnaW9uIHNwYWNlXG4iKTsKIAkJcmV0ID0gLUVO T0RFVjsKIAkJZ290byBlcnJfb3V0X2Rpc2FibGU7CiAJfQpAQCAtMzUxLDcgKzM1MSw3IEBA ICNlbmRpZgogCiAJZGV2ID0gYWxsb2NfZXRoZXJkZXYoc2l6ZW9mICgqZXApKTsKIAlpZiAo IWRldikgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LCAibm8gbWVtb3J5 IGZvciBldGggZGV2aWNlXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gbWVtb3J5 IGZvciBldGggZGV2aWNlXG4iKTsKIAkJZ290byBlcnJfb3V0X2ZyZWVfcmVzOwogCX0KIAlT RVRfTU9EVUxFX09XTkVSKGRldik7CkBAIC0zNjMsNyArMzYzLDcgQEAgI2Vsc2UKIAlpb2Fk ZHIgPSBwY2lfcmVzb3VyY2Vfc3RhcnQgKHBkZXYsIDEpOwogCWlvYWRkciA9IChsb25nKSBp b3JlbWFwIChpb2FkZHIsIHBjaV9yZXNvdXJjZV9sZW4gKHBkZXYsIDEpKTsKIAlpZiAoIWlv YWRkcikgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LCAiaW9yZW1hcCBm YWlsZWRcbiIpOworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJpb3JlbWFwIGZhaWxlZFxuIik7 CiAJCWdvdG8gZXJyX291dF9mcmVlX25ldGRldjsKIAl9CiAjZW5kaWYKQEAgLTQ0NSw3ICs0 NDUsNyBAQCAjZW5kaWYKIAkJCWludCBtaWlfc3RhdHVzID0gbWRpb19yZWFkKGRldiwgcGh5 LCBNSUlfQk1TUik7CiAJCQlpZiAobWlpX3N0YXR1cyAhPSAweGZmZmYgICYmICBtaWlfc3Rh dHVzICE9IDB4MDAwMCkgewogCQkJCWVwLT5waHlzW3BoeV9pZHgrK10gPSBwaHk7Ci0JCQkJ ZGV2X3ByaW50ayhLRVJOX0lORk8sICZwZGV2LT5kZXYsCisJCQkJZGV2X2luZm8oJnBkZXYt PmRldiwKIAkJCQkJIk1JSSB0cmFuc2NlaXZlciAjJWQgY29udHJvbCAiCiAJCQkJCSIlNC40 eCBzdGF0dXMgJTQuNHguXG4iLAogCQkJCQlwaHksIG1kaW9fcmVhZChkZXYsIHBoeSwgMCks IG1paV9zdGF0dXMpOwpAQCAtNDU1LDEyICs0NTUsMTIgQEAgI2VuZGlmCiAJCWlmIChwaHlf aWR4ICE9IDApIHsKIAkJCXBoeSA9IGVwLT5waHlzWzBdOwogCQkJZXAtPm1paS5hZHZlcnRp c2luZyA9IG1kaW9fcmVhZChkZXYsIHBoeSwgTUlJX0FEVkVSVElTRSk7Ci0JCQlkZXZfcHJp bnRrKEtFUk5fSU5GTywgJnBkZXYtPmRldiwKKwkJCWRldl9pbmZvKCZwZGV2LT5kZXYsCiAJ CQkJIkF1dG9uZWdvdGlhdGlvbiBhZHZlcnRpc2luZyAlNC40eCBsaW5rICIKIAkJCQkgICAi cGFydG5lciAlNC40eC5cbiIsCiAJCQkJICAgZXAtPm1paS5hZHZlcnRpc2luZywgbWRpb19y ZWFkKGRldiwgcGh5LCA1KSk7CiAJCX0gZWxzZSBpZiAoICEgKGVwLT5jaGlwX2ZsYWdzICYg Tk9fTUlJKSkgewotCQkJZGV2X3ByaW50ayhLRVJOX1dBUk5JTkcsICZwZGV2LT5kZXYsCisJ CQlkZXZfd2FybigmcGRldi0+ZGV2LAogCQkJCSIqKipXQVJOSU5HKioqOiBObyBNSUkgdHJh bnNjZWl2ZXIgZm91bmQhXG4iKTsKIAkJCS8qIFVzZSB0aGUga25vd24gUEhZIGFkZHJlc3Mg b2YgdGhlIEVQSUkuICovCiAJCQllcC0+cGh5c1swXSA9IDM7CkBAIC00NzYsOCArNDc2LDcg QEAgI2VuZGlmCiAJLyogVGhlIGxvd2VyIGZvdXIgYml0cyBhcmUgdGhlIG1lZGlhIHR5cGUu ICovCiAJaWYgKGR1cGxleCkgewogCQllcC0+bWlpLmZvcmNlX21lZGlhID0gZXAtPm1paS5m dWxsX2R1cGxleCA9IDE7Ci0JCWRldl9wcmludGsoS0VSTl9JTkZPLCAmcGRldi0+ZGV2LAot CQkJIkZvcmNlZCBmdWxsIGR1cGxleCBvcGVyYXRpb24gcmVxdWVzdGVkLlxuIik7CisJCWRl dl9pbmZvKCZwZGV2LT5kZXYsICJGb3JjZWQgZnVsbCBkdXBsZXggcmVxdWVzdGVkLlxuIik7 CiAJfQogCWRldi0+aWZfcG9ydCA9IGVwLT5kZWZhdWx0X3BvcnQgPSBvcHRpb247CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2ZlYWxueC5jIGIvZHJpdmVycy9uZXQvZmVhbG54LmMK aW5kZXggOTM2OTA4Mi4uZTI5NTVlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZmVhbG54 LmMKKysrIGIvZHJpdmVycy9uZXQvZmVhbG54LmMKQEAgLTUwNSw3ICs1MDUsNyBAQCAjZW5k aWYKIAkKIAlsZW4gPSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIGJhcik7CiAJaWYgKGxlbiA8 IE1JTl9SRUdJT05fU0laRSkgewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2 LAorCQlkZXZfZXJyKCZwZGV2LT5kZXYsCiAJCQkgICAicmVnaW9uIHNpemUgJWxkIHRvbyBz bWFsbCwgYWJvcnRpbmdcbiIsIGxlbik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KQEAgLTU3 OCw3ICs1NzgsNyBAQCAjZW5kaWYKIAogCQkJaWYgKG1paV9zdGF0dXMgIT0gMHhmZmZmICYm IG1paV9zdGF0dXMgIT0gMHgwMDAwKSB7CiAJCQkJbnAtPnBoeXNbcGh5X2lkeCsrXSA9IHBo eTsKLQkJCQlkZXZfcHJpbnRrKEtFUk5fSU5GTywgJnBkZXYtPmRldiwKKwkJCQlkZXZfaW5m bygmcGRldi0+ZGV2LAogCQkJCSAgICAgICAiTUlJIFBIWSBmb3VuZCBhdCBhZGRyZXNzICVk LCBzdGF0dXMgIgogCQkJCSAgICAgICAiMHglNC40eC5cbiIsIHBoeSwgbWlpX3N0YXR1cyk7 CiAJCQkJLyogZ2V0IHBoeSB0eXBlICovCkBAIC02MDQsNyArNjA0LDcgQEAgI2VuZGlmCiAK IAkJbnAtPm1paV9jbnQgPSBwaHlfaWR4OwogCQlpZiAocGh5X2lkeCA9PSAwKQotCQkJZGV2 X3ByaW50ayhLRVJOX1dBUk5JTkcsICZwZGV2LT5kZXYsCisJCQlkZXZfd2FybigmcGRldi0+ ZGV2LAogCQkJCSJNSUkgUEhZIG5vdCBmb3VuZCAtLSB0aGlzIGRldmljZSBtYXkgIgogCQkJ ICAgICAgICJub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuXG4iKTsKIAl9IGVsc2UgewpAQCAtNjMy LDggKzYzMiw3IEBAICNlbmRpZgogCQlucC0+bWlpLmZ1bGxfZHVwbGV4ID0gZnVsbF9kdXBs ZXhbY2FyZF9pZHhdOwogCiAJaWYgKG5wLT5taWkuZnVsbF9kdXBsZXgpIHsKLQkJZGV2X3By aW50ayhLRVJOX0lORk8sICZwZGV2LT5kZXYsCi0JCQkiTWVkaWEgdHlwZSBmb3JjZWQgdG8g RnVsbCBEdXBsZXguXG4iKTsKKwkJZGV2X2luZm8oJnBkZXYtPmRldiwgIk1lZGlhIHR5cGUg Zm9yY2VkIHRvIEZ1bGwgRHVwbGV4LlxuIik7CiAvKiA4OS82LzEzIGFkZCwgKGJlZ2luKSAq LwogLy8gICAgICBpZiAobnAtPlBIWVR5cGU9PU1hcnZlbGxQSFkpCiAJCWlmICgobnAtPlBI WVR5cGUgPT0gTWFydmVsbFBIWSkgfHwgKG5wLT5QSFlUeXBlID09IExldmVsT25lUEhZKSkg ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmUyay1wY2kuYyBiL2RyaXZlcnMvbmV0L25l MmstcGNpLmMKaW5kZXggYjViZjUzZi4uN2I4MDhkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvbmUyay1wY2kuYworKysgYi9kcml2ZXJzL25ldC9uZTJrLXBjaS5jCkBAIC0yMzEsMTQg KzIzMSwxMiBAQCAjZW5kaWYKIAlpcnEgPSBwZGV2LT5pcnE7CiAKIAlpZiAoIWlvYWRkciB8 fCAoKHBjaV9yZXNvdXJjZV9mbGFncyAocGRldiwgMCkgJiBJT1JFU09VUkNFX0lPKSA9PSAw KSkgewotCQlkZXZfcHJpbnRrIChLRVJOX0VSUiwgJnBkZXYtPmRldiwKLQkJCSJubyBJL08g cmVzb3VyY2UgYXQgUENJIEJBUiAjMFxuIik7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIm5v IEkvTyByZXNvdXJjZSBhdCBQQ0kgQkFSICMwXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJ fQogCiAJaWYgKHJlcXVlc3RfcmVnaW9uIChpb2FkZHIsIE5FX0lPX0VYVEVOVCwgRFJWX05B TUUpID09IE5VTEwpIHsKLQkJZGV2X3ByaW50ayAoS0VSTl9FUlIsICZwZGV2LT5kZXYsCi0J CQkiSS9PIHJlc291cmNlIDB4JXggQCAweCVseCBidXN5XG4iLAorCQlkZXZfZXJyKCZwZGV2 LT5kZXYsICJJL08gcmVzb3VyY2UgMHgleCBAIDB4JWx4IGJ1c3lcbiIsCiAJCQlORV9JT19F WFRFTlQsIGlvYWRkcik7CiAJCXJldHVybiAtRUJVU1k7CiAJfQpAQCAtMjY1LDggKzI2Myw3 IEBAICNlbmRpZgogCS8qIEFsbG9jYXRlIG5ldF9kZXZpY2UsIGRldi0+cHJpdjsgZmlsbCBp biA4MzkwIHNwZWNpZmljIGRldiBmaWVsZHMuICovCiAJZGV2ID0gYWxsb2NfZWlfbmV0ZGV2 KCk7CiAJaWYgKCFkZXYpIHsKLQkJZGV2X3ByaW50ayAoS0VSTl9FUlIsICZwZGV2LT5kZXYs Ci0JCQkiY2Fubm90IGFsbG9jYXRlIGV0aGVybmV0IGRldmljZVxuIik7CisJCWRldl9lcnIo JnBkZXYtPmRldiwgImNhbm5vdCBhbGxvY2F0ZSBldGhlcm5ldCBkZXZpY2VcbiIpOwogCQln b3RvIGVycl9vdXRfZnJlZV9yZXM7CiAJfQogCVNFVF9NT0RVTEVfT1dORVIoZGV2KTsKQEAg LTI4NCw3ICsyODEsNyBAQCAjZW5kaWYKIAkJd2hpbGUgKChpbmIoaW9hZGRyICsgRU4wX0lT UikgJiBFTklTUl9SRVNFVCkgPT0gMCkKIAkJCS8qIExpbWl0IHdhaXQ6ICcyJyBhdm9pZHMg amlmZnkgcm9sbC1vdmVyLiAqLwogCQkJaWYgKGppZmZpZXMgLSByZXNldF9zdGFydF90aW1l ID4gMikgewotCQkJCWRldl9wcmludGsoS0VSTl9FUlIsICZwZGV2LT5kZXYsCisJCQkJZGV2 X2VycigmcGRldi0+ZGV2LAogCQkJCQkiQ2FyZCBmYWlsdXJlIChubyByZXNldCBhY2spLlxu Iik7CiAJCQkJZ290byBlcnJfb3V0X2ZyZWVfbmV0ZGV2OwogCQkJfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvbnM4MzgyMC5jIGIvZHJpdmVycy9uZXQvbnM4MzgyMC5jCmluZGV4IDkx NmVjOTkuLjdhYjJhYjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25zODM4MjAuYworKysg Yi9kcml2ZXJzL25ldC9uczgzODIwLmMKQEAgLTE4MzMsOCArMTgzMyw3IEBAIHN0YXRpYyBp bnQgX19kZXZpbml0IG5zODM4MjBfaW5pdF9vbmUoc3QKIAl9IGVsc2UgaWYgKCFwY2lfc2V0 X2RtYV9tYXNrKHBjaV9kZXYsIERNQV8zMkJJVF9NQVNLKSkgewogCQl1c2luZ19kYWMgPSAw OwogCX0gZWxzZSB7Ci0JCWRldl9wcmludGsoS0VSTl9XQVJOSU5HLCAmcGNpX2Rldi0+ZGV2 LAotCQkJInBjaV9zZXRfZG1hX21hc2sgZmFpbGVkIVxuIik7CisJCWRldl93YXJuKCZwY2lf ZGV2LT5kZXYsICJwY2lfc2V0X2RtYV9tYXNrIGZhaWxlZCFcbiIpOwogCQlyZXR1cm4gLUVO T0RFVjsKIAl9CiAKQEAgLTE4NTcsOCArMTg1Niw3IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0 IG5zODM4MjBfaW5pdF9vbmUoc3QKIAogCWVyciA9IHBjaV9lbmFibGVfZGV2aWNlKHBjaV9k ZXYpOwogCWlmIChlcnIpIHsKLQkJZGV2X3ByaW50ayhLRVJOX0lORk8sICZwY2lfZGV2LT5k ZXYsCi0JCQkicGNpX2VuYWJsZV9kZXYgZmFpbGVkOiAlZFxuIiwgZXJyKTsKKwkJZGV2X2lu Zm8oJnBjaV9kZXYtPmRldiwgInBjaV9lbmFibGVfZGV2IGZhaWxlZDogJWRcbiIsIGVycik7 CiAJCWdvdG8gb3V0X2ZyZWU7CiAJfQogCkBAIC0xODg3LDggKzE4ODUsNyBAQCBzdGF0aWMg aW50IF9fZGV2aW5pdCBuczgzODIwX2luaXRfb25lKHN0CiAJZXJyID0gcmVxdWVzdF9pcnEo cGNpX2Rldi0+aXJxLCBuczgzODIwX2lycSwgU0FfU0hJUlEsCiAJCQkgIERSVl9OQU1FLCBu ZGV2KTsKIAlpZiAoZXJyKSB7Ci0JCWRldl9wcmludGsoS0VSTl9JTkZPLCAmcGNpX2Rldi0+ ZGV2LAotCQkJInVuYWJsZSB0byByZWdpc3RlciBpcnEgJWQsIGVyciAlZFxuIiwKKwkJZGV2 X2luZm8oJnBjaV9kZXYtPmRldiwgInVuYWJsZSB0byByZWdpc3RlciBpcnEgJWQsIGVyciAl ZFxuIiwKIAkJCXBjaV9kZXYtPmlycSwgZXJyKTsKIAkJZ290byBvdXRfZGlzYWJsZTsKIAl9 CkBAIC0xOTAzLDggKzE5MDAsNyBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBuczgzODIwX2lu aXRfb25lKHN0CiAJcnRubF9sb2NrKCk7CiAJZXJyID0gZGV2X2FsbG9jX25hbWUobmRldiwg bmRldi0+bmFtZSk7CiAJaWYgKGVyciA8IDApIHsKLQkJZGV2X3ByaW50ayhLRVJOX0lORk8s ICZwY2lfZGV2LT5kZXYsCi0JCQkidW5hYmxlIHRvIGdldCBuZXRkZXYgbmFtZTogJWRcbiIs IGVycik7CisJCWRldl9pbmZvKCZwY2lfZGV2LT5kZXYsICJ1bmFibGUgdG8gZ2V0IG5ldGRl diBuYW1lOiAlZFxuIiwgZXJyKTsKIAkJZ290byBvdXRfZnJlZV9pcnE7CiAJfQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9wY2ktc2tlbGV0b24uYyBiL2RyaXZlcnMvbmV0L3BjaS1z a2VsZXRvbi5jCmluZGV4IDI3NTRmYWQuLjcxYzFiZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3BjaS1za2VsZXRvbi5jCisrKyBiL2RyaXZlcnMvbmV0L3BjaS1za2VsZXRvbi5jCkBA IC02MDIsOCArNjAyLDcgQEAgc3RhdGljIGludCBfX2RldmluaXQgbmV0ZHJ2X2luaXRfYm9h cmQgKAogCS8qIGRldiB6ZXJvZWQgaW4gYWxsb2NfZXRoZXJkZXYgKi8KIAlkZXYgPSBhbGxv Y19ldGhlcmRldiAoc2l6ZW9mICgqdHApKTsKIAlpZiAoZGV2ID09IE5VTEwpIHsKLQkJZGV2 X3ByaW50ayAoS0VSTl9FUlIsICZwZGV2LT5kZXYsCi0JCQkgICAgInVuYWJsZSB0byBhbGxv YyBuZXcgZXRoZXJuZXRcbiIpOworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ1bmFibGUgdG8g YWxsb2MgbmV3IGV0aGVybmV0XG4iKTsKIAkJRFBSSU5USyAoIkVYSVQsIHJldHVybmluZyAt RU5PTUVNXG4iKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQpAQCAtNjMzLDE2ICs2MzIsMTQg QEAgc3RhdGljIGludCBfX2RldmluaXQgbmV0ZHJ2X2luaXRfYm9hcmQgKAogCiAJLyogbWFr ZSBzdXJlIFBDSSBiYXNlIGFkZHIgMCBpcyBQSU8gKi8KIAlpZiAoIShwaW9fZmxhZ3MgJiBJ T1JFU09VUkNFX0lPKSkgewotCQlkZXZfcHJpbnRrIChLRVJOX0VSUiwgJnBkZXYtPmRldiwK LQkJCSJyZWdpb24gIzAgbm90IGEgUElPIHJlc291cmNlLCBhYm9ydGluZ1xuIik7CisJCWRl dl9lcnIoJnBkZXYtPmRldiwgInJlZ2lvbiAjMCBub3QgYSBQSU8gcmVzb3VyY2UsIGFib3J0 aW5nXG4iKTsKIAkJcmMgPSAtRU5PREVWOwogCQlnb3RvIGVycl9vdXQ7CiAJfQogCiAJLyog bWFrZSBzdXJlIFBDSSBiYXNlIGFkZHIgMSBpcyBNTUlPICovCiAJaWYgKCEobW1pb19mbGFn cyAmIElPUkVTT1VSQ0VfTUVNKSkgewotCQlkZXZfcHJpbnRrIChLRVJOX0VSUiwgJnBkZXYt PmRldiwKLQkJCSJyZWdpb24gIzEgbm90IGFuIE1NSU8gcmVzb3VyY2UsIGFib3J0aW5nXG4i KTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAicmVnaW9uICMxIG5vdCBhbiBNTUlPIHJlc291 cmNlLCBhYm9ydGluZ1xuIik7CiAJCXJjID0gLUVOT0RFVjsKIAkJZ290byBlcnJfb3V0Owog CX0KQEAgLTY1MCw4ICs2NDcsNyBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBuZXRkcnZfaW5p dF9ib2FyZCAoCiAJLyogY2hlY2sgZm9yIHdlaXJkL2Jyb2tlbiBQQ0kgcmVnaW9uIHJlcG9y dGluZyAqLwogCWlmICgocGlvX2xlbiA8IE5FVERSVl9NSU5fSU9fU0laRSkgfHwKIAkgICAg KG1taW9fbGVuIDwgTkVURFJWX01JTl9JT19TSVpFKSkgewotCQlkZXZfcHJpbnRrIChLRVJO X0VSUiwgJnBkZXYtPmRldiwKLQkJCSJJbnZhbGlkIFBDSSByZWdpb24gc2l6ZShzKSwgYWJv cnRpbmdcbiIpOworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJJbnZhbGlkIFBDSSByZWdpb24g c2l6ZShzKSwgYWJvcnRpbmdcbiIpOwogCQlyYyA9IC1FTk9ERVY7CiAJCWdvdG8gZXJyX291 dDsKIAl9CkBAIC02NjgsOCArNjY0LDcgQEAgI2Vsc2UKIAkvKiBpb3JlbWFwIE1NSU8gcmVn aW9uICovCiAJaW9hZGRyID0gaW9yZW1hcCAobW1pb19zdGFydCwgbW1pb19sZW4pOwogCWlm IChpb2FkZHIgPT0gTlVMTCkgewotCQlkZXZfcHJpbnRrIChLRVJOX0VSUiwgJnBkZXYtPmRl diwKLQkJCSJjYW5ub3QgcmVtYXAgTU1JTywgYWJvcnRpbmdcbiIpOworCQlkZXZfZXJyKCZw ZGV2LT5kZXYsICJjYW5ub3QgcmVtYXAgTU1JTywgYWJvcnRpbmdcbiIpOwogCQlyYyA9IC1F SU87CiAJCWdvdG8gZXJyX291dF9mcmVlX3JlczsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9yODE2OS5jIGIvZHJpdmVycy9uZXQvcjgxNjkuYwppbmRleCAyNGE1YjMxLi5hOWQy MjdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9yODE2OS5jCisrKyBiL2RyaXZlcnMvbmV0 L3I4MTY5LmMKQEAgLTE0MDYsOCArMTQwNiw3IEBAIHJ0bDgxNjlfaW5pdF9ib2FyZChzdHJ1 Y3QgcGNpX2RldiAqcGRldiwKIAlkZXYgPSBhbGxvY19ldGhlcmRldihzaXplb2YgKCp0cCkp OwogCWlmIChkZXYgPT0gTlVMTCkgewogCQlpZiAobmV0aWZfbXNnX2RydigmZGVidWcpKQot CQkJZGV2X3ByaW50ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwKLQkJCQkidW5hYmxlIHRvIGFs bG9jIG5ldyBldGhlcm5ldFxuIik7CisJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ1bmFibGUg dG8gYWxsb2MgbmV3IGV0aGVybmV0XG4iKTsKIAkJZ290byBlcnJfb3V0OwogCX0KIApAQCAt MTQyMCw3ICsxNDE5LDcgQEAgcnRsODE2OV9pbml0X2JvYXJkKHN0cnVjdCBwY2lfZGV2ICpw ZGV2LAogCXJjID0gcGNpX2VuYWJsZV9kZXZpY2UocGRldik7CiAJaWYgKHJjIDwgMCkgewog CQlpZiAobmV0aWZfbXNnX3Byb2JlKHRwKSkKLQkJCWRldl9wcmludGsoS0VSTl9FUlIsICZw ZGV2LT5kZXYsICJlbmFibGUgZmFpbHVyZVxuIik7CisJCQlkZXZfZXJyKCZwZGV2LT5kZXYs ICJlbmFibGUgZmFpbHVyZVxuIik7CiAJCWdvdG8gZXJyX291dF9mcmVlX2RldjsKIAl9CiAK QEAgLTE0MzcsMTQgKzE0MzYsMTQgQEAgcnRsODE2OV9pbml0X2JvYXJkKHN0cnVjdCBwY2lf ZGV2ICpwZGV2LAogCQlhY3BpX2lkbGVfc3RhdGUgPSBwd3JfY29tbWFuZCAmIFBDSV9QTV9D VFJMX1NUQVRFX01BU0s7CiAJfSBlbHNlIHsKIAkJaWYgKG5ldGlmX21zZ19wcm9iZSh0cCkp Ci0JCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LAorCQkJZGV2X2VycigmcGRl di0+ZGV2LAogCQkJICAgICAgICJQb3dlck1hbmFnZW1lbnQgY2FwYWJpbGl0eSBub3QgZm91 bmQuXG4iKTsKIAl9CiAKIAkvKiBtYWtlIHN1cmUgUENJIGJhc2UgYWRkciAxIGlzIE1NSU8g Ki8KIAlpZiAoIShwY2lfcmVzb3VyY2VfZmxhZ3MocGRldiwgMSkgJiBJT1JFU09VUkNFX01F TSkpIHsKIAkJaWYgKG5ldGlmX21zZ19wcm9iZSh0cCkpCi0JCQlkZXZfcHJpbnRrKEtFUk5f RVJSLCAmcGRldi0+ZGV2LAorCQkJZGV2X2VycigmcGRldi0+ZGV2LAogCQkJICAgICAgICJy ZWdpb24gIzEgbm90IGFuIE1NSU8gcmVzb3VyY2UsIGFib3J0aW5nXG4iKTsKIAkJcmMgPSAt RU5PREVWOwogCQlnb3RvIGVycl9vdXRfbXdpOwpAQCAtMTQ1Miw3ICsxNDUxLDcgQEAgcnRs ODE2OV9pbml0X2JvYXJkKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCS8qIGNoZWNrIGZvciB3 ZWlyZC9icm9rZW4gUENJIHJlZ2lvbiByZXBvcnRpbmcgKi8KIAlpZiAocGNpX3Jlc291cmNl X2xlbihwZGV2LCAxKSA8IFI4MTY5X1JFR1NfU0laRSkgewogCQlpZiAobmV0aWZfbXNnX3By b2JlKHRwKSkKLQkJCWRldl9wcmludGsoS0VSTl9FUlIsICZwZGV2LT5kZXYsCisJCQlkZXZf ZXJyKCZwZGV2LT5kZXYsCiAJCQkgICAgICAgIkludmFsaWQgUENJIHJlZ2lvbiBzaXplKHMp LCBhYm9ydGluZ1xuIik7CiAJCXJjID0gLUVOT0RFVjsKIAkJZ290byBlcnJfb3V0X213aTsK QEAgLTE0NjEsOCArMTQ2MCw3IEBAIHJ0bDgxNjlfaW5pdF9ib2FyZChzdHJ1Y3QgcGNpX2Rl diAqcGRldiwKIAlyYyA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRldiwgTU9EVUxFTkFNRSk7 CiAJaWYgKHJjIDwgMCkgewogCQlpZiAobmV0aWZfbXNnX3Byb2JlKHRwKSkKLQkJCWRldl9w cmludGsoS0VSTl9FUlIsICZwZGV2LT5kZXYsCi0JCQkJImNvdWxkIG5vdCByZXF1ZXN0IHJl Z2lvbnMuXG4iKTsKKwkJCWRldl9lcnIoJnBkZXYtPmRldiwgImNvdWxkIG5vdCByZXF1ZXN0 IHJlZ2lvbnMuXG4iKTsKIAkJZ290byBlcnJfb3V0X213aTsKIAl9CiAKQEAgLTE0NzYsNyAr MTQ3NCw3IEBAIHJ0bDgxNjlfaW5pdF9ib2FyZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJ cmMgPSBwY2lfc2V0X2RtYV9tYXNrKHBkZXYsIERNQV8zMkJJVF9NQVNLKTsKIAkJaWYgKHJj IDwgMCkgewogCQkJaWYgKG5ldGlmX21zZ19wcm9iZSh0cCkpCi0JCQkJZGV2X3ByaW50ayhL RVJOX0VSUiwgJnBkZXYtPmRldiwKKwkJCQlkZXZfZXJyKCZwZGV2LT5kZXYsCiAJCQkJICAg ICAgICJETUEgY29uZmlndXJhdGlvbiBmYWlsZWQuXG4iKTsKIAkJCWdvdG8gZXJyX291dF9m cmVlX3JlczsKIAkJfQpAQCAtMTQ4OCw4ICsxNDg2LDcgQEAgcnRsODE2OV9pbml0X2JvYXJk KHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCWlvYWRkciA9IGlvcmVtYXAocGNpX3Jlc291cmNl X3N0YXJ0KHBkZXYsIDEpLCBSODE2OV9SRUdTX1NJWkUpOwogCWlmIChpb2FkZHIgPT0gTlVM TCkgewogCQlpZiAobmV0aWZfbXNnX3Byb2JlKHRwKSkKLQkJCWRldl9wcmludGsoS0VSTl9F UlIsICZwZGV2LT5kZXYsCi0JCQkJImNhbm5vdCByZW1hcCBNTUlPLCBhYm9ydGluZ1xuIik7 CisJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJjYW5ub3QgcmVtYXAgTU1JTywgYWJvcnRpbmdc biIpOwogCQlyYyA9IC1FSU87CiAJCWdvdG8gZXJyX291dF9mcmVlX3JlczsKIAl9CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC92aWEtdmVsb2NpdHkuYyBiL2RyaXZlcnMvbmV0L3ZpYS12 ZWxvY2l0eS5jCmluZGV4IDc0MTI0MDAuLmIwY2I1NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3ZpYS12ZWxvY2l0eS5jCisrKyBiL2RyaXZlcnMvbmV0L3ZpYS12ZWxvY2l0eS5jCkBA IC02OTcsMTQgKzY5NywxNCBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCB2ZWxvY2l0eV9mb3Vu ZDEoc3RyCiAJICogY2FuIHN1cHBvcnQgbW9yZSB0aGFuIE1BWF9VTklUUy4KIAkgKi8KIAlp ZiAodmVsb2NpdHlfbmljcyA+PSBNQVhfVU5JVFMpIHsKLQkJZGV2X3ByaW50ayhLRVJOX05P VElDRSwgJnBkZXYtPmRldiwgImFscmVhZHkgZm91bmQgJWQgTklDcy5cbiIsIAorCQlkZXZf bm90aWNlKCZwZGV2LT5kZXYsICJhbHJlYWR5IGZvdW5kICVkIE5JQ3MuXG4iLCAKIAkJCSAg IHZlbG9jaXR5X25pY3MpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKIAlkZXYgPSBhbGxv Y19ldGhlcmRldihzaXplb2Yoc3RydWN0IHZlbG9jaXR5X2luZm8pKTsKIAlpZiAoIWRldikg ewotCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCAmcGRldi0+ZGV2LCAiYWxsb2NhdGUgbmV0IGRl dmljZSBmYWlsZWQuXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiYWxsb2NhdGUgbmV0 IGRldmljZSBmYWlsZWQuXG4iKTsKIAkJZ290byBvdXQ7CiAJfQogCQpAQCAtNzQxLDcgKzc0 MSw3IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IHZlbG9jaXR5X2ZvdW5kMShzdHIKIAogCXJl dCA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRldiwgVkVMT0NJVFlfTkFNRSk7CiAJaWYgKHJl dCA8IDApIHsKLQkJZGV2X3ByaW50ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwgIk5vIFBDSSBy ZXNvdXJjZXMuXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8gUENJIHJlc291cmNl cy5cbiIpOwogCQlnb3RvIGVycl9kaXNhYmxlOwogCX0KIApAQCAtODk3LDE5ICs4OTcsMTkg QEAgc3RhdGljIGludCBfX2RldmluaXQgdmVsb2NpdHlfZ2V0X3BjaV9pbgogCXZwdHItPm1l bWFkZHIgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMSk7CiAJCiAJaWYgKCEocGNpX3Jl c291cmNlX2ZsYWdzKHBkZXYsIDApICYgSU9SRVNPVVJDRV9JTykpIHsKLQkJZGV2X3ByaW50 ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwKKwkJZGV2X2VycigmcGRldi0+ZGV2LAogCQkJICAg InJlZ2lvbiAjMCBpcyBub3QgYW4gSS9PIHJlc291cmNlLCBhYm9ydGluZy5cbiIpOwogCQly ZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAlpZiAoKHBjaV9yZXNvdXJjZV9mbGFncyhwZGV2LCAx KSAmIElPUkVTT1VSQ0VfSU8pKSB7Ci0JCWRldl9wcmludGsoS0VSTl9FUlIsICZwZGV2LT5k ZXYsCisJCWRldl9lcnIoJnBkZXYtPmRldiwKIAkJCSAgICJyZWdpb24gIzEgaXMgYW4gSS9P IHJlc291cmNlLCBhYm9ydGluZy5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAlp ZiAocGNpX3Jlc291cmNlX2xlbihwZGV2LCAxKSA8IFZFTE9DSVRZX0lPX1NJWkUpIHsKLQkJ ZGV2X3ByaW50ayhLRVJOX0VSUiwgJnBkZXYtPmRldiwgInJlZ2lvbiAjMSBpcyB0b28gc21h bGwuXG4iKTsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAicmVnaW9uICMxIGlzIHRvbyBzbWFs bC5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJdnB0ci0+cGRldiA9IHBkZXY7Cg== --------------080104000203080803030505--