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: [1/6] USB: move many drivers to use DEVICE_ATTR_RW From: Greg Kroah-Hartman Message-Id: <20180123102410.29451-1-gregkh@linuxfoundation.org> Date: Tue, 23 Jan 2018 11:24:05 +0100 To: linux-usb@vger.kernel.org Cc: Greg Kroah-Hartman , Matthieu CASTET , Stanislaw Gruszka , Peter Chen , Alan Stern , Mathias Nyman , Bin Liu , Felipe Balbi List-ID: SW5zdGVhZCBvZiAib3BlbiBjb2RpbmciIGEgREVWSUNFX0FUVFIoKSBkZWZpbmUsIHVzZSB0aGUK REVWSUNFX0FUVFJfUlcoKSBtYWNybyBpbnN0ZWFkLCB3aGljaCBkb2VzIGV2ZXJ5dGhpbmcgcHJv cGVybHkgaW5zdGVhZC4KClRoaXMgZG9lcyByZXF1aXJlIGEgZmV3IHN0YXRpYyBmdW5jdGlvbnMg dG8gYmUgcmVuYW1lZCB0byB3b3JrIHByb3Blcmx5LApidXQgdGhhbmtzIHRvIGEgc2NyaXB0IGZy b20gSm9lIFBlcmNoZXMsIHRoaXMgd2FzIGVhc2lseSBkb25lLgoKUmVwb3J0ZWQtYnk6IEpvZSBQ ZXJjaGVzIDxqb2VAcGVyY2hlcy5jb20+CkNjOiBNYXR0aGlldSBDQVNURVQgPGNhc3RldC5tYXR0 aGlldUBmcmVlLmZyPgpDYzogU3RhbmlzbGF3IEdydXN6a2EgPHN0Zl94bEB3cC5wbD4KQ2M6IFBl dGVyIENoZW4gPFBldGVyLkNoZW5AbnhwLmNvbT4KQ2M6IEFsYW4gU3Rlcm4gPHN0ZXJuQHJvd2xh bmQuaGFydmFyZC5lZHU+CkNjOiBNYXRoaWFzIE55bWFuIDxtYXRoaWFzLm55bWFuQGludGVsLmNv bT4KQ2M6IEJpbiBMaXUgPGItbGl1QHRpLmNvbT4KQ2M6IEZlbGlwZSBCYWxiaSA8YmFsYmlAa2Vy bmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhm b3VuZGF0aW9uLm9yZz4KLS0tCiBkcml2ZXJzL3VzYi9hdG0vdWVhZ2xlLWF0bS5jICAgICAgfCAg NiArKystLS0KIGRyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYyAgICAgICB8ICA2ICsrKy0tLQog ZHJpdmVycy91c2IvY2hpcGlkZWEvb3RnX2ZzbS5jICAgIHwgMTkgKysrKysrKysrLS0tLS0tLS0t LQogZHJpdmVycy91c2IvaG9zdC9laGNpLXN5c2ZzLmMgICAgIHwgMTIgKysrKysrLS0tLS0tCiBk cml2ZXJzL3VzYi9ob3N0L2ZvdGcyMTAtaGNkLmMgICAgfCAgNyArKystLS0tCiBkcml2ZXJzL3Vz Yi9ob3N0L3hoY2ktZGJnY2FwLmMgICAgfCAgMiArLQogZHJpdmVycy91c2IvbWlzYy9jeXByZXNz X2N5N2M2My5jIHwgMTIgKysrKysrLS0tLS0tCiBkcml2ZXJzL3VzYi9taXNjL3RyYW5jZXZpYnJh dG9yLmMgfCAgNiArKystLS0KIGRyaXZlcnMvdXNiL21pc2MvdXNic2V2c2VnLmMgICAgICB8IDE4 ICsrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy91c2IvbXVzYi9tdXNiX2NvcmUuYyAgICAgIHwg MTIgKysrKysrLS0tLS0tCiBkcml2ZXJzL3VzYi9waHkvcGh5LW12LXVzYi5jICAgICAgfCAxNCAr KysrKystLS0tLS0tLQogZHJpdmVycy91c2IvcGh5L3BoeS10YWh2by5jICAgICAgIHwgIDIgKy0K IDEyIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2F0bS91ZWFnbGUtYXRtLmMgYi9kcml2ZXJzL3VzYi9hdG0v dWVhZ2xlLWF0bS5jCmluZGV4IGFiNzU2OTAwNDRiYi4uYWRjMDY2MDkyMTlmIDEwMDY0NAotLS0g YS9kcml2ZXJzL3VzYi9hdG0vdWVhZ2xlLWF0bS5jCisrKyBiL2RyaXZlcnMvdXNiL2F0bS91ZWFn bGUtYXRtLmMKQEAgLTIyODAsNyArMjI4MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdWVhX3NvZnRjICpk ZXZfdG9fdWVhKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4gdXNiYXRtLT5kcml2ZXJfZGF0 YTsKIH0KIAotc3RhdGljIHNzaXplX3QgcmVhZF9zdGF0dXMoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKK3N0YXRpYyBzc2l6ZV90IHN0YXRfc3RhdHVz X3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwK IAkJY2hhciAqYnVmKQogewogCWludCByZXQgPSAtRU5PREVWOwpAQCAtMjI5Niw3ICsyMjk2LDcg QEAgc3RhdGljIHNzaXplX3QgcmVhZF9zdGF0dXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgc3NpemVf dCByZWJvb3Qoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0 ciwKK3N0YXRpYyBzc2l6ZV90IHN0YXRfc3RhdHVzX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90 IGNvdW50KQogewogCWludCByZXQgPSAtRU5PREVWOwpAQCAtMjMxMyw3ICsyMzEzLDcgQEAgc3Rh dGljIHNzaXplX3QgcmVib290KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIERFVklDRV9BVFRSKHN0YXRf c3RhdHVzLCBTX0lXVVNSIHwgU19JUlVHTywgcmVhZF9zdGF0dXMsIHJlYm9vdCk7CitzdGF0aWMg REVWSUNFX0FUVFJfUlcoc3RhdF9zdGF0dXMpOwogCiBzdGF0aWMgc3NpemVfdCByZWFkX2h1bWFu X3N0YXR1cyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAq YXR0ciwgY2hhciAqYnVmKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5j IGIvZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jCmluZGV4IGRkMmRkOTM5MWJiNy4uMzNhZTg3 ZmEzZmYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmMKKysrIGIvZHJp dmVycy91c2IvY2hpcGlkZWEvY29yZS5jCkBAIC04MzUsNyArODM1LDcgQEAgc3RhdGljIHZvaWQg Y2lfZ2V0X290Z19jYXBhYmxlKHN0cnVjdCBjaV9oZHJjICpjaSkKIAl9CiB9CiAKLXN0YXRpYyBz c2l6ZV90IGNpX3JvbGVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLAorc3RhdGljIHNzaXplX3Qgcm9sZV9zaG93KHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkgIGNoYXIgKmJ1ZikKIHsKIAlz dHJ1Y3QgY2lfaGRyYyAqY2kgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKQEAgLTg0Niw3ICs4NDYs NyBAQCBzdGF0aWMgc3NpemVfdCBjaV9yb2xlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHNzaXpl X3QgY2lfcm9sZV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCitzdGF0aWMgc3NpemVfdCByb2xl X3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0 dHIsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IG4pCiB7CiAJc3RydWN0IGNpX2hkcmMgKmNpID0g ZGV2X2dldF9kcnZkYXRhKGRldik7CkBAIC04NzcsNyArODc3LDcgQEAgc3RhdGljIHNzaXplX3Qg Y2lfcm9sZV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAKIAlyZXR1cm4gKHJldCA9PSAwKSA/ IG4gOiByZXQ7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIocm9sZSwgMDY0NCwgY2lfcm9sZV9zaG93 LCBjaV9yb2xlX3N0b3JlKTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhyb2xlKTsKIAogc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGUgKmNpX2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX3JvbGUuYXR0ciwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NoaXBpZGVhL290Z19mc20uYyBiL2RyaXZlcnMvdXNi L2NoaXBpZGVhL290Z19mc20uYwppbmRleCA5ZTJkMzAwMDYwYmMuLmQwNzZjZmEyMmZkZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy91c2IvY2hpcGlkZWEvb3RnX2ZzbS5jCisrKyBiL2RyaXZlcnMvdXNi L2NoaXBpZGVhL290Z19mc20uYwpAQCAtMjksNyArMjksNyBAQAogCiAvKiBBZGQgZm9yIG90Zzog aW50ZXJhY3Qgd2l0aCB1c2VyIHNwYWNlIGFwcCAqLwogc3RhdGljIHNzaXplX3QKLWdldF9hX2J1 c19yZXEoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwg Y2hhciAqYnVmKQorYV9idXNfcmVxX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2 aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewogCWNoYXIJCSpuZXh0OwogCXVuc2ln bmVkCXNpemUsIHQ7CkBAIC00NSw3ICs0NSw3IEBAIGdldF9hX2J1c19yZXEoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogfQogCiBz dGF0aWMgc3NpemVfdAotc2V0X2FfYnVzX3JlcShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBk ZXZpY2VfYXR0cmlidXRlICphdHRyLAorYV9idXNfcmVxX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkJCWNvbnN0IGNoYXIgKmJ1Ziwg c2l6ZV90IGNvdW50KQogewogCXN0cnVjdCBjaV9oZHJjICpjaSA9IGRldl9nZXRfZHJ2ZGF0YShk ZXYpOwpAQCAtNzUsMTAgKzc1LDEwIEBAIHNldF9hX2J1c19yZXEoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAogCXJldHVybiBjb3VudDsKIH0KLXN0 YXRpYyBERVZJQ0VfQVRUUihhX2J1c19yZXEsIFNfSVJVR08gfCBTX0lXVVNSLCBnZXRfYV9idXNf cmVxLCBzZXRfYV9idXNfcmVxKTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhhX2J1c19yZXEpOwog CiBzdGF0aWMgc3NpemVfdAotZ2V0X2FfYnVzX2Ryb3Aoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQorYV9idXNfZHJvcF9zaG93KHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1 ZikKIHsKIAljaGFyCQkqbmV4dDsKIAl1bnNpZ25lZAlzaXplLCB0OwpAQCAtOTQsNyArOTQsNyBA QCBnZXRfYV9idXNfZHJvcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmli dXRlICphdHRyLCBjaGFyICpidWYpCiB9CiAKIHN0YXRpYyBzc2l6ZV90Ci1zZXRfYV9idXNfZHJv cChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorYV9i dXNfZHJvcF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLAogCQkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKIAlzdHJ1Y3Qg Y2lfaGRyYwkqY2kgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKQEAgLTExNSwxMSArMTE1LDEwIEBA IHNldF9hX2J1c19kcm9wKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmF0dHIsCiAKIAlyZXR1cm4gY291bnQ7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIoYV9idXNf ZHJvcCwgU19JUlVHTyB8IFNfSVdVU1IsIGdldF9hX2J1c19kcm9wLAotCQkJCQkJc2V0X2FfYnVz X2Ryb3ApOworc3RhdGljIERFVklDRV9BVFRSX1JXKGFfYnVzX2Ryb3ApOwogCiBzdGF0aWMgc3Np emVfdAotZ2V0X2JfYnVzX3JlcShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLCBjaGFyICpidWYpCitiX2J1c19yZXFfc2hvdyhzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7CiAJY2hhcgkJ Km5leHQ7CiAJdW5zaWduZWQJc2l6ZSwgdDsKQEAgLTEzNSw3ICsxMzQsNyBAQCBnZXRfYl9idXNf cmVxKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNo YXIgKmJ1ZikKIH0KIAogc3RhdGljIHNzaXplX3QKLXNldF9iX2J1c19yZXEoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKK2JfYnVzX3JlcV9zdG9yZShz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQkJCQlj b25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKIAlzdHJ1Y3QgY2lfaGRyYwkqY2kgPSBk ZXZfZ2V0X2RydmRhdGEoZGV2KTsKQEAgLTE2MCw3ICsxNTksNyBAQCBzZXRfYl9idXNfcmVxKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAKIAlyZXR1 cm4gY291bnQ7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIoYl9idXNfcmVxLCBTX0lSVUdPIHwgU19J V1VTUiwgZ2V0X2JfYnVzX3JlcSwgc2V0X2JfYnVzX3JlcSk7CitzdGF0aWMgREVWSUNFX0FUVFJf UlcoYl9idXNfcmVxKTsKIAogc3RhdGljIHNzaXplX3QKIHNldF9hX2Nscl9lcnIoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL2hvc3QvZWhjaS1zeXNmcy5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLXN5c2Zz LmMKaW5kZXggNzFmYjYxZGQ0YTg3Li44Zjc1Y2I3YjE5N2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dXNiL2hvc3QvZWhjaS1zeXNmcy5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1zeXNmcy5j CkBAIC03LDcgKzcsNyBAQAogCiAKIC8qIERpc3BsYXkgdGhlIHBvcnRzIGRlZGljYXRlZCB0byB0 aGUgY29tcGFuaW9uIGNvbnRyb2xsZXIgKi8KLXN0YXRpYyBzc2l6ZV90IHNob3dfY29tcGFuaW9u KHN0cnVjdCBkZXZpY2UgKmRldiwKK3N0YXRpYyBzc2l6ZV90IGNvbXBhbmlvbl9zaG93KHN0cnVj dCBkZXZpY2UgKmRldiwKIAkJCSAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAog CQkJICAgICAgY2hhciAqYnVmKQogewpAQCAtMzQsNyArMzQsNyBAQCBzdGF0aWMgc3NpemVfdCBz aG93X2NvbXBhbmlvbihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgKiBTeW50YXggaXMgIlstXXBvcnRu dW0iLCB3aGVyZSBhIGxlYWRpbmcgJy0nIHNpZ24gbWVhbnMKICAqIHJldHVybiBjb250cm9sIG9m IHRoZSBwb3J0IHRvIHRoZSBFSENJIGNvbnRyb2xsZXIuCiAgKi8KLXN0YXRpYyBzc2l6ZV90IHN0 b3JlX2NvbXBhbmlvbihzdHJ1Y3QgZGV2aWNlICpkZXYsCitzdGF0aWMgc3NpemVfdCBjb21wYW5p b25fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCQkJICAgICAgIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLAogCQkJICAgICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQog ewpAQCAtNTksMTMgKzU5LDEzIEBAIHN0YXRpYyBzc2l6ZV90IHN0b3JlX2NvbXBhbmlvbihzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJc2V0X293bmVyKGVoY2ksIHBvcnRudW0sIG5ld19vd25lcik7CiAJ cmV0dXJuIGNvdW50OwogfQotc3RhdGljIERFVklDRV9BVFRSKGNvbXBhbmlvbiwgMDY0NCwgc2hv d19jb21wYW5pb24sIHN0b3JlX2NvbXBhbmlvbik7CitzdGF0aWMgREVWSUNFX0FUVFJfUlcoY29t cGFuaW9uKTsKIAogCiAvKgogICogRGlzcGxheSAvIFNldCB1ZnJhbWVfcGVyaW9kaWNfbWF4CiAg Ki8KLXN0YXRpYyBzc2l6ZV90IHNob3dfdWZyYW1lX3BlcmlvZGljX21heChzdHJ1Y3QgZGV2aWNl ICpkZXYsCitzdGF0aWMgc3NpemVfdCB1ZnJhbWVfcGVyaW9kaWNfbWF4X3Nob3coc3RydWN0IGRl dmljZSAqZGV2LAogCQkJCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJCQkJY2hh ciAqYnVmKQogewpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgc3NpemVfdCBzaG93X3VmcmFtZV9w ZXJpb2RpY19tYXgoc3RydWN0IGRldmljZSAqZGV2LAogfQogCiAKLXN0YXRpYyBzc2l6ZV90IHN0 b3JlX3VmcmFtZV9wZXJpb2RpY19tYXgoc3RydWN0IGRldmljZSAqZGV2LAorc3RhdGljIHNzaXpl X3QgdWZyYW1lX3BlcmlvZGljX21heF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCXN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQkJCQljb25zdCBjaGFyICpidWYsIHNpemVf dCBjb3VudCkKIHsKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgc3NpemVfdCBzdG9yZV91ZnJh bWVfcGVyaW9kaWNfbWF4KHN0cnVjdCBkZXZpY2UgKmRldiwKIAlzcGluX3VubG9ja19pcnFyZXN0 b3JlICgmZWhjaS0+bG9jaywgZmxhZ3MpOwogCXJldHVybiByZXQ7CiB9Ci1zdGF0aWMgREVWSUNF X0FUVFIodWZyYW1lX3BlcmlvZGljX21heCwgMDY0NCwgc2hvd191ZnJhbWVfcGVyaW9kaWNfbWF4 LCBzdG9yZV91ZnJhbWVfcGVyaW9kaWNfbWF4KTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyh1ZnJh bWVfcGVyaW9kaWNfbWF4KTsKIAogCiBzdGF0aWMgaW5saW5lIGludCBjcmVhdGVfc3lzZnNfZmls ZXMoc3RydWN0IGVoY2lfaGNkICplaGNpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9m b3RnMjEwLWhjZC5jIGIvZHJpdmVycy91c2IvaG9zdC9mb3RnMjEwLWhjZC5jCmluZGV4IGYzZTFl N2RmODhhNS4uZDhhYmY0MDE5MThhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L2ZvdGcy MTAtaGNkLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9mb3RnMjEwLWhjZC5jCkBAIC00NjkzLDcg KzQ2OTMsNyBAQCBzdGF0aWMgdm9pZCBzY2FuX2lzb2Moc3RydWN0IGZvdGcyMTBfaGNkICpmb3Rn MjEwKQogCiAvKiBEaXNwbGF5IC8gU2V0IHVmcmFtZV9wZXJpb2RpY19tYXgKICAqLwotc3RhdGlj IHNzaXplX3Qgc2hvd191ZnJhbWVfcGVyaW9kaWNfbWF4KHN0cnVjdCBkZXZpY2UgKmRldiwKK3N0 YXRpYyBzc2l6ZV90IHVmcmFtZV9wZXJpb2RpY19tYXhfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYs CiAJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7CiAJc3RydWN0 IGZvdGcyMTBfaGNkICpmb3RnMjEwOwpAQCAtNDcwNSw3ICs0NzA1LDcgQEAgc3RhdGljIHNzaXpl X3Qgc2hvd191ZnJhbWVfcGVyaW9kaWNfbWF4KHN0cnVjdCBkZXZpY2UgKmRldiwKIH0KIAogCi1z dGF0aWMgc3NpemVfdCBzdG9yZV91ZnJhbWVfcGVyaW9kaWNfbWF4KHN0cnVjdCBkZXZpY2UgKmRl diwKK3N0YXRpYyBzc2l6ZV90IHVmcmFtZV9wZXJpb2RpY19tYXhfc3RvcmUoc3RydWN0IGRldmlj ZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqYnVm LCBzaXplX3QgY291bnQpCiB7CiAJc3RydWN0IGZvdGcyMTBfaGNkICpmb3RnMjEwOwpAQCAtNDc3 Miw4ICs0NzcyLDcgQEAgc3RhdGljIHNzaXplX3Qgc3RvcmVfdWZyYW1lX3BlcmlvZGljX21heChz dHJ1Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIERFVklDRV9BVFRS KHVmcmFtZV9wZXJpb2RpY19tYXgsIDA2NDQsIHNob3dfdWZyYW1lX3BlcmlvZGljX21heCwKLQkJ ICAgc3RvcmVfdWZyYW1lX3BlcmlvZGljX21heCk7CitzdGF0aWMgREVWSUNFX0FUVFJfUlcodWZy YW1lX3BlcmlvZGljX21heCk7CiAKIHN0YXRpYyBpbmxpbmUgaW50IGNyZWF0ZV9zeXNmc19maWxl cyhzdHJ1Y3QgZm90ZzIxMF9oY2QgKmZvdGcyMTApCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Vz Yi9ob3N0L3hoY2ktZGJnY2FwLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktZGJnY2FwLmMKaW5k ZXggNDUyZGYwZjg3ZDZlLi5hMWFiOGFjZjM5YmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hv c3QveGhjaS1kYmdjYXAuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktZGJnY2FwLmMKQEAg LTkyMCw3ICs5MjAsNyBAQCBzdGF0aWMgc3NpemVfdCBkYmNfc3RvcmUoc3RydWN0IGRldmljZSAq ZGV2LAogCXJldHVybiBjb3VudDsKIH0KIAotc3RhdGljIERFVklDRV9BVFRSKGRiYywgMDY0NCwg ZGJjX3Nob3csIGRiY19zdG9yZSk7CitzdGF0aWMgREVWSUNFX0FUVFJfUlcoZGJjKTsKIAogaW50 IHhoY2lfZGJjX2luaXQoc3RydWN0IHhoY2lfaGNkICp4aGNpKQogewpkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2IvbWlzYy9jeXByZXNzX2N5N2M2My5jIGIvZHJpdmVycy91c2IvbWlzYy9jeXByZXNz X2N5N2M2My5jCmluZGV4IGJmNGQyNzc4OTA3ZS4uOWQ3ODBiNzczMTRiIDEwMDY0NAotLS0gYS9k cml2ZXJzL3VzYi9taXNjL2N5cHJlc3NfY3k3YzYzLmMKKysrIGIvZHJpdmVycy91c2IvbWlzYy9j eXByZXNzX2N5N2M2My5jCkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIHNzaXplX3Qgd3JpdGVf cG9ydChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAog fQogCiAvKiBhdHRyaWJ1dGUgY2FsbGJhY2sgaGFuZGxlciAod3JpdGUpICovCi1zdGF0aWMgc3Np emVfdCBzZXRfcG9ydDBfaGFuZGxlcihzdHJ1Y3QgZGV2aWNlICpkZXYsCitzdGF0aWMgc3NpemVf dCBwb3J0MF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLAogCQkJCSBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKQEAg LTE1Miw3ICsxNTIsNyBAQCBzdGF0aWMgc3NpemVfdCBzZXRfcG9ydDBfaGFuZGxlcihzdHJ1Y3Qg ZGV2aWNlICpkZXYsCiB9CiAKIC8qIGF0dHJpYnV0ZSBjYWxsYmFjayBoYW5kbGVyICh3cml0ZSkg Ki8KLXN0YXRpYyBzc2l6ZV90IHNldF9wb3J0MV9oYW5kbGVyKHN0cnVjdCBkZXZpY2UgKmRldiwK K3N0YXRpYyBzc2l6ZV90IHBvcnQxX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJCQkgc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkJIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90 IGNvdW50KQogewpAQCAtMTc4LDIyICsxNzgsMjIgQEAgc3RhdGljIHNzaXplX3QgcmVhZF9wb3J0 KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiB9CiAK IC8qIGF0dHJpYnV0ZSBjYWxsYmFjayBoYW5kbGVyIChyZWFkKSAqLwotc3RhdGljIHNzaXplX3Qg Z2V0X3BvcnQwX2hhbmRsZXIoc3RydWN0IGRldmljZSAqZGV2LAorc3RhdGljIHNzaXplX3QgcG9y dDBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLCBjaGFyICpidWYpCiB7CiAJcmV0dXJuIHJlYWRfcG9ydChkZXYsIGF0dHIsIGJ1Ziwg MCwgQ1lQUkVTU19SRUFEX1BPUlRfSUQwKTsKIH0KIAogLyogYXR0cmlidXRlIGNhbGxiYWNrIGhh bmRsZXIgKHJlYWQpICovCi1zdGF0aWMgc3NpemVfdCBnZXRfcG9ydDFfaGFuZGxlcihzdHJ1Y3Qg ZGV2aWNlICpkZXYsCitzdGF0aWMgc3NpemVfdCBwb3J0MV9zaG93KHN0cnVjdCBkZXZpY2UgKmRl diwKIAkJCQkgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKIAly ZXR1cm4gcmVhZF9wb3J0KGRldiwgYXR0ciwgYnVmLCAxLCBDWVBSRVNTX1JFQURfUE9SVF9JRDEp OwogfQogCi1zdGF0aWMgREVWSUNFX0FUVFIocG9ydDAsIFNfSVJVR08gfCBTX0lXVVNSLCBnZXRf cG9ydDBfaGFuZGxlciwgc2V0X3BvcnQwX2hhbmRsZXIpOworc3RhdGljIERFVklDRV9BVFRSX1JX KHBvcnQwKTsKIAotc3RhdGljIERFVklDRV9BVFRSKHBvcnQxLCBTX0lSVUdPIHwgU19JV1VTUiwg Z2V0X3BvcnQxX2hhbmRsZXIsIHNldF9wb3J0MV9oYW5kbGVyKTsKK3N0YXRpYyBERVZJQ0VfQVRU Ul9SVyhwb3J0MSk7CiAKIAogc3RhdGljIGludCBjeXByZXNzX3Byb2JlKHN0cnVjdCB1c2JfaW50 ZXJmYWNlICppbnRlcmZhY2UsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL3RyYW5jZXZp YnJhdG9yLmMgYi9kcml2ZXJzL3VzYi9taXNjL3RyYW5jZXZpYnJhdG9yLmMKaW5kZXggZDgzYWYy YTMzMmU0Li5iM2UxZjU1Mzk1NGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL21pc2MvdHJhbmNl dmlicmF0b3IuYworKysgYi9kcml2ZXJzL3VzYi9taXNjL3RyYW5jZXZpYnJhdG9yLmMKQEAgLTMw LDcgKzMwLDcgQEAgc3RydWN0IHRyYW5jZXZpYnJhdG9yIHsKIAl1bnNpZ25lZCBpbnQgc3BlZWQ7 CiB9OwogCi1zdGF0aWMgc3NpemVfdCBzaG93X3NwZWVkKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCitzdGF0aWMgc3NpemVfdCBzcGVlZF9zaG93KHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkgIGNo YXIgKmJ1ZikKIHsKIAlzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiA9IHRvX3VzYl9pbnRlcmZh Y2UoZGV2KTsKQEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIHNzaXplX3Qgc2hvd19zcGVlZChzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCXJldHVybiBz cHJpbnRmKGJ1ZiwgIiVkXG4iLCB0di0+c3BlZWQpOwogfQogCi1zdGF0aWMgc3NpemVfdCBzZXRf c3BlZWQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwK K3N0YXRpYyBzc2l6ZV90IHNwZWVkX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQp CiB7CiAJc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYgPSB0b191c2JfaW50ZXJmYWNlKGRldik7 CkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBzc2l6ZV90IHNldF9zcGVlZChzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCXJldHVybiBjb3VudDsKIH0K IAotc3RhdGljIERFVklDRV9BVFRSKHNwZWVkLCBTX0lSVUdPIHwgU19JV1VTUiwgc2hvd19zcGVl ZCwgc2V0X3NwZWVkKTsKK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhzcGVlZCk7CiAKIHN0YXRpYyBp bnQgdHZfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwKIAkJICAgIGNvbnN0 IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL21pc2Mv dXNic2V2c2VnLmMgYi9kcml2ZXJzL3VzYi9taXNjL3VzYnNldnNlZy5jCmluZGV4IDEyZjdlOTQ2 OTVhMi4uNzkzZjZjNDk4ZDVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9taXNjL3VzYnNldnNl Zy5jCisrKyBiL2RyaXZlcnMvdXNiL21pc2MvdXNic2V2c2VnLmMKQEAgLTE4Nyw3ICsxODcsNyBA QCBzdGF0aWMgc3NpemVfdCBzZXRfYXR0cl8jI25hbWUoc3RydWN0IGRldmljZSAqZGV2LCAJCVwK IH0JCQkJCQkJCVwKIHN0YXRpYyBERVZJQ0VfQVRUUihuYW1lLCBTX0lSVUdPIHwgU19JV1VTUiwg c2hvd19hdHRyXyMjbmFtZSwgc2V0X2F0dHJfIyNuYW1lKTsKIAotc3RhdGljIHNzaXplX3Qgc2hv d19hdHRyX3RleHQoc3RydWN0IGRldmljZSAqZGV2LAorc3RhdGljIHNzaXplX3QgdGV4dF9zaG93 KHN0cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hh ciAqYnVmKQogewogCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmID0gdG9fdXNiX2ludGVyZmFj ZShkZXYpOwpAQCAtMTk2LDcgKzE5Niw3IEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfYXR0cl90ZXh0 KHN0cnVjdCBkZXZpY2UgKmRldiwKIAlyZXR1cm4gc25wcmludGYoYnVmLCBteWRldi0+dGV4dGxl bmd0aCwgIiVzXG4iLCBteWRldi0+dGV4dCk7CiB9CiAKLXN0YXRpYyBzc2l6ZV90IHNldF9hdHRy X3RleHQoc3RydWN0IGRldmljZSAqZGV2LAorc3RhdGljIHNzaXplX3QgdGV4dF9zdG9yZShzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNvbnN0IGNo YXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQogewogCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmID0g dG9fdXNiX2ludGVyZmFjZShkZXYpOwpAQCAtMjE2LDkgKzIxNiw5IEBAIHN0YXRpYyBzc2l6ZV90 IHNldF9hdHRyX3RleHQoc3RydWN0IGRldmljZSAqZGV2LAogCXJldHVybiBjb3VudDsKIH0KIAot c3RhdGljIERFVklDRV9BVFRSKHRleHQsIFNfSVJVR08gfCBTX0lXVVNSLCBzaG93X2F0dHJfdGV4 dCwgc2V0X2F0dHJfdGV4dCk7CitzdGF0aWMgREVWSUNFX0FUVFJfUlcodGV4dCk7CiAKLXN0YXRp YyBzc2l6ZV90IHNob3dfYXR0cl9kZWNpbWFscyhzdHJ1Y3QgZGV2aWNlICpkZXYsCitzdGF0aWMg c3NpemVfdCBkZWNpbWFsc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZGV2aWNl X2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewogCXN0cnVjdCB1c2JfaW50ZXJmYWNlICpp bnRmID0gdG9fdXNiX2ludGVyZmFjZShkZXYpOwpAQCAtMjQwLDcgKzI0MCw3IEBAIHN0YXRpYyBz c2l6ZV90IHNob3dfYXR0cl9kZWNpbWFscyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIHNp emVvZihteWRldi0+ZGVjaW1hbHMpICsgMTsKIH0KIAotc3RhdGljIHNzaXplX3Qgc2V0X2F0dHJf ZGVjaW1hbHMoc3RydWN0IGRldmljZSAqZGV2LAorc3RhdGljIHNzaXplX3QgZGVjaW1hbHNfc3Rv cmUoc3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBj b25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKIAlzdHJ1Y3QgdXNiX2ludGVyZmFjZSAq aW50ZiA9IHRvX3VzYl9pbnRlcmZhY2UoZGV2KTsKQEAgLTI2NSw5ICsyNjUsOSBAQCBzdGF0aWMg c3NpemVfdCBzZXRfYXR0cl9kZWNpbWFscyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIGNv dW50OwogfQogCi1zdGF0aWMgREVWSUNFX0FUVFIoZGVjaW1hbHMsIFNfSVJVR08gfCBTX0lXVVNS LCBzaG93X2F0dHJfZGVjaW1hbHMsIHNldF9hdHRyX2RlY2ltYWxzKTsKK3N0YXRpYyBERVZJQ0Vf QVRUUl9SVyhkZWNpbWFscyk7CiAKLXN0YXRpYyBzc2l6ZV90IHNob3dfYXR0cl90ZXh0bW9kZShz dHJ1Y3QgZGV2aWNlICpkZXYsCitzdGF0aWMgc3NpemVfdCB0ZXh0bW9kZV9zaG93KHN0cnVjdCBk ZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQog ewogCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmID0gdG9fdXNiX2ludGVyZmFjZShkZXYpOwpA QCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfYXR0cl90ZXh0bW9kZShzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIHN0cmxlbihidWYpOwogfQogCi1zdGF0aWMgc3NpemVf dCBzZXRfYXR0cl90ZXh0bW9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsCitzdGF0aWMgc3NpemVfdCB0 ZXh0bW9kZV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmF0dHIsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQogewogCXN0cnVjdCB1c2Jf aW50ZXJmYWNlICppbnRmID0gdG9fdXNiX2ludGVyZmFjZShkZXYpOwpAQCAtMzA5LDcgKzMwOSw3 IEBAIHN0YXRpYyBzc2l6ZV90IHNldF9hdHRyX3RleHRtb2RlKHN0cnVjdCBkZXZpY2UgKmRldiwK IAlyZXR1cm4gY291bnQ7CiB9CiAKLXN0YXRpYyBERVZJQ0VfQVRUUih0ZXh0bW9kZSwgU19JUlVH TyB8IFNfSVdVU1IsIHNob3dfYXR0cl90ZXh0bW9kZSwgc2V0X2F0dHJfdGV4dG1vZGUpOworc3Rh dGljIERFVklDRV9BVFRSX1JXKHRleHRtb2RlKTsKIAogCiBNWURFVl9BVFRSX1NJTVBMRV9VTlNJ R05FRChwb3dlcmVkLCB1cGRhdGVfZGlzcGxheV9wb3dlcmVkKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL211c2IvbXVzYl9jb3JlLmMgYi9kcml2ZXJzL3VzYi9tdXNiL211c2JfY29yZS5jCmlu ZGV4IGVhNTAxM2FhNjllMi4uZjRmMjY5MzYwOGU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9t dXNiL211c2JfY29yZS5jCisrKyBiL2RyaXZlcnMvdXNiL211c2IvbXVzYl9jb3JlLmMKQEAgLTE2 ODcsNyArMTY4Nyw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKG11c2JfbWFpbGJveCk7CiAvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0qLwogCiBzdGF0aWMgc3NpemVfdAotbXVzYl9tb2RlX3Nob3coc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQorbW9k ZV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs IGNoYXIgKmJ1ZikKIHsKIAlzdHJ1Y3QgbXVzYiAqbXVzYiA9IGRldl90b19tdXNiKGRldik7CiAJ dW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTE3MDEsNyArMTcwMSw3IEBAIG11c2JfbW9kZV9zaG93 KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIg KmJ1ZikKIH0KIAogc3RhdGljIHNzaXplX3QKLW11c2JfbW9kZV9zdG9yZShzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorbW9kZV9zdG9yZShzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQljb25zdCBjaGFy ICpidWYsIHNpemVfdCBuKQogewogCXN0cnVjdCBtdXNiCSptdXNiID0gZGV2X3RvX211c2IoZGV2 KTsKQEAgLTE3MjEsMTAgKzE3MjEsMTAgQEAgbXVzYl9tb2RlX3N0b3JlKHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAKIAlyZXR1cm4gKHN0YXR1cyA9 PSAwKSA/IG4gOiBzdGF0dXM7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIobW9kZSwgMDY0NCwgbXVz Yl9tb2RlX3Nob3csIG11c2JfbW9kZV9zdG9yZSk7CitzdGF0aWMgREVWSUNFX0FUVFJfUlcobW9k ZSk7CiAKIHN0YXRpYyBzc2l6ZV90Ci1tdXNiX3ZidXNfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKK3ZidXNfc3RvcmUoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkJY29uc3QgY2hhciAqYnVm LCBzaXplX3QgbikKIHsKIAlzdHJ1Y3QgbXVzYgkqbXVzYiA9IGRldl90b19tdXNiKGRldik7CkBA IC0xNzQ4LDcgKzE3NDgsNyBAQCBtdXNiX3ZidXNfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIH0KIAogc3RhdGljIHNzaXplX3QKLW11c2Jf dmJ1c19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0 dHIsIGNoYXIgKmJ1ZikKK3ZidXNfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZp Y2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7CiAJc3RydWN0IG11c2IJKm11c2IgPSBk ZXZfdG9fbXVzYihkZXYpOwogCXVuc2lnbmVkIGxvbmcJZmxhZ3M7CkBAIC0xNzczLDcgKzE3NzMs NyBAQCBtdXNiX3ZidXNfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLCBjaGFyICpidWYpCiAJcmV0dXJuIHNwcmludGYoYnVmLCAiVmJ1cyAlcywg dGltZW91dCAlbHUgbXNlY1xuIiwKIAkJCXZidXMgPyAib24iIDogIm9mZiIsIHZhbCk7CiB9Ci1z dGF0aWMgREVWSUNFX0FUVFIodmJ1cywgMDY0NCwgbXVzYl92YnVzX3Nob3csIG11c2JfdmJ1c19z dG9yZSk7CitzdGF0aWMgREVWSUNFX0FUVFJfUlcodmJ1cyk7CiAKIC8qIEdhZGdldCBkcml2ZXJz IGNhbid0IGtub3cgdGhhdCBhIGhvc3QgaXMgY29ubmVjdGVkIHNvIHRoZXkgbWlnaHQgd2FudAog ICogdG8gc3RhcnQgU1JQLCBidXQgdXNlcnMgY2FuLiAgVGhpcyBhbGxvd3MgdXNlcnNwYWNlIHRv IHRyaWdnZXIgU1JQLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvcGh5L3BoeS1tdi11c2IuYyBi L2RyaXZlcnMvdXNiL3BoeS9waHktbXYtdXNiLmMKaW5kZXggNTU0YjcyMjgyMjc2Li40OWE0ZGQ4 OGMzMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3BoeS9waHktbXYtdXNiLmMKKysrIGIvZHJp dmVycy91c2IvcGh5L3BoeS1tdi11c2IuYwpAQCAtNTE5LDcgKzUxOSw3IEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCBtdl9vdGdfaW5wdXRzX2lycShpbnQgaXJxLCB2b2lkICpkZXYpCiB9CiAKIHN0YXRp YyBzc2l6ZV90Ci1nZXRfYV9idXNfcmVxKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK2FfYnVzX3JlcV9zaG93KHN0cnVjdCBkZXZp Y2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKIAlz dHJ1Y3QgbXZfb3RnICptdm90ZyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXJldHVybiBzY25w cmludGYoYnVmLCBQQUdFX1NJWkUsICIlZFxuIiwKQEAgLTUyNyw3ICs1MjcsNyBAQCBnZXRfYV9i dXNfcmVxKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs IGNoYXIgKmJ1ZikKIH0KIAogc3RhdGljIHNzaXplX3QKLXNldF9hX2J1c19yZXEoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKK2FfYnVzX3JlcV9zdG9y ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCSAg ICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQogewogCXN0cnVjdCBtdl9vdGcgKm12 b3RnID0gZGV2X2dldF9kcnZkYXRhKGRldik7CkBAIC01NTksOCArNTU5LDcgQEAgc2V0X2FfYnVz X3JlcShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAog CXJldHVybiBjb3VudDsKIH0KIAotc3RhdGljIERFVklDRV9BVFRSKGFfYnVzX3JlcSwgU19JUlVH TyB8IFNfSVdVU1IsIGdldF9hX2J1c19yZXEsCi0JCSAgIHNldF9hX2J1c19yZXEpOworc3RhdGlj IERFVklDRV9BVFRSX1JXKGFfYnVzX3JlcSk7CiAKIHN0YXRpYyBzc2l6ZV90CiBzZXRfYV9jbHJf ZXJyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCkBA IC01OTAsNyArNTg5LDcgQEAgc2V0X2FfY2xyX2VycihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogc3RhdGljIERFVklDRV9BVFRSKGFfY2xyX2Vyciwg U19JV1VTUiwgTlVMTCwgc2V0X2FfY2xyX2Vycik7CiAKIHN0YXRpYyBzc2l6ZV90Ci1nZXRfYV9i dXNfZHJvcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy LAorYV9idXNfZHJvcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsCiAJICAgICAgIGNoYXIgKmJ1ZikKIHsKIAlzdHJ1Y3QgbXZfb3RnICptdm90 ZyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwpAQCAtNTk5LDcgKzU5OCw3IEBAIGdldF9hX2J1c19k cm9wKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiB9 CiAKIHN0YXRpYyBzc2l6ZV90Ci1zZXRfYV9idXNfZHJvcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorYV9idXNfZHJvcF9zdG9yZShzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCSAgICAgICBjb25zdCBj aGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKIAlzdHJ1Y3QgbXZfb3RnICptdm90ZyA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOwpAQCAtNjMwLDggKzYyOSw3IEBAIHNldF9hX2J1c19kcm9wKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJcmV0dXJuIGNv dW50OwogfQogCi1zdGF0aWMgREVWSUNFX0FUVFIoYV9idXNfZHJvcCwgU19JUlVHTyB8IFNfSVdV U1IsCi0JCSAgIGdldF9hX2J1c19kcm9wLCBzZXRfYV9idXNfZHJvcCk7CitzdGF0aWMgREVWSUNF X0FUVFJfUlcoYV9idXNfZHJvcCk7CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppbnB1dHNf YXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfYV9idXNfcmVxLmF0dHIsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9waHkvcGh5LXRhaHZvLmMgYi9kcml2ZXJzL3VzYi9waHkvcGh5LXRhaHZvLmMKaW5k ZXggYjNjZTQyZWRiMzczLi43ZjdjNWM4MjQyMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3Bo eS9waHktdGFodm8uYworKysgYi9kcml2ZXJzL3VzYi9waHkvcGh5LXRhaHZvLmMKQEAgLTMxMCw3 ICszMTAsNyBAQCBzdGF0aWMgc3NpemVfdCBvdGdfbW9kZV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpk ZXZpY2UsCiAKIAlyZXR1cm4gcjsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihvdGdfbW9kZSwgMDY0 NCwgb3RnX21vZGVfc2hvdywgb3RnX21vZGVfc3RvcmUpOworc3RhdGljIERFVklDRV9BVFRSX1JX KG90Z19tb2RlKTsKIAogc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnRhaHZvX2F0dHJpYnV0ZXNb XSA9IHsKIAkmZGV2X2F0dHJfdmJ1cy5hdHRyLAo=