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: [regression] USB power management failure to suspend / high CPU usage From: Mathias Nyman Message-Id: Date: Mon, 4 Mar 2019 17:15:15 +0200 To: Ivan Mironov , Eric Blau Cc: Alan Stern , linux-usb@vger.kernel.org List-ID: T24gMjYuMi4yMDE5IDAuMTEsIEl2YW4gTWlyb25vdiB3cm90ZToKPiBPbiBXZWQsIDIwMTktMDIt MjAgYXQgMTk6MjggKzAyMDAsIE1hdGhpYXMgTnltYW4gd3JvdGU6Cj4+IE9uIDE0LjIuMjAxOSAy MC4wNCwgRXJpYyBCbGF1IHdyb3RlOgo+Pj4gT24gVGh1LCBGZWIgMTQsIDIwMTkgYXQgOTo1NiBB TSBNYXRoaWFzIE55bWFuCj4+PiA8bWF0aGlhcy5ueW1hbkBsaW51eC5pbnRlbC5jb20+IHdyb3Rl Ogo+Pj4+PiBUaGFua3MgZm9yIGxvb2tpbmcgaW50byB0aGlzLCBNYXRoaWFzLiBOb3cgdGhhdCB5 b3UgcG9pbnQgdGhpcyBvdXQsIG9uCj4+Pj4+IG9sZGVyIGtlcm5lbHMgd2hlcmUgc3VzcGVuZCBh bmQgcmVzdW1lIHdvcmtzLCBJIG5vdGljZWQgdGhlIGZvbGxvd2luZwo+Pj4+PiBsb2cgbWVzc2Fn ZXMgZW1pdHRlZCB3aGVuIHJlc3VtaW5nIGZyb20gc3VzcGVuZDoKPj4+Pj4KPj4+Pj4gRmViIDA2 IDE4OjU4OjA1IGVyaWMtbWFjYm9va3BybyBrZXJuZWw6IHVzYiB1c2IyLXBvcnQzOiBDYW5ub3Qg ZW5hYmxlLgo+Pj4+PiBNYXliZSB0aGUgVVNCIGNhYmxlIGlzIGJhZD8KPj4+Pgo+Pj4+IEF0dGFj aGVkIGEgdGVzdHBhdGNoIHRoYXQgc2hvdWxkIHJlYWN0IHRvIHBvcnRzIHN0dWNrIGluIHBvbGxp bmcgc3RhdGUsCj4+Pj4gYW5kIHdhcm0gcmVzZXQgdGhlbS4KPj4+Pgo+Pj4+IEl0IGRvZXNuJ3Qg bGltaXQgdGhlIG51bWJlcnMgb2YgcmVzZXQgdHJpZXMsIG9yIGFsbG93IHN5c3RlbSBzdXNwZW5k IHdpdGggcG9ydHMKPj4+PiBzdHVjayBpbiBwb2xsaW5nIHN0YXRlLCBidXQgSSdkIGxpa2UgdG8g a25vdyBob3cgdGhlIE1hY0Jvb2sgcmVhY3RzIHRvIGl0Cj4+Pj4KPj4+PiBDYW4geW91IHRlc3Qg aXQgd2l0aCBkZWJ1Z2dpbmcgZW5hYmxlZD8KPj4+Cj4+PiBIaSBNYXRoaWFzLAo+Pj4KPj4+IFRo YW5rcyBmb3IgdGhlIHBhdGNoLiBJIHRlc3RlZCBpdCBhZ2FpbnN0IDQuMjAuOCBhbmQgZ290IGEg Y291cGxlCj4+PiBzdWNjZXNzZnVsIHN1c3BlbmRzIGJ1dCBvbiB0aGUgdGhpcmQgYXR0ZW1wdCBJ IGdvdCB0aGUgc2FtZSBmYWlsdXJlCj4+PiBhZ2Fpbi4gSSBub3RpY2VkIGFmdGVyIHRoZSBmaXJz dCBzdXNwZW5kL3Jlc3VtZSwgdGhlIGNhcmQgcmVhZGVyCj4+PiBzaG93ZWQgYXMgIkxpbms6Q29t cGxpYW5jZSIgYnV0IG9uIGxhdGVyIGF0dGVtcHRzIGl0IHNob3dlZCBzdHVjayBpbgo+Pj4gUG9s bGluZyBhZ2Fpbi4KPj4+Cj4+PiBJJ3ZlIGF0dGFjaGVkIHRoZSBsb2dzIHdpdGggZGVidWdnaW5n IGVuYWJsZWQuCj4+Pgo+Pgo+PiBUaGFua3MsIGxvZ3Mgc2hvdyB0aGF0IHNldmVyYWwgcmVzZXRz IHdvbid0IHJlY292ZXIgdGhlIGNhcmQgcmVhZGVyLgo+Pgo+PiBJJ20gdGFraW5nIGEgZGlmZmVy ZW50IGFwcHJvYWNoLCBVU0IzIHBvcnRzIGluIHBvbGxpbmcgc3RhdGUgc2hvdWxkCj4+IGF1dG9t YXRpY2FsbHkgbW92ZSB0byBjb25uZWN0ZWQvZW5hYmxlZC4gU28gaW5zdGVhZCBvZiBwcmV2ZW50 aW5nCj4+IHN1c3BlbmQgaWYgYSBwb3J0IGlzIGZvdW5kIGluIHBvbGxpbmcgSSdsbCBsZXQgaXQg dHJ5IHRvIGZpbmlzaCBsaW5rCj4+IHRyYWluaW5nIGZvciBzb21lIHRpbWUsIGFuZCB0aGVuIGp1 c3QgY29udGludWUgd2l0aCBzdXNwZW5kIGlmIGl0IGZhaWxzLgo+Pgo+PiBQYXRjaCBhdHRhY2hl ZC4KPj4KPj4gVGhpcyB3b24ndCBmaXggdGhlIGJyb2tlbiBjYXJkIHJlYWRlciwgYnV0IHNob3Vs ZCBhbGxvdyB5b3VyIE1hY0Jvb2sgdG8gc3VzcGVuZC4KPj4gQWZ0ZXIgdGhpcyB3ZSBjYW4gc3Rh cnQgbG9va2luZyBhdCBmaXhpbmcgdGhlIGNhcmQgcmVhZGVyLCBJdmFuIE1pcmFub3Ygc2VudCBz b21lCj4+IHByb3Bvc2FsIGZvciB0aGlzLgo+Pgo+PiAtTWF0aGlhcwo+IAo+IEhpIE1hdGhpYXMs Cj4gCj4gSSBhcHBsaWVkIHlvdXIgcGF0Y2ggb24gdG9wIG9mIHY1LjAtcmM4IGFuZCB0ZXN0ZWQg aXQgb24gbXkgbGFwdG9wLgo+IAo+IEl0IGZpeGVzIHRoZSBzdXNwZW5kIHByb2JsZW0gZnJvbSB0 aGUga2VybmVsIHNpZGUsIGJ1dCB0aGVyZSBpcyBhbm90aGVyCj4gb25lOiBzdGFydGluZyB3aXRo IHRoZSBzZWNvbmQgc3VzcGVuZCwgWEhDSSBjb250cm9sbGVyIHdha2VzIHVwIHRoZQo+IHN5c3Rl bSBqdXN0IGFmdGVyIGZldyBzZWNvbmRzIGFmdGVyIHN1c3BlbmRpbmcuIExhcHRvcCBrZWVwcyBs b29waW5nCj4gdGhyb3VnaCBzdXNwZW5kL3Jlc3VtZSB3aGlsZSBsaWQgaXMgY2xvc2VkLgo+IAo+ IFN1Y2ggYmVoYXZpb3VyIGlzIHF1aXRlIHN0YWJsZTogSSB3YXMgYWJsZSB0byByZXByb2R1Y2Ug dGhpcyB0aHJlZQo+IHRpbWVzIHdpdGggcmVib290cyBpbiBiZXR3ZWVuLiBDb3JyZXNwb25kaW5n IGRtZXNnIGFuZCB0cmFjZXMgYXJlIGhlcmUKPiAoZnJvbSBvbmUgcnVuIG9ubHkpOgo+IGh0dHBz Oi8vZ2l0aHViLmNvbS9pbS0wL2ludmVzdGlnYXRlLWNhcmQtcmVhZGVyLXN1c3BlbmQtcHJvYmxl bS1vbi1tYnAxMS40L3RyZWUvbWFzdGVyL3Rlc3QtMjIKPiAKPiBBZnRlciBkaXNhYmxpbmcgQUNQ SSB3YWtlIHVwIG9uIFhIQzEgKGVjaG8gWEhDMSA+L3Byb2MvYWNwaS93YWtldXApLAo+IGV2ZXJ5 dGhpbmcgd29ya3MgYXMgZXhwZWN0ZWQ6IHN1c3BlbmQvcmVzdW1lIHdvcmtzIGZpbmUgbXVsdGlw bGUgdGltZXMsCj4gY2FyZCByZWFkZXIgcmVtYWlucyBtaXNzaW5nIGFmdGVyIHRoZSBmaXJzdCBz dXNwZW5kL3Jlc3VtZS4KPiAKClRoYW5rcywgbG9ncyBzaG93IGl0J3Mgbm8gbG9uZ2VyIGluIGEg c2ltaWxhciBsb29wIGF0dGVtcHRpbmcgc28gc3VzcGVuZAp0aGUgYnVzLCBidXQgZGV2aWNlIGlu c3RlYWQgZ29lcyBiZXR3ZWVuIHBvbGxpbmcsIHJ4RGV0ZWN0IGFuZCBjb21wbGlhbmNlLAptb2Rl cywgc29tZXRpbWVzIHdpdGggY29sZCBhdHRhY2ggc3RhdHVzIGZsYWcgc2Vlbi4KCk1vc3Qgb2Yg dGhlIHRpbWUgaXMgbm93IHNwZW50IHJlc2V0dGluZyB0aGUgZGV2aWNlLgoKSSBoYXZlIHlldCBh bm90aGVyIHBhdGNoLCB0aGlzIG9uZSB3aWxsIGp1c3QgbG9nIHRoZSBwb3J0c3RhdHVzLgpJJ2Qg bGlrZSB0byBrbm93IGlmIHdlIGFyZSBkb2luZyBzb21ldGhpbmcgb2RkIHdoZW4gcmVzdW1pbmcg dGhlIHBvcnQKdGhhdCBjYXVzZXMgaXQgdG8gZ2V0IHN0dWNrLgoKUGF0Y2ggYXR0YWNoZWQsIGNh biB5b3UgdHJ5IGl0IG91dD8KCkFsc28gYXZhaWxhYmxlIGZyb20gbXkgcG9ydC1kZWJ1ZyBicmFu Y2g6CmdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9tbnltYW4v eGhjaS5naXQgcG9ydC1kZWJ1ZwoKLU1hdGhpYXMKCkZyb20gYzMyYmQ0MWMyZDQ0ZjE0Y2JmYWYy NmRlMWM0MDM4N2U3NzBjY2M1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF0aGlh cyBOeW1hbiA8bWF0aGlhcy5ueW1hbkBsaW51eC5pbnRlbC5jb20+CkRhdGU6IEZyaSwgMSBNYXIg MjAxOSAwODozODo1MCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIHhoY2k6IGFkZCBtb3JlIHBvcnQg ZGVidWdnaW5nCgpTaWduZWQtb2ZmLWJ5OiBNYXRoaWFzIE55bWFuIDxtYXRoaWFzLm55bWFuQGxp bnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL3VzYi9ob3N0L3hoY2ktaHViLmMgIHwgNTMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvdXNiL2hv c3QveGhjaS1yaW5nLmMgfCAxMiArKysrKystLS0tCiBkcml2ZXJzL3VzYi9ob3N0L3hoY2kuYyAg ICAgIHwgMTUgKysrKysrKysrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCsp LCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktaHVi LmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktaHViLmMKaW5kZXggZTJlZWNlNi4uNmJhMWE3OCAx MDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLWh1Yi5jCisrKyBiL2RyaXZlcnMvdXNi L2hvc3QveGhjaS1odWIuYwpAQCAtNDg3LDggKzQ4Nyw4IEBAIHN0YXRpYyB2b2lkIHhoY2lfZGlz YWJsZV9wb3J0KHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwKIAkv KiBXcml0ZSAxIHRvIGRpc2FibGUgdGhlIHBvcnQgKi8KIAl3cml0ZWwocG9ydF9zdGF0dXMgfCBQ T1JUX1BFLCBhZGRyKTsKIAlwb3J0X3N0YXR1cyA9IHJlYWRsKGFkZHIpOwotCXhoY2lfZGJnKHho Y2ksICJkaXNhYmxlIHBvcnQsIGFjdHVhbCBwb3J0ICVkIHN0YXR1cyAgPSAweCV4XG4iLAotCQkJ d0luZGV4LCBwb3J0X3N0YXR1cyk7CisJeGhjaV9kYmcoeGhjaSwgImRpc2FibGUgcG9ydCAlZC0l ZCwgcG9ydHNjOiAweCV4XG4iLAorCQkgaGNkLT5zZWxmLmJ1c251bSwgd0luZGV4ICsgMSwgcG9y dF9zdGF0dXMpOwogfQogCiBzdGF0aWMgdm9pZCB4aGNpX2NsZWFyX3BvcnRfY2hhbmdlX2JpdChz dHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIHUxNiB3VmFsdWUsCkBAIC01MzcsOCArNTM3LDkgQEAgc3Rh dGljIHZvaWQgeGhjaV9jbGVhcl9wb3J0X2NoYW5nZV9iaXQoc3RydWN0IHhoY2lfaGNkICp4aGNp LCB1MTYgd1ZhbHVlLAogCS8qIENoYW5nZSBiaXRzIGFyZSBhbGwgd3JpdGUgMSB0byBjbGVhciAq LwogCXdyaXRlbChwb3J0X3N0YXR1cyB8IHN0YXR1cywgYWRkcik7CiAJcG9ydF9zdGF0dXMgPSBy ZWFkbChhZGRyKTsKLQl4aGNpX2RiZyh4aGNpLCAiY2xlYXIgcG9ydCAlcyBjaGFuZ2UsIGFjdHVh bCBwb3J0ICVkIHN0YXR1cyAgPSAweCV4XG4iLAotCQkJcG9ydF9jaGFuZ2VfYml0LCB3SW5kZXgs IHBvcnRfc3RhdHVzKTsKKworCXhoY2lfZGJnKHhoY2ksICJjbGVhciBwb3J0JWQgJXMgY2hhbmdl LCBwb3J0c2M6IDB4JXhcbiIsCisJCSB3SW5kZXggKyAxLCBwb3J0X2NoYW5nZV9iaXQsIHBvcnRf c3RhdHVzKTsKIH0KIAogc3RydWN0IHhoY2lfaHViICp4aGNpX2dldF9yaHViKHN0cnVjdCB1c2Jf aGNkICpoY2QpCkBAIC01NjUsMTMgKzU2NiwxNiBAQCBzdGF0aWMgdm9pZCB4aGNpX3NldF9wb3J0 X3Bvd2VyKHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwgc3RydWN0IHVzYl9oY2QgKmhjZCwKIAlyaHVi ID0geGhjaV9nZXRfcmh1YihoY2QpOwogCXBvcnQgPSByaHViLT5wb3J0c1tpbmRleF07CiAJdGVt cCA9IHJlYWRsKHBvcnQtPmFkZHIpOworCisJeGhjaV9kYmcoeGhjaSwgInNldCBwb3J0IHBvd2Vy ICVkLSVkICVzLCBwb3J0c2M6IDB4JXhcbiIsCisJCSBoY2QtPnNlbGYuYnVzbnVtLCBpbmRleCAr IDEsIG9uID8gIk9OIiA6ICJPRkYiLCB0ZW1wKTsKKwogCXRlbXAgPSB4aGNpX3BvcnRfc3RhdGVf dG9fbmV1dHJhbCh0ZW1wKTsKKwogCWlmIChvbikgewogCQkvKiBQb3dlciBvbiAqLwogCQl3cml0 ZWwodGVtcCB8IFBPUlRfUE9XRVIsIHBvcnQtPmFkZHIpOwogCQl0ZW1wID0gcmVhZGwocG9ydC0+ YWRkcik7Ci0JCXhoY2lfZGJnKHhoY2ksICJzZXQgcG9ydCBwb3dlciwgYWN0dWFsIHBvcnQgJWQg c3RhdHVzICA9IDB4JXhcbiIsCi0JCQkJCQlpbmRleCwgdGVtcCk7CiAJfSBlbHNlIHsKIAkJLyog UG93ZXIgb2ZmICovCiAJCXdyaXRlbCh0ZW1wICYgflBPUlRfUE9XRVIsIHBvcnQtPmFkZHIpOwpA QCAtNjY2LDEyICs2NzAsMTcgQEAgdm9pZCB4aGNpX3NldF9saW5rX3N0YXRlKHN0cnVjdCB4aGNp X2hjZCAqeGhjaSwgc3RydWN0IHhoY2lfcG9ydCAqcG9ydCwKIAkJCSB1MzIgbGlua19zdGF0ZSkK IHsKIAl1MzIgdGVtcDsKKwl1MzIgcG9ydHNjOwogCi0JdGVtcCA9IHJlYWRsKHBvcnQtPmFkZHIp OwotCXRlbXAgPSB4aGNpX3BvcnRfc3RhdGVfdG9fbmV1dHJhbCh0ZW1wKTsKKwlwb3J0c2MgPSBy ZWFkbChwb3J0LT5hZGRyKTsKKwl0ZW1wID0geGhjaV9wb3J0X3N0YXRlX3RvX25ldXRyYWwocG9y dHNjKTsKIAl0ZW1wICY9IH5QT1JUX1BMU19NQVNLOwogCXRlbXAgfD0gUE9SVF9MSU5LX1NUUk9C RSB8IGxpbmtfc3RhdGU7CiAJd3JpdGVsKHRlbXAsIHBvcnQtPmFkZHIpOworCisJeGhjaV9kYmco eGhjaSwgIlNldCBwb3J0ICVkLSVkIGxpbmsgc3RhdGUsIHBvcnRzYzogMHgleCwgd3JpdGUgMHgl eCIsCisJCSBwb3J0LT5yaHViLT5oY2QtPnNlbGYuYnVzbnVtLCBwb3J0LT5oY2RfcG9ydG51bSAr IDEsCisJCSBwb3J0c2MsIHRlbXApOwogfQogCiBzdGF0aWMgdm9pZCB4aGNpX3NldF9yZW1vdGVf d2FrZV9tYXNrKHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwKQEAgLTg0MCw3ICs4NDksOSBAQCBzdGF0 aWMgaW50IHhoY2lfaGFuZGxlX3VzYjJfcG9ydF9saW5rX3Jlc3VtZShzdHJ1Y3QgeGhjaV9wb3J0 ICpwb3J0LAogCX0gZWxzZSBpZiAodGltZV9hZnRlcl9lcShqaWZmaWVzLCBidXNfc3RhdGUtPnJl c3VtZV9kb25lW3dJbmRleF0pKSB7CiAJCWludCB0aW1lX2xlZnQ7CiAKLQkJeGhjaV9kYmcoeGhj aSwgIlJlc3VtZSBVU0IyIHBvcnQgJWRcbiIsIHdJbmRleCArIDEpOworCQl4aGNpX2RiZyh4aGNp LCAicmVzdW1lIFVTQjIgcG9ydCAlZC0lZFxuIiwKKwkJCSBoY2QtPnNlbGYuYnVzbnVtLCB3SW5k ZXggKyAxKTsKKwogCQlidXNfc3RhdGUtPnJlc3VtZV9kb25lW3dJbmRleF0gPSAwOwogCQljbGVh cl9iaXQod0luZGV4LCAmYnVzX3N0YXRlLT5yZXN1bWluZ19wb3J0cyk7CiAKQEAgLTg2Nyw5ICs4 NzgsOCBAQCBzdGF0aWMgaW50IHhoY2lfaGFuZGxlX3VzYjJfcG9ydF9saW5rX3Jlc3VtZShzdHJ1 Y3QgeGhjaV9wb3J0ICpwb3J0LAogCQl9IGVsc2UgewogCQkJaW50IHBvcnRfc3RhdHVzID0gcmVh ZGwocG9ydC0+YWRkcik7CiAKLQkJCXhoY2lfd2Fybih4aGNpLCAiUG9ydCByZXN1bWUgJWkgbXNl YyB0aW1lZCBvdXQsIHBvcnRzYyA9IDB4JXhcbiIsCi0JCQkJICBYSENJX01BWF9SRVhJVF9USU1F T1VUX01TLAotCQkJCSAgcG9ydF9zdGF0dXMpOworCQkJeGhjaV93YXJuKHhoY2ksICJQb3J0IHJl c3VtZSB0aW1lZCBvdXQsIHBvcnQgJWQtJWQ6IDB4JXhcbiIsCisJCQkJICBoY2QtPnNlbGYuYnVz bnVtLCB3SW5kZXggKyAxLCBwb3J0X3N0YXR1cyk7CiAJCQkqc3RhdHVzIHw9IFVTQl9QT1JUX1NU QVRfU1VTUEVORDsKIAkJCWNsZWFyX2JpdCh3SW5kZXgsICZidXNfc3RhdGUtPnJleGl0X3BvcnRz KTsKIAkJfQpAQCAtMTEyNCw5ICsxMTM0LDggQEAgaW50IHhoY2lfaHViX2NvbnRyb2woc3RydWN0 IHVzYl9oY2QgKmhjZCwgdTE2IHR5cGVSZXEsIHUxNiB3VmFsdWUsCiAJCWlmIChzdGF0dXMgPT0g MHhmZmZmZmZmZikKIAkJCWdvdG8gZXJyb3I7CiAKLQkJeGhjaV9kYmcoeGhjaSwgImdldCBwb3J0 IHN0YXR1cywgYWN0dWFsIHBvcnQgJWQgc3RhdHVzICA9IDB4JXhcbiIsCi0JCQkJd0luZGV4LCB0 ZW1wKTsKLQkJeGhjaV9kYmcoeGhjaSwgIkdldCBwb3J0IHN0YXR1cyByZXR1cm5lZCAweCV4XG4i LCBzdGF0dXMpOworCQl4aGNpX2RiZyh4aGNpLCAiR2V0IHBvcnQgc3RhdHVzICVkLSVkIHJlYWQ6 IDB4JXgsIHJldHVybiAweCV4IiwKKwkJCSBoY2QtPnNlbGYuYnVzbnVtLCB3SW5kZXggKyAxLCB0 ZW1wLCBzdGF0dXMpOwogCiAJCXB1dF91bmFsaWduZWQoY3B1X3RvX2xlMzIoc3RhdHVzKSwgKF9f bGUzMiAqKSBidWYpOwogCQkvKiBpZiBVU0IgMy4xIGV4dGVuZGVkIHBvcnQgc3RhdHVzIHJldHVy biBhZGRpdGlvbmFsIDQgYnl0ZXMgKi8KQEAgLTExODIsNyArMTE5MSw4IEBAIGludCB4aGNpX2h1 Yl9jb250cm9sKHN0cnVjdCB1c2JfaGNkICpoY2QsIHUxNiB0eXBlUmVxLCB1MTYgd1ZhbHVlLAog CQkJdGVtcCA9IHJlYWRsKHBvcnRzW3dJbmRleF0tPmFkZHIpOwogCQkJaWYgKCh0ZW1wICYgUE9S VF9QRSkgPT0gMCB8fCAodGVtcCAmIFBPUlRfUkVTRVQpCiAJCQkJfHwgKHRlbXAgJiBQT1JUX1BM U19NQVNLKSA+PSBYREVWX1UzKSB7Ci0JCQkJeGhjaV93YXJuKHhoY2ksICJVU0IgY29yZSBzdXNw ZW5kaW5nIGRldmljZSBub3QgaW4gVTAvVTEvVTIuXG4iKTsKKwkJCQl4aGNpX3dhcm4oeGhjaSwg IlVTQiBjb3JlIHN1c3BlbmRpbmcgcG9ydCAlZC0lZCBub3QgaW4gVTAvVTEvVTJcbiIsCisJCQkJ CSAgaGNkLT5zZWxmLmJ1c251bSwgd0luZGV4ICsgMSk7CiAJCQkJZ290byBlcnJvcjsKIAkJCX0K IApAQCAtMTU1MCw2ICsxNTYwLDkgQEAgaW50IHhoY2lfYnVzX3N1c3BlbmQoc3RydWN0IHVzYl9o Y2QgKmhjZCkKIAkJdDIgPSB4aGNpX3BvcnRfc3RhdGVfdG9fbmV1dHJhbCh0MSk7CiAJCXBvcnRz Y19idWZbcG9ydF9pbmRleF0gPSAwOwogCisJCXhoY2lfZGJnKHhoY2ksICJidXNfc3VzcGVuZCBw b3J0ICVkLSVkLCBwb3J0c2M6IDB4JXhcbiIsCisJCQkgaGNkLT5zZWxmLmJ1c251bSwgcG9ydF9p bmRleCArIDEsIHQxKTsKKwogCQkvKiBCYWlsIG91dCBpZiBhIFVTQjMgcG9ydCBoYXMgYSBuZXcg ZGV2aWNlIGluIGxpbmsgdHJhaW5pbmcgKi8KIAkJaWYgKChoY2QtPnNwZWVkID49IEhDRF9VU0Iz KSAmJgogCQkgICAgKHQxICYgUE9SVF9QTFNfTUFTSykgPT0gWERFVl9QT0xMSU5HKSB7CkBAIC0x NjE2LDYgKzE2MjksOSBAQCBpbnQgeGhjaV9idXNfc3VzcGVuZChzdHJ1Y3QgdXNiX2hjZCAqaGNk KQogCQkJfQogCQl9CiAJCXdyaXRlbChwb3J0c2NfYnVmW3BvcnRfaW5kZXhdLCBwb3J0c1twb3J0 X2luZGV4XS0+YWRkcik7CisKKwkJeGhjaV9kYmcoeGhjaSwgImJ1c19zdXNwZW5kIHBvcnQgJWQt JWQsIHdyaXRlOiAweCV4XG4iLAorCQkJIGhjZC0+c2VsZi5idXNudW0sIHBvcnRfaW5kZXggKyAx LCBwb3J0c2NfYnVmW3BvcnRfaW5kZXhdKTsKIAl9CiAJaGNkLT5zdGF0ZSA9IEhDX1NUQVRFX1NV U1BFTkRFRDsKIAlidXNfc3RhdGUtPm5leHRfc3RhdGVjaGFuZ2UgPSBqaWZmaWVzICsgbXNlY3Nf dG9famlmZmllcygxMCk7CkBAIC0xNjkzLDYgKzE3MDksOSBAQCBpbnQgeGhjaV9idXNfcmVzdW1l KHN0cnVjdCB1c2JfaGNkICpoY2QpCiAJd2hpbGUgKHBvcnRfaW5kZXgtLSkgewogCQlwb3J0c2Mg PSByZWFkbChwb3J0c1twb3J0X2luZGV4XS0+YWRkcik7CiAKKwkJeGhjaV9kYmcoeGhjaSwgImJ1 c19yZXN1bWUgcG9ydCAlZC0lZCwgcG9ydHNjOiAweCV4XG4iLAorCQkJIGhjZC0+c2VsZi5idXNu dW0sIHBvcnRfaW5kZXggKyAxLCBwb3J0c2MpOworCiAJCS8qIHdhcm0gcmVzZXQgQ0FTIGxpbWl0 ZWQgcG9ydHMgc3R1Y2sgaW4gcG9sbGluZy9jb21wbGlhbmNlICovCiAJCWlmICgoeGhjaS0+cXVp cmtzICYgWEhDSV9NSVNTSU5HX0NBUykgJiYKIAkJICAgIChoY2QtPnNwZWVkID49IEhDRF9VU0Iz KSAmJgpAQCAtMTcyMSw2ICsxNzQwLDggQEAgaW50IHhoY2lfYnVzX3Jlc3VtZShzdHJ1Y3QgdXNi X2hjZCAqaGNkKQogCQkvKiBkaXNhYmxlIHdha2UgZm9yIGFsbCBwb3J0cywgd3JpdGUgbmV3IGxp bmsgc3RhdGUgaWYgbmVlZGVkICovCiAJCXBvcnRzYyAmPSB+KFBPUlRfUldDX0JJVFMgfCBQT1JU X0NFQyB8IFBPUlRfV0FLRV9CSVRTKTsKIAkJd3JpdGVsKHBvcnRzYywgcG9ydHNbcG9ydF9pbmRl eF0tPmFkZHIpOworCQl4aGNpX2RiZyh4aGNpLCAiYnVzX3Jlc3VtZSBwb3J0ICVkLSVkLCB3cml0 ZTogMHgleFxuIiwKKwkJCSBoY2QtPnNlbGYuYnVzbnVtLCBwb3J0X2luZGV4ICsgMSwgcG9ydHNj KTsKIAl9CiAKIAkvKiBVU0IyIHNwZWNpZmljIHJlc3VtZSBzaWduYWxpbmcgZGVsYXkgYW5kIFUw IGxpbmsgc3RhdGUgdHJhbnNpdGlvbiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94 aGNpLXJpbmcuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMKaW5kZXggNDBmYTI1Yy4u Y2JlNjZhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYworKysgYi9k cml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jCkBAIC0xNTY5LDE4ICsxNTY5LDE5IEBAIHN0YXRp YyB2b2lkIGhhbmRsZV9wb3J0X3N0YXR1cyhzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksCiAJCQkgICJX QVJOOiB4SEMgcmV0dXJuZWQgZmFpbGVkIHBvcnQgc3RhdHVzIGV2ZW50XG4iKTsKIAogCXBvcnRf aWQgPSBHRVRfUE9SVF9JRChsZTMyX3RvX2NwdShldmVudC0+Z2VuZXJpYy5maWVsZFswXSkpOwot CXhoY2lfZGJnKHhoY2ksICJQb3J0IFN0YXR1cyBDaGFuZ2UgRXZlbnQgZm9yIHBvcnQgJWRcbiIs IHBvcnRfaWQpOwotCiAJbWF4X3BvcnRzID0gSENTX01BWF9QT1JUUyh4aGNpLT5oY3NfcGFyYW1z MSk7CisKIAlpZiAoKHBvcnRfaWQgPD0gMCkgfHwgKHBvcnRfaWQgPiBtYXhfcG9ydHMpKSB7Ci0J CXhoY2lfd2Fybih4aGNpLCAiSW52YWxpZCBwb3J0IGlkICVkXG4iLCBwb3J0X2lkKTsKKwkJeGhj aV93YXJuKHhoY2ksICJQb3J0IGNoYW5nZSBldmVudCB3aXRoIGludmFsaWQgcG9ydCBJRCAlZFxu IiwKKwkJCSAgcG9ydF9pZCk7CiAJCWluY19kZXEoeGhjaSwgeGhjaS0+ZXZlbnRfcmluZyk7CiAJ CXJldHVybjsKIAl9CiAKIAlwb3J0ID0gJnhoY2ktPmh3X3BvcnRzW3BvcnRfaWQgLSAxXTsKIAlp ZiAoIXBvcnQgfHwgIXBvcnQtPnJodWIgfHwgcG9ydC0+aGNkX3BvcnRudW0gPT0gRFVQTElDQVRF X0VOVFJZKSB7Ci0JCXhoY2lfd2Fybih4aGNpLCAiRXZlbnQgZm9yIGludmFsaWQgcG9ydCAldVxu IiwgcG9ydF9pZCk7CisJCXhoY2lfd2Fybih4aGNpLCAiUG9ydCBjaGFuZ2UgZXZlbnQsIG5vIHBv cnQgZm9yIHBvcnQgSUQgJXVcbiIsCisJCQkgIHBvcnRfaWQpOwogCQlib2d1c19wb3J0X3N0YXR1 cyA9IHRydWU7CiAJCWdvdG8gY2xlYW51cDsKIAl9CkBAIC0xNTk3LDYgKzE1OTgsOSBAQCBzdGF0 aWMgdm9pZCBoYW5kbGVfcG9ydF9zdGF0dXMoc3RydWN0IHhoY2lfaGNkICp4aGNpLAogCWhjZF9w b3J0bnVtID0gcG9ydC0+aGNkX3BvcnRudW07CiAJcG9ydHNjID0gcmVhZGwocG9ydC0+YWRkcik7 CiAKKwl4aGNpX2RiZyh4aGNpLCAiUG9ydCBjaGFuZ2UgZXZlbnQsICVkLSVkLCBpZCAlZDogMHgl eFxuIiwKKwkJIGhjZC0+c2VsZi5idXNudW0sIGhjZF9wb3J0bnVtICsgMSwgcG9ydF9pZCwgcG9y dHNjKTsKKwogCXRyYWNlX3hoY2lfaGFuZGxlX3BvcnRfc3RhdHVzKGhjZF9wb3J0bnVtLCBwb3J0 c2MpOwogCiAJaWYgKGhjZC0+c3RhdGUgPT0gSENfU1RBVEVfU1VTUEVOREVEKSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jCmlu ZGV4IDAwNWU2NTkuLjhjZDhlZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5j CisrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jCkBAIC04OTMsNyArODkzLDcgQEAgc3RhdGlj IHZvaWQgeGhjaV9kaXNhYmxlX3BvcnRfd2FrZV9vbl9iaXRzKHN0cnVjdCB4aGNpX2hjZCAqeGhj aSkKIAlzdHJ1Y3QgeGhjaV9wb3J0ICoqcG9ydHM7CiAJaW50IHBvcnRfaW5kZXg7CiAJdW5zaWdu ZWQgbG9uZyBmbGFnczsKLQl1MzIgdDEsIHQyOworCXUzMiB0MSwgdDIsIHBvcnRzYzsKIAogCXNw aW5fbG9ja19pcnFzYXZlKCZ4aGNpLT5sb2NrLCBmbGFncyk7CiAKQEAgLTkwMiwxMCArOTAyLDE0 IEBAIHN0YXRpYyB2b2lkIHhoY2lfZGlzYWJsZV9wb3J0X3dha2Vfb25fYml0cyhzdHJ1Y3QgeGhj aV9oY2QgKnhoY2kpCiAJcG9ydHMgPSB4aGNpLT51c2IzX3JodWIucG9ydHM7CiAJd2hpbGUgKHBv cnRfaW5kZXgtLSkgewogCQl0MSA9IHJlYWRsKHBvcnRzW3BvcnRfaW5kZXhdLT5hZGRyKTsKKwkJ cG9ydHNjID0gdDE7CiAJCXQxID0geGhjaV9wb3J0X3N0YXRlX3RvX25ldXRyYWwodDEpOwogCQl0 MiA9IHQxICYgflBPUlRfV0FLRV9CSVRTOwotCQlpZiAodDEgIT0gdDIpCisJCWlmICh0MSAhPSB0 MikgewogCQkJd3JpdGVsKHQyLCBwb3J0c1twb3J0X2luZGV4XS0+YWRkcik7CisJCQl4aGNpX2Ri Zyh4aGNpLCAiZGlzYWJsZSB3YWtlIGJpdHMgcG9ydCAlZC0lZCwgcG9ydHNjOiAweCV4LCB3cml0 ZTogMHgleFxuIiwKKwkJCQkgeGhjaS0+dXNiM19yaHViLmhjZC0+c2VsZi5idXNudW0sIHBvcnRf aW5kZXggKyAxLCBwb3J0c2MsIHQyKTsKKwkJfQogCX0KIAogCS8qIGRpc2FibGUgdXNiMiBwb3J0 cyBXYWtlIGJpdHMgKi8KQEAgLTkxMywxMiArOTE3LDE1IEBAIHN0YXRpYyB2b2lkIHhoY2lfZGlz YWJsZV9wb3J0X3dha2Vfb25fYml0cyhzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kpCiAJcG9ydHMgPSB4 aGNpLT51c2IyX3JodWIucG9ydHM7CiAJd2hpbGUgKHBvcnRfaW5kZXgtLSkgewogCQl0MSA9IHJl YWRsKHBvcnRzW3BvcnRfaW5kZXhdLT5hZGRyKTsKKwkJcG9ydHNjID0gdDE7CiAJCXQxID0geGhj aV9wb3J0X3N0YXRlX3RvX25ldXRyYWwodDEpOwogCQl0MiA9IHQxICYgflBPUlRfV0FLRV9CSVRT OwotCQlpZiAodDEgIT0gdDIpCisJCWlmICh0MSAhPSB0MikgewogCQkJd3JpdGVsKHQyLCBwb3J0 c1twb3J0X2luZGV4XS0+YWRkcik7CisJCQl4aGNpX2RiZyh4aGNpLCAiZGlzYWJsZSB3YWtlIGJp dHMgcG9ydCAlZC0lZCwgcG9ydHNjOiAweCV4LCB3cml0ZTogMHgleFxuIiwKKwkJCQkgeGhjaS0+ dXNiMl9yaHViLmhjZC0+c2VsZi5idXNudW0sIHBvcnRfaW5kZXggKyAxLCBwb3J0c2MsIHQyKTsK KwkJfQogCX0KLQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnhoY2ktPmxvY2ssIGZsYWdzKTsK IH0KIAotLSAKMi43LjQKCg==