From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v6,02/12] usb: typec: Start using ERR_PTR From: Hans de Goede Message-Id: <20180302102057.8917-3-hdegoede@redhat.com> Date: Fri, 2 Mar 2018 11:20:47 +0100 To: Darren Hart , Andy Shevchenko , MyungJoo Ham , Chanwoo Choi , Mathias Nyman , Heikki Krogerus , Greg Kroah-Hartman , Guenter Roeck Cc: Hans de Goede , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org List-ID: RnJvbTogSGVpa2tpIEtyb2dlcnVzIDxoZWlra2kua3JvZ2VydXNAbGludXguaW50ZWwuY29tPgoK SW4gb3JkZXIgdG8gYWxsb3cgdGhlIFVTQiBUeXBlLUMgQ2xhc3MgZHJpdmVyIHRha2UgY2FyZSBv Zgp0aGluZ3MgbGlrZSBtdXhlcyBhbmQgb3RoZXIgcG9zc2libGUgZGVwZW5kZW5jaWVzIGZvciB0 aGUKcG9ydCBkcml2ZXJzLCByZXR1cm5pbmcgRVJSX1BUUiBpbnN0ZWFkIG9mIE5VTEwgZnJvbSB0 aGUKcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBpbiBjYXNlIG9mIGZhaWx1cmUuCgpUaGUgcmVhc29u IGZvciB0YWtpbmcgb3ZlciBjb250cm9sIG9mIHRoZSBtdXhlcyBmb3IgZXhhbXBsZQppcyBiZWNh dXNlIGhhbmRsaW5nIHRoZW0gaW4gdGhlIHBvcnQgZHJpdmVycyB3b3VsZCBiZSBqdXN0CmJvaWxl cnBsYXRlLgoKU2lnbmVkLW9mZi1ieTogSGVpa2tpIEtyb2dlcnVzIDxoZWlra2kua3JvZ2VydXNA bGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVk aGF0LmNvbT4KUmV2aWV3ZWQtYnk6IEd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJvZWNrLXVzLm5ldD4K UmV2aWV3ZWQtYnk6IEFuZHkgU2hldmNoZW5rbyA8YW5keS5zaGV2Y2hlbmtvQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KLS0tCkNo YW5nZXMgaW4gdjQ6Ci1BZGQgQW5keSdzIFJldmlld2VkLWJ5CgpDaGFuZ2VzIGluIHYzOgotQWRk IEd1ZW50ZXIncyBSZXZpZXdlZC1ieQoKQ2hhbmdlcyBpbiB2MjoKLUFkZCBJU19FUlJfT1JfTlVM TCgpIGNoZWNrcyB0byB0aGUgdW5yZWdpc3RlciBmdW5jdGlvbnMKLS0tCiBkcml2ZXJzL3VzYi90 eXBlYy90Y3BtLmMgICAgICB8IDE2ICsrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvdXNiL3R5cGVj L3RwczY1OTh4LmMgIHwgMTUgKysrKysrKystLS0tLS0tCiBkcml2ZXJzL3VzYi90eXBlYy90eXBl Yy5jICAgICB8IDQ0ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IGRyaXZlcnMvdXNiL3R5cGVjL3Vjc2kvdWNzaS5jIHwgMzEgKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3R5cGVjL3RjcG0uYyBiL2RyaXZlcnMvdXNi L3R5cGVjL3RjcG0uYwppbmRleCBmNGQ1NjNlZTc2OTAuLjdjZDI4YjcwMGE3ZiAxMDA2NDQKLS0t IGEvZHJpdmVycy91c2IvdHlwZWMvdGNwbS5jCisrKyBiL2RyaXZlcnMvdXNiL3R5cGVjL3RjcG0u YwpAQCAtMTA0NCw3ICsxMDQ0LDcgQEAgc3RhdGljIGludCB0Y3BtX3BkX3N2ZG0oc3RydWN0IHRj cG1fcG9ydCAqcG9ydCwgY29uc3QgX19sZTMyICpwYXlsb2FkLCBpbnQgY250LAogCQlicmVhazsK IAljYXNlIENNRFRfUlNQX0FDSzoKIAkJLyogc2lsZW50bHkgZHJvcCBtZXNzYWdlIGlmIHdlIGFy ZSBub3QgY29ubmVjdGVkICovCi0JCWlmICghcG9ydC0+cGFydG5lcikKKwkJaWYgKElTX0VSUl9P Ul9OVUxMKHBvcnQtPnBhcnRuZXIpKQogCQkJYnJlYWs7CiAKIAkJc3dpdGNoIChjbWQpIHsKQEAg LTM3NDMsOCArMzc0Myw4IEBAIHN0cnVjdCB0Y3BtX3BvcnQgKnRjcG1fcmVnaXN0ZXJfcG9ydChz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB0Y3BjX2RldiAqdGNwYykKIAlwb3J0LT5wb3J0X3R5 cGUgPSB0Y3BjLT5jb25maWctPnR5cGU7CiAKIAlwb3J0LT50eXBlY19wb3J0ID0gdHlwZWNfcmVn aXN0ZXJfcG9ydChwb3J0LT5kZXYsICZwb3J0LT50eXBlY19jYXBzKTsKLQlpZiAoIXBvcnQtPnR5 cGVjX3BvcnQpIHsKLQkJZXJyID0gLUVOT01FTTsKKwlpZiAoSVNfRVJSKHBvcnQtPnR5cGVjX3Bv cnQpKSB7CisJCWVyciA9IFBUUl9FUlIocG9ydC0+dHlwZWNfcG9ydCk7CiAJCWdvdG8gb3V0X2Rl c3Ryb3lfd3E7CiAJfQogCkBAIC0zNzUzLDE1ICszNzUzLDE3IEBAIHN0cnVjdCB0Y3BtX3BvcnQg KnRjcG1fcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB0Y3BjX2RldiAq dGNwYykKIAogCQlpID0gMDsKIAkJd2hpbGUgKHBhbHRtb2RlLT5zdmlkICYmIGkgPCBBUlJBWV9T SVpFKHBvcnQtPnBvcnRfYWx0bW9kZSkpIHsKLQkJCXBvcnQtPnBvcnRfYWx0bW9kZVtpXSA9Ci0J CQkgIHR5cGVjX3BvcnRfcmVnaXN0ZXJfYWx0bW9kZShwb3J0LT50eXBlY19wb3J0LAotCQkJCQkJ ICAgICAgcGFsdG1vZGUpOwotCQkJaWYgKCFwb3J0LT5wb3J0X2FsdG1vZGVbaV0pIHsKKwkJCXN0 cnVjdCB0eXBlY19hbHRtb2RlICphbHQ7CisKKwkJCWFsdCA9IHR5cGVjX3BvcnRfcmVnaXN0ZXJf YWx0bW9kZShwb3J0LT50eXBlY19wb3J0LAorCQkJCQkJCSAgcGFsdG1vZGUpOworCQkJaWYgKElT X0VSUihhbHQpKSB7CiAJCQkJdGNwbV9sb2cocG9ydCwKIAkJCQkJICIlczogZmFpbGVkIHRvIHJl Z2lzdGVyIHBvcnQgYWx0ZXJuYXRlIG1vZGUgMHgleCIsCiAJCQkJCSBkZXZfbmFtZShkZXYpLCBw YWx0bW9kZS0+c3ZpZCk7CiAJCQkJYnJlYWs7CiAJCQl9CisJCQlwb3J0LT5wb3J0X2FsdG1vZGVb aV0gPSBhbHQ7CiAJCQlpKys7CiAJCQlwYWx0bW9kZSsrOwogCQl9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi90eXBlYy90cHM2NTk4eC5jIGIvZHJpdmVycy91c2IvdHlwZWMvdHBzNjU5OHguYwpp bmRleCAyNzE5ZjVkMzgyZjcuLjM3YTE1YzE0YTZjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Iv dHlwZWMvdHBzNjU5OHguYworKysgYi9kcml2ZXJzL3VzYi90eXBlYy90cHM2NTk4eC5jCkBAIC0x NTgsMTUgKzE1OCwxNSBAQCBzdGF0aWMgaW50IHRwczY1OTh4X2Nvbm5lY3Qoc3RydWN0IHRwczY1 OTh4ICp0cHMsIHUzMiBzdGF0dXMpCiAJCWRlc2MuaWRlbnRpdHkgPSAmdHBzLT5wYXJ0bmVyX2lk ZW50aXR5OwogCX0KIAotCXRwcy0+cGFydG5lciA9IHR5cGVjX3JlZ2lzdGVyX3BhcnRuZXIodHBz LT5wb3J0LCAmZGVzYyk7Ci0JaWYgKCF0cHMtPnBhcnRuZXIpCi0JCXJldHVybiAtRU5PREVWOwot CiAJdHlwZWNfc2V0X3B3cl9vcG1vZGUodHBzLT5wb3J0LCBtb2RlKTsKIAl0eXBlY19zZXRfcHdy X3JvbGUodHBzLT5wb3J0LCBUUFNfU1RBVFVTX1BPUlRST0xFKHN0YXR1cykpOwogCXR5cGVjX3Nl dF92Y29ubl9yb2xlKHRwcy0+cG9ydCwgVFBTX1NUQVRVU19WQ09OTihzdGF0dXMpKTsKIAl0eXBl Y19zZXRfZGF0YV9yb2xlKHRwcy0+cG9ydCwgVFBTX1NUQVRVU19EQVRBUk9MRShzdGF0dXMpKTsK IAorCXRwcy0+cGFydG5lciA9IHR5cGVjX3JlZ2lzdGVyX3BhcnRuZXIodHBzLT5wb3J0LCAmZGVz Yyk7CisJaWYgKElTX0VSUih0cHMtPnBhcnRuZXIpKQorCQlyZXR1cm4gUFRSX0VSUih0cHMtPnBh cnRuZXIpOworCiAJaWYgKGRlc2MuaWRlbnRpdHkpCiAJCXR5cGVjX3BhcnRuZXJfc2V0X2lkZW50 aXR5KHRwcy0+cGFydG5lcik7CiAKQEAgLTE3NSw3ICsxNzUsOCBAQCBzdGF0aWMgaW50IHRwczY1 OTh4X2Nvbm5lY3Qoc3RydWN0IHRwczY1OTh4ICp0cHMsIHUzMiBzdGF0dXMpCiAKIHN0YXRpYyB2 b2lkIHRwczY1OTh4X2Rpc2Nvbm5lY3Qoc3RydWN0IHRwczY1OTh4ICp0cHMsIHUzMiBzdGF0dXMp CiB7Ci0JdHlwZWNfdW5yZWdpc3Rlcl9wYXJ0bmVyKHRwcy0+cGFydG5lcik7CisJaWYgKCFJU19F UlIodHBzLT5wYXJ0bmVyKSkKKwkJdHlwZWNfdW5yZWdpc3Rlcl9wYXJ0bmVyKHRwcy0+cGFydG5l cik7CiAJdHBzLT5wYXJ0bmVyID0gTlVMTDsKIAl0eXBlY19zZXRfcHdyX29wbW9kZSh0cHMtPnBv cnQsIFRZUEVDX1BXUl9NT0RFX1VTQik7CiAJdHlwZWNfc2V0X3B3cl9yb2xlKHRwcy0+cG9ydCwg VFBTX1NUQVRVU19QT1JUUk9MRShzdGF0dXMpKTsKQEAgLTQxOCw4ICs0MTksOCBAQCBzdGF0aWMg aW50IHRwczY1OTh4X3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiAJdHBzLT50eXBl Y19jYXAucHJlZmVyX3JvbGUgPSBUWVBFQ19OT19QUkVGRVJSRURfUk9MRTsKIAogCXRwcy0+cG9y dCA9IHR5cGVjX3JlZ2lzdGVyX3BvcnQoJmNsaWVudC0+ZGV2LCAmdHBzLT50eXBlY19jYXApOwot CWlmICghdHBzLT5wb3J0KQotCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoSVNfRVJSKHRwcy0+cG9y dCkpCisJCXJldHVybiBQVFJfRVJSKHRwcy0+cG9ydCk7CiAKIAlpZiAoc3RhdHVzICYgVFBTX1NU QVRVU19QTFVHX1BSRVNFTlQpIHsKIAkJcmV0ID0gdHBzNjU5OHhfY29ubmVjdCh0cHMsIHN0YXR1 cyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi90eXBlYy90eXBlYy5jIGIvZHJpdmVycy91c2Iv dHlwZWMvdHlwZWMuYwppbmRleCA3MzU3MjZjZWQ2MDIuLmRjMjhhZDg2OGQ5MyAxMDA2NDQKLS0t IGEvZHJpdmVycy91c2IvdHlwZWMvdHlwZWMuYworKysgYi9kcml2ZXJzL3VzYi90eXBlYy90eXBl Yy5jCkBAIC0zODYsNyArMzg2LDcgQEAgdHlwZWNfcmVnaXN0ZXJfYWx0bW9kZShzdHJ1Y3QgZGV2 aWNlICpwYXJlbnQsCiAKIAlhbHQgPSBremFsbG9jKHNpemVvZigqYWx0KSwgR0ZQX0tFUk5FTCk7 CiAJaWYgKCFhbHQpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsK IAogCWFsdC0+c3ZpZCA9IGRlc2MtPnN2aWQ7CiAJYWx0LT5uX21vZGVzID0gZGVzYy0+bl9tb2Rl czsKQEAgLTQwMiw3ICs0MDIsNyBAQCB0eXBlY19yZWdpc3Rlcl9hbHRtb2RlKHN0cnVjdCBkZXZp Y2UgKnBhcmVudCwKIAkJZGV2X2VycihwYXJlbnQsICJmYWlsZWQgdG8gcmVnaXN0ZXIgYWx0ZXJu YXRlIG1vZGUgKCVkKVxuIiwKIAkJCXJldCk7CiAJCXB1dF9kZXZpY2UoJmFsdC0+ZGV2KTsKLQkJ cmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCiAJcmV0dXJuIGFsdDsK QEAgLTQxNyw3ICs0MTcsNyBAQCB0eXBlY19yZWdpc3Rlcl9hbHRtb2RlKHN0cnVjdCBkZXZpY2Ug KnBhcmVudCwKICAqLwogdm9pZCB0eXBlY191bnJlZ2lzdGVyX2FsdG1vZGUoc3RydWN0IHR5cGVj X2FsdG1vZGUgKmFsdCkKIHsKLQlpZiAoYWx0KQorCWlmICghSVNfRVJSX09SX05VTEwoYWx0KSkK IAkJZGV2aWNlX3VucmVnaXN0ZXIoJmFsdC0+ZGV2KTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHR5 cGVjX3VucmVnaXN0ZXJfYWx0bW9kZSk7CkBAIC01MDksNyArNTA5LDcgQEAgRVhQT1JUX1NZTUJP TF9HUEwodHlwZWNfcGFydG5lcl9yZWdpc3Rlcl9hbHRtb2RlKTsKICAqCiAgKiBSZWdpc3RlcnMg YSBkZXZpY2UgZm9yIFVTQiBUeXBlLUMgUGFydG5lciBkZXNjcmliZWQgaW4gQGRlc2MuCiAgKgot ICogUmV0dXJucyBoYW5kbGUgdG8gdGhlIHBhcnRuZXIgb24gc3VjY2VzcyBvciBOVUxMIG9uIGZh aWx1cmUuCisgKiBSZXR1cm5zIGhhbmRsZSB0byB0aGUgcGFydG5lciBvbiBzdWNjZXNzIG9yIEVS Ul9QVFIgb24gZmFpbHVyZS4KICAqLwogc3RydWN0IHR5cGVjX3BhcnRuZXIgKnR5cGVjX3JlZ2lz dGVyX3BhcnRuZXIoc3RydWN0IHR5cGVjX3BvcnQgKnBvcnQsCiAJCQkJCSAgICAgc3RydWN0IHR5 cGVjX3BhcnRuZXJfZGVzYyAqZGVzYykKQEAgLTUxOSw3ICs1MTksNyBAQCBzdHJ1Y3QgdHlwZWNf cGFydG5lciAqdHlwZWNfcmVnaXN0ZXJfcGFydG5lcihzdHJ1Y3QgdHlwZWNfcG9ydCAqcG9ydCwK IAogCXBhcnRuZXIgPSBremFsbG9jKHNpemVvZigqcGFydG5lciksIEdGUF9LRVJORUwpOwogCWlm ICghcGFydG5lcikKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwog CiAJcGFydG5lci0+dXNiX3BkID0gZGVzYy0+dXNiX3BkOwogCXBhcnRuZXItPmFjY2Vzc29yeSA9 IGRlc2MtPmFjY2Vzc29yeTsKQEAgLTU0Miw3ICs1NDIsNyBAQCBzdHJ1Y3QgdHlwZWNfcGFydG5l ciAqdHlwZWNfcmVnaXN0ZXJfcGFydG5lcihzdHJ1Y3QgdHlwZWNfcG9ydCAqcG9ydCwKIAlpZiAo cmV0KSB7CiAJCWRldl9lcnIoJnBvcnQtPmRldiwgImZhaWxlZCB0byByZWdpc3RlciBwYXJ0bmVy ICglZClcbiIsIHJldCk7CiAJCXB1dF9kZXZpY2UoJnBhcnRuZXItPmRldik7Ci0JCXJldHVybiBO VUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCXJldHVybiBwYXJ0bmVyOwpAQCAt NTU3LDcgKzU1Nyw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHR5cGVjX3JlZ2lzdGVyX3BhcnRuZXIp OwogICovCiB2b2lkIHR5cGVjX3VucmVnaXN0ZXJfcGFydG5lcihzdHJ1Y3QgdHlwZWNfcGFydG5l ciAqcGFydG5lcikKIHsKLQlpZiAocGFydG5lcikKKwlpZiAoIUlTX0VSUl9PUl9OVUxMKHBhcnRu ZXIpKQogCQlkZXZpY2VfdW5yZWdpc3RlcigmcGFydG5lci0+ZGV2KTsKIH0KIEVYUE9SVF9TWU1C T0xfR1BMKHR5cGVjX3VucmVnaXN0ZXJfcGFydG5lcik7CkBAIC01ODcsNyArNTg3LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSB0eXBlY19wbHVnX2Rldl90eXBlID0gewogICog dGhlIHBsdWcgbGlzdHMgaW4gcmVzcG9uc2UgdG8gRGlzY292ZXIgTW9kZXMgY29tbWFuZCBuZWVk IHRvIGJlIGxpc3RlZCBpbiBhbgogICogYXJyYXkgaW4gQGRlc2MuCiAgKgotICogUmV0dXJucyBo YW5kbGUgdG8gdGhlIGFsdGVybmF0ZSBtb2RlIG9uIHN1Y2Nlc3Mgb3IgTlVMTCBvbiBmYWlsdXJl LgorICogUmV0dXJucyBoYW5kbGUgdG8gdGhlIGFsdGVybmF0ZSBtb2RlIG9uIHN1Y2Nlc3Mgb3Ig RVJSX1BUUiBvbiBmYWlsdXJlLgogICovCiBzdHJ1Y3QgdHlwZWNfYWx0bW9kZSAqCiB0eXBlY19w bHVnX3JlZ2lzdGVyX2FsdG1vZGUoc3RydWN0IHR5cGVjX3BsdWcgKnBsdWcsCkBAIC02MDYsNyAr NjA2LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwodHlwZWNfcGx1Z19yZWdpc3Rlcl9hbHRtb2RlKTsK ICAqIENhYmxlIFBsdWcgcmVwcmVzZW50cyBhIHBsdWcgd2l0aCBlbGVjdHJvbmljcyBpbiBpdCB0 aGF0IGNhbiByZXNwb25zZSB0byBVU0IKICAqIFBvd2VyIERlbGl2ZXJ5IFNPUCBQcmltZSBvciBT T1AgRG91YmxlIFByaW1lIHBhY2thZ2VzLgogICoKLSAqIFJldHVybnMgaGFuZGxlIHRvIHRoZSBj YWJsZSBwbHVnIG9uIHN1Y2Nlc3Mgb3IgTlVMTCBvbiBmYWlsdXJlLgorICogUmV0dXJucyBoYW5k bGUgdG8gdGhlIGNhYmxlIHBsdWcgb24gc3VjY2VzcyBvciBFUlJfUFRSIG9uIGZhaWx1cmUuCiAg Ki8KIHN0cnVjdCB0eXBlY19wbHVnICp0eXBlY19yZWdpc3Rlcl9wbHVnKHN0cnVjdCB0eXBlY19j YWJsZSAqY2FibGUsCiAJCQkJICAgICAgIHN0cnVjdCB0eXBlY19wbHVnX2Rlc2MgKmRlc2MpCkBA IC02MTcsNyArNjE3LDcgQEAgc3RydWN0IHR5cGVjX3BsdWcgKnR5cGVjX3JlZ2lzdGVyX3BsdWco c3RydWN0IHR5cGVjX2NhYmxlICpjYWJsZSwKIAogCXBsdWcgPSBremFsbG9jKHNpemVvZigqcGx1 ZyksIEdGUF9LRVJORUwpOwogCWlmICghcGx1ZykKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOwogCiAJc3ByaW50ZihuYW1lLCAicGx1ZyVkIiwgZGVzYy0+aW5kZXgp OwogCkBAIC02MzEsNyArNjMxLDcgQEAgc3RydWN0IHR5cGVjX3BsdWcgKnR5cGVjX3JlZ2lzdGVy X3BsdWcoc3RydWN0IHR5cGVjX2NhYmxlICpjYWJsZSwKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIo JmNhYmxlLT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgcGx1ZyAoJWQpXG4iLCByZXQpOwogCQlw dXRfZGV2aWNlKCZwbHVnLT5kZXYpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIo cmV0KTsKIAl9CiAKIAlyZXR1cm4gcGx1ZzsKQEAgLTY0Niw3ICs2NDYsNyBAQCBFWFBPUlRfU1lN Qk9MX0dQTCh0eXBlY19yZWdpc3Rlcl9wbHVnKTsKICAqLwogdm9pZCB0eXBlY191bnJlZ2lzdGVy X3BsdWcoc3RydWN0IHR5cGVjX3BsdWcgKnBsdWcpCiB7Ci0JaWYgKHBsdWcpCisJaWYgKCFJU19F UlJfT1JfTlVMTChwbHVnKSkKIAkJZGV2aWNlX3VucmVnaXN0ZXIoJnBsdWctPmRldik7CiB9CiBF WFBPUlRfU1lNQk9MX0dQTCh0eXBlY191bnJlZ2lzdGVyX3BsdWcpOwpAQCAtNzI0LDcgKzcyNCw3 IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHR5cGVjX2NhYmxlX3NldF9pZGVudGl0eSk7CiAgKiBSZWdp c3RlcnMgYSBkZXZpY2UgZm9yIFVTQiBUeXBlLUMgQ2FibGUgZGVzY3JpYmVkIGluIEBkZXNjLiBU aGUgY2FibGUgd2lsbCBiZQogICogcGFyZW50IGZvciB0aGUgb3B0aW9uYWwgY2FibGUgcGx1ZyBk ZXZpc2VzLgogICoKLSAqIFJldHVybnMgaGFuZGxlIHRvIHRoZSBjYWJsZSBvbiBzdWNjZXNzIG9y IE5VTEwgb24gZmFpbHVyZS4KKyAqIFJldHVybnMgaGFuZGxlIHRvIHRoZSBjYWJsZSBvbiBzdWNj ZXNzIG9yIEVSUl9QVFIgb24gZmFpbHVyZS4KICAqLwogc3RydWN0IHR5cGVjX2NhYmxlICp0eXBl Y19yZWdpc3Rlcl9jYWJsZShzdHJ1Y3QgdHlwZWNfcG9ydCAqcG9ydCwKIAkJCQkJIHN0cnVjdCB0 eXBlY19jYWJsZV9kZXNjICpkZXNjKQpAQCAtNzM0LDcgKzczNCw3IEBAIHN0cnVjdCB0eXBlY19j YWJsZSAqdHlwZWNfcmVnaXN0ZXJfY2FibGUoc3RydWN0IHR5cGVjX3BvcnQgKnBvcnQsCiAKIAlj YWJsZSA9IGt6YWxsb2Moc2l6ZW9mKCpjYWJsZSksIEdGUF9LRVJORUwpOwogCWlmICghY2FibGUp Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCWNhYmxlLT50 eXBlID0gZGVzYy0+dHlwZTsKIAljYWJsZS0+YWN0aXZlID0gZGVzYy0+YWN0aXZlOwpAQCAtNzU3 LDcgKzc1Nyw3IEBAIHN0cnVjdCB0eXBlY19jYWJsZSAqdHlwZWNfcmVnaXN0ZXJfY2FibGUoc3Ry dWN0IHR5cGVjX3BvcnQgKnBvcnQsCiAJaWYgKHJldCkgewogCQlkZXZfZXJyKCZwb3J0LT5kZXYs ICJmYWlsZWQgdG8gcmVnaXN0ZXIgY2FibGUgKCVkKVxuIiwgcmV0KTsKIAkJcHV0X2RldmljZSgm Y2FibGUtPmRldik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0K IAogCXJldHVybiBjYWJsZTsKQEAgLTc3Miw3ICs3NzIsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTCh0 eXBlY19yZWdpc3Rlcl9jYWJsZSk7CiAgKi8KIHZvaWQgdHlwZWNfdW5yZWdpc3Rlcl9jYWJsZShz dHJ1Y3QgdHlwZWNfY2FibGUgKmNhYmxlKQogewotCWlmIChjYWJsZSkKKwlpZiAoIUlTX0VSUl9P Ul9OVUxMKGNhYmxlKSkKIAkJZGV2aWNlX3VucmVnaXN0ZXIoJmNhYmxlLT5kZXYpOwogfQogRVhQ T1JUX1NZTUJPTF9HUEwodHlwZWNfdW5yZWdpc3Rlcl9jYWJsZSk7CkBAIC0xMjU2LDcgKzEyNTYs NyBAQCBFWFBPUlRfU1lNQk9MX0dQTCh0eXBlY19zZXRfcHdyX29wbW9kZSk7CiAgKiBUaGlzIHJv dXRpbmUgaXMgdXNlZCB0byByZWdpc3RlciBhbiBhbHRlcm5hdGUgbW9kZSB0aGF0IEBwb3J0IGlz IGNhcGFibGUgb2YKICAqIHN1cHBvcnRpbmcuCiAgKgotICogUmV0dXJucyBoYW5kbGUgdG8gdGhl IGFsdGVybmF0ZSBtb2RlIG9uIHN1Y2Nlc3Mgb3IgTlVMTCBvbiBmYWlsdXJlLgorICogUmV0dXJu cyBoYW5kbGUgdG8gdGhlIGFsdGVybmF0ZSBtb2RlIG9uIHN1Y2Nlc3Mgb3IgRVJSX1BUUiBvbiBm YWlsdXJlLgogICovCiBzdHJ1Y3QgdHlwZWNfYWx0bW9kZSAqCiB0eXBlY19wb3J0X3JlZ2lzdGVy X2FsdG1vZGUoc3RydWN0IHR5cGVjX3BvcnQgKnBvcnQsCkBAIC0xMjczLDcgKzEyNzMsNyBAQCBF WFBPUlRfU1lNQk9MX0dQTCh0eXBlY19wb3J0X3JlZ2lzdGVyX2FsdG1vZGUpOwogICoKICAqIFJl Z2lzdGVycyBhIGRldmljZSBmb3IgVVNCIFR5cGUtQyBQb3J0IGRlc2NyaWJlZCBpbiBAY2FwLgog ICoKLSAqIFJldHVybnMgaGFuZGxlIHRvIHRoZSBwb3J0IG9uIHN1Y2Nlc3Mgb3IgTlVMTCBvbiBm YWlsdXJlLgorICogUmV0dXJucyBoYW5kbGUgdG8gdGhlIHBvcnQgb24gc3VjY2VzcyBvciBFUlJf UFRSIG9uIGZhaWx1cmUuCiAgKi8KIHN0cnVjdCB0eXBlY19wb3J0ICp0eXBlY19yZWdpc3Rlcl9w b3J0KHN0cnVjdCBkZXZpY2UgKnBhcmVudCwKIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IHR5cGVj X2NhcGFiaWxpdHkgKmNhcCkKQEAgLTEyODUsMTIgKzEyODUsMTIgQEAgc3RydWN0IHR5cGVjX3Bv cnQgKnR5cGVjX3JlZ2lzdGVyX3BvcnQoc3RydWN0IGRldmljZSAqcGFyZW50LAogCiAJcG9ydCA9 IGt6YWxsb2Moc2l6ZW9mKCpwb3J0KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwb3J0KQotCQlyZXR1 cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlpZCA9IGlkYV9zaW1wbGVf Z2V0KCZ0eXBlY19pbmRleF9pZGEsIDAsIDAsIEdGUF9LRVJORUwpOwogCWlmIChpZCA8IDApIHsK IAkJa2ZyZWUocG9ydCk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihpZCk7CiAJ fQogCiAJaWYgKGNhcC0+dHlwZSA9PSBUWVBFQ19QT1JUX0RGUCkKQEAgLTEzMjYsNyArMTMyNiw3 IEBAIHN0cnVjdCB0eXBlY19wb3J0ICp0eXBlY19yZWdpc3Rlcl9wb3J0KHN0cnVjdCBkZXZpY2Ug KnBhcmVudCwKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIocGFyZW50LCAiZmFpbGVkIHRvIHJlZ2lz dGVyIHBvcnQgKCVkKVxuIiwgcmV0KTsKIAkJcHV0X2RldmljZSgmcG9ydC0+ZGV2KTsKLQkJcmV0 dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCiAJcmV0dXJuIHBvcnQ7CkBA IC0xMzQxLDcgKzEzNDEsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTCh0eXBlY19yZWdpc3Rlcl9wb3J0 KTsKICAqLwogdm9pZCB0eXBlY191bnJlZ2lzdGVyX3BvcnQoc3RydWN0IHR5cGVjX3BvcnQgKnBv cnQpCiB7Ci0JaWYgKHBvcnQpCisJaWYgKCFJU19FUlJfT1JfTlVMTChwb3J0KSkKIAkJZGV2aWNl X3VucmVnaXN0ZXIoJnBvcnQtPmRldik7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh0eXBlY191bnJl Z2lzdGVyX3BvcnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdHlwZWMvdWNzaS91Y3NpLmMg Yi9kcml2ZXJzL3VzYi90eXBlYy91Y3NpL3Vjc2kuYwppbmRleCA3OTA0NmZlNjY0MjYuLjY5ZDU0 NGNmY2Q0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvdHlwZWMvdWNzaS91Y3NpLmMKKysrIGIv ZHJpdmVycy91c2IvdHlwZWMvdWNzaS91Y3NpLmMKQEAgLTI2MCwzOCArMjYwLDQ1IEBAIHN0YXRp YyB2b2lkIHVjc2lfcHdyX29wbW9kZV9jaGFuZ2Uoc3RydWN0IHVjc2lfY29ubmVjdG9yICpjb24p CiAKIHN0YXRpYyBpbnQgdWNzaV9yZWdpc3Rlcl9wYXJ0bmVyKHN0cnVjdCB1Y3NpX2Nvbm5lY3Rv ciAqY29uKQogewotCXN0cnVjdCB0eXBlY19wYXJ0bmVyX2Rlc2MgcGFydG5lcjsKKwlzdHJ1Y3Qg dHlwZWNfcGFydG5lcl9kZXNjIGRlc2M7CisJc3RydWN0IHR5cGVjX3BhcnRuZXIgKnBhcnRuZXI7 CiAKIAlpZiAoY29uLT5wYXJ0bmVyKQogCQlyZXR1cm4gMDsKIAotCW1lbXNldCgmcGFydG5lciwg MCwgc2l6ZW9mKHBhcnRuZXIpKTsKKwltZW1zZXQoJmRlc2MsIDAsIHNpemVvZihkZXNjKSk7CiAK IAlzd2l0Y2ggKGNvbi0+c3RhdHVzLnBhcnRuZXJfdHlwZSkgewogCWNhc2UgVUNTSV9DT05TVEFU X1BBUlRORVJfVFlQRV9ERUJVRzoKLQkJcGFydG5lci5hY2Nlc3NvcnkgPSBUWVBFQ19BQ0NFU1NP UllfREVCVUc7CisJCWRlc2MuYWNjZXNzb3J5ID0gVFlQRUNfQUNDRVNTT1JZX0RFQlVHOwogCQli cmVhazsKIAljYXNlIFVDU0lfQ09OU1RBVF9QQVJUTkVSX1RZUEVfQVVESU86Ci0JCXBhcnRuZXIu YWNjZXNzb3J5ID0gVFlQRUNfQUNDRVNTT1JZX0FVRElPOworCQlkZXNjLmFjY2Vzc29yeSA9IFRZ UEVDX0FDQ0VTU09SWV9BVURJTzsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJYnJlYWs7CiAJfQog Ci0JcGFydG5lci51c2JfcGQgPSBjb24tPnN0YXR1cy5wd3Jfb3BfbW9kZSA9PSBVQ1NJX0NPTlNU QVRfUFdSX09QTU9ERV9QRDsKKwlkZXNjLnVzYl9wZCA9IGNvbi0+c3RhdHVzLnB3cl9vcF9tb2Rl ID09IFVDU0lfQ09OU1RBVF9QV1JfT1BNT0RFX1BEOwogCi0JY29uLT5wYXJ0bmVyID0gdHlwZWNf cmVnaXN0ZXJfcGFydG5lcihjb24tPnBvcnQsICZwYXJ0bmVyKTsKLQlpZiAoIWNvbi0+cGFydG5l cikgewotCQlkZXZfZXJyKGNvbi0+dWNzaS0+ZGV2LCAiY29uJWQ6IGZhaWxlZCB0byByZWdpc3Rl ciBwYXJ0bmVyXG4iLAotCQkJY29uLT5udW0pOwotCQlyZXR1cm4gLUVOT0RFVjsKKwlwYXJ0bmVy ID0gdHlwZWNfcmVnaXN0ZXJfcGFydG5lcihjb24tPnBvcnQsICZkZXNjKTsKKwlpZiAoSVNfRVJS KHBhcnRuZXIpKSB7CisJCWRldl9lcnIoY29uLT51Y3NpLT5kZXYsCisJCQkiY29uJWQ6IGZhaWxl ZCB0byByZWdpc3RlciBwYXJ0bmVyICglbGQpXG4iLCBjb24tPm51bSwKKwkJCVBUUl9FUlIocGFy dG5lcikpOworCQlyZXR1cm4gUFRSX0VSUihwYXJ0bmVyKTsKIAl9CiAKKwljb24tPnBhcnRuZXIg PSBwYXJ0bmVyOworCiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIHVjc2lfdW5yZWdpc3Rl cl9wYXJ0bmVyKHN0cnVjdCB1Y3NpX2Nvbm5lY3RvciAqY29uKQogeworCWlmICghY29uLT5wYXJ0 bmVyKQorCQlyZXR1cm47CisKIAl0eXBlY191bnJlZ2lzdGVyX3BhcnRuZXIoY29uLT5wYXJ0bmVy KTsKIAljb24tPnBhcnRuZXIgPSBOVUxMOwogfQpAQCAtNjA2LDggKzYxMyw4IEBAIHN0YXRpYyBp bnQgdWNzaV9yZWdpc3Rlcl9wb3J0KHN0cnVjdCB1Y3NpICp1Y3NpLCBpbnQgaW5kZXgpCiAKIAkv KiBSZWdpc3RlciB0aGUgY29ubmVjdG9yICovCiAJY29uLT5wb3J0ID0gdHlwZWNfcmVnaXN0ZXJf cG9ydCh1Y3NpLT5kZXYsIGNhcCk7Ci0JaWYgKCFjb24tPnBvcnQpCi0JCXJldHVybiAtRU5PREVW OworCWlmIChJU19FUlIoY29uLT5wb3J0KSkKKwkJcmV0dXJuIFBUUl9FUlIoY29uLT5wb3J0KTsK IAogCS8qIEdldCB0aGUgc3RhdHVzICovCiAJVUNTSV9DTURfR0VUX0NPTk5FQ1RPUl9TVEFUVVMo Y3RybCwgY29uLT5udW0pOwo=