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: [02/20] usb: host: xhci: check DYING state earlier From: Felipe Balbi Message-Id: <874ljqth3n.fsf@linux.intel.com> Date: Wed, 02 May 2018 14:46:52 +0300 To: Mathias Nyman Cc: Linux USB , Alan Stern List-ID: SGksCgpNYXRoaWFzIE55bWFuIDxtYXRoaWFzLm55bWFuQGxpbnV4LmludGVsLmNvbT4gd3JpdGVz Ogo+IE9uIDE3LjA0LjIwMTggMTA6MDcsIEZlbGlwZSBCYWxiaSB3cm90ZToKPj4gCj4+IEhpLAo+ PiAKPj4gTWF0aGlhcyBOeW1hbiA8bWF0aGlhcy5ueW1hbkBsaW51eC5pbnRlbC5jb20+IHdyaXRl czoKPj4+IE9uIDE2LjA0LjIwMTggMTU6MjksIEZlbGlwZSBCYWxiaSB3cm90ZToKPj4+PiBJbnN0 ZWFkIG9mIGFsbG9jYXRpbmcgdXJiIHByaXYgYW5kLCBtYXliZSwgYmFpbCBvdXQgZHVlIHRvIHho Y2kgYmVpbmcKPj4+PiBpbiBEWUlORyBzdGF0ZSwgd2UgY2FuIG1vdmUgdGhlIGNoZWNrIGVhcmxp ZXIgYW5kIGF2b2lkIHRoZSBtZW1vcnkKPj4+PiBhbGxvY2F0aW9uIGFsdG9nZXRoZXIuCj4+Pgo+ Pj4gVGhpcyBhbHNvIG1vdmVzIGNoZWNraW5nIGZvciBEWUlORyBvdXRzaWRlIHRoZSBsb2NrLgo+ Pj4KPj4+IE1vc3QgY2FzZXMgc2V0IERZSU5HIHdpdGggbG9jayBoZWxkLCBzbyBpZiB3ZSBmaXJz dCBnZXQgdGhlIGxvY2sgYmVmb3JlCj4+PiBjaGVja2luZyBEWUlORyB3ZSBoYXZlIGEgYmV0dGVy IGNoYW5jZSBvZiBub3QgYmVpbmcgaW4gdGhlIHByb2Nlc3Mgb2YgZHlpbmcuCj4+IAo+PiBwcmV0 dHkgc3VyZSB0aGF0J3MgYXRvbWljLCB0aG91Z2guCj4KPiBUaGF0J3Mgbm90IHdoYXQgSSdtIGFm dGVyLCB5b3VyIGZpeCBpcyBjbGVhbmluZyB1cCBjb2RlIGluIHRoZSBjYXNlIHdoZXJlIERZSU5H IGZsYWcgaXMKPiBzZXQgYmVmb3JlIHhoY2lfdXJiX2VucXVldWUoKSBpcyBjYWxsZWQuIEknbSB3 b3JyaWVkIGFib3V0IHRoZSBjYXNlIHdoZW4gc2V0dGluZyBEWUlORyBmbGFnIHJhY2VzCj4gd2l0 aCB4aGNpX3VyYl9lbnF1ZXVlKCkuIGkuZS4geGhjaV91cmJfZW5xdWV1ZSgpIGlzIHNwaW5uaW5n IG9uIHRoZSBsb2NrLCB3YWl0aW5nLCB3aGlsZQo+IHNvbWUgb3RoZXIgcGFydCBvZiB0aGUgZHJp dmVyIGlzIGRlc3BlcmF0ZWx5IHRyeWluZyB0byBhY2Nlc3MgaHcgd2l0aCBsb2NrIGhlbGQsIGZh aWxpbmcsCj4gZmluYWxseSBzZXR0aW5nIERZSU5HIGZsYWcsIGFuZCB0aGVuIHJlbGVhc2luZyBs b2NrLgo+Cj4gSWYgdGhlIGNoZWNrIGlzIGRvbmUgYmVmb3JlIHRha2luZyB0aGUgbG9jayB0aGVu IHRoZSBVUkIgbWlnaHQgYmUgcXVldWVkIG9uIGR5aW5nIGRldmljZSwKPiBhdCBhIHRpbWUgd2hl biB4aGNpX2hjX2RpZWQgYWxyZWFkeSBzdGFydGVkIGNhbmNlbGxpbmcgYW5kIGdpdmluZyBiYWNr IGFsbCBxdWV1ZWQgVVJCCgp0aGlzIGNhbiBvbmx5IGhhcHBlbiBpZiBjaGVja2luZyB0aGF0IGJp dCBpc24ndCBhbiBhdG9taWMgb3BlcmF0aW9uCndoaWNoLCBBRkFJQ1QsIGl0IGlzLiBJT1csIGl0 IHdvdWxkIGJlIHRoZSBzYW1lIGlmIHlvdSB3ZXJlIHRvIGNoYW5nZToKCglpZiAoYSAmIGIpCiAg ICAgICAgCXJldHVybiAtMTsKCnRvOgoKCWlmICh0ZXN0X2JpdChiLCAmYSkpCiAgICAgICAgCXJl dHVybiAtMTsKCnJpZ2h0PyBOb3csIGlmIHRoaXMgaXNuJ3QgYW4gYXRvbWljIG9wZXJhdGlvbiwg SSdtIGhhcHB5IHRvIGJlIGVkdWNhdGVkLgoKPj4+IFNtYWxsIHRoaW5nLCBidXQgc28gaXMgdGhp cyBjbGVhbnVwLCBzbyBub3Qgc3VyZSBpdHMgd29ydGggdGhlIGNoYW5nZQo+PiAKPj4gTG9vayBh dCB0aGUgcmVzdWx0LiBXaXRoIHRoaXMgY2hhbmdlIHdlIGRvbid0IG5lZWQgdG8gdGFrZSBhIGxv Y2ssCj4+IGFsbG9jYXRlIG1lbW9yeSwgc2VhcmNoIGZvciBlbmRwb2ludCBpbmRleCwgc2VhcmNo IGZvciBlbmRwb2ludAo+PiBzdGF0ZS4gQWxsIG9mIHRob3NlIGFyZSBuZWVkZWQgZm9yIHByb3Bl ciBvcGVyYXRpb24gb2YgdGhlIGZ1bmN0aW9uLCBidXQKPj4gaWYgdGhlIGNvbnRyb2xsZXIgaGFz IGFscmVhZHkgZGllZCwgdGhlcmUncyBubyBwb2ludCBpbiBnb2luZyBhbnkKPj4gZnVydGhlci4K Pgo+IEJ1dCB3ZSBtaWdodCBtaXNzIHRoZSBmYWN0IHRoYXQgaG9zdCBkaWVkLCBhbmQgZ28gZXZl biBmdXJ0aGVyLCBhZGRpbmcgVVJCIHRvIGxpc3QsCj4gd3JpdGluZyBUUkJzIHRvIHJpbmdidWZm ZXJzIGV0Yy4KPgo+IEluIGNvZGUgd2Ugc2F2ZSBvbmUgbGluZSwKPiBnb3RvOiBmcmVlX3ByaXYK CldlJ3JlIHNhdmluZyBhIGxvdCBtb3JlIHRoYW4gdGhhdCwgYWN0dWFsbHkuIEFsbCBvZiB0aGUg Zm9sbG93aW5nIGVuZHMKdXAgYmVpbmcgc2tpcHBlZC4gQWxsIG9mIHRoZXNlIGFyZSB1bm5lY2Vz c2FyeSB3b3JrIHdoZW4geEhDIGhhcyBhbHJlYWR5CmRpZWQ6Cgo4PC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK c2xvdF9pZCA9IHVyYi0+ZGV2LT5zbG90X2lkOwplcF9pbmRleCA9IHhoY2lfZ2V0X2VuZHBvaW50 X2luZGV4KCZ1cmItPmVwLT5kZXNjKTsKZXBfc3RhdGUgPSAmeGhjaS0+ZGV2c1tzbG90X2lkXS0+ ZXBzW2VwX2luZGV4XS5lcF9zdGF0ZTsKCmlmICghSENEX0hXX0FDQ0VTU0lCTEUoaGNkKSkgewog ICAgICAgIGlmICghaW5faW50ZXJydXB0KCkpCiAgICAgICAgICAgICAgICB4aGNpX2RiZyh4aGNp LCAidXJiIHN1Ym1pdHRlZCBkdXJpbmcgUENJIHN1c3BlbmRcbiIpOwogICAgICAgIHJldHVybiAt RVNIVVRET1dOOwp9CgppZiAodXNiX2VuZHBvaW50X3hmZXJfaXNvYygmdXJiLT5lcC0+ZGVzYykp CiAgICAgICAgbnVtX3RkcyA9IHVyYi0+bnVtYmVyX29mX3BhY2tldHM7CmVsc2UgaWYgKHVzYl9l bmRwb2ludF9pc19idWxrX291dCgmdXJiLT5lcC0+ZGVzYykgJiYKICAgIHVyYi0+dHJhbnNmZXJf YnVmZmVyX2xlbmd0aCA+IDAgJiYKICAgIHVyYi0+dHJhbnNmZXJfZmxhZ3MgJiBVUkJfWkVST19Q QUNLRVQgJiYKICAgICEodXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoICUgdXNiX2VuZHBvaW50 X21heHAoJnVyYi0+ZXAtPmRlc2MpKSkKICAgICAgICBudW1fdGRzID0gMjsKZWxzZQogICAgICAg IG51bV90ZHMgPSAxOwoKdXJiX3ByaXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdXJiX3ByaXYp ICsKICAgICAgICAgICAgICAgICAgIG51bV90ZHMgKiBzaXplb2Yoc3RydWN0IHhoY2lfdGQpLCBt ZW1fZmxhZ3MpOwppZiAoIXVyYl9wcml2KQogICAgICAgIHJldHVybiAtRU5PTUVNOwoKdXJiX3By aXYtPm51bV90ZHMgPSBudW1fdGRzOwp1cmJfcHJpdi0+bnVtX3Rkc19kb25lID0gMDsKdXJiLT5o Y3ByaXYgPSB1cmJfcHJpdjsKCnRyYWNlX3hoY2lfdXJiX2VucXVldWUodXJiKTsKCmlmICh1c2Jf ZW5kcG9pbnRfeGZlcl9jb250cm9sKCZ1cmItPmVwLT5kZXNjKSkgewogICAgICAgIC8qIENoZWNr IHRvIHNlZSBpZiB0aGUgbWF4IHBhY2tldCBzaXplIGZvciB0aGUgZGVmYXVsdCBjb250cm9sCiAg ICAgICAgICogZW5kcG9pbnQgY2hhbmdlZCBkdXJpbmcgRlMgZGV2aWNlIGVudW1lcmF0aW9uCiAg ICAgICAgICovCiAgICAgICAgaWYgKHVyYi0+ZGV2LT5zcGVlZCA9PSBVU0JfU1BFRURfRlVMTCkg ewogICAgICAgICAgICAgICAgcmV0ID0geGhjaV9jaGVja19tYXhwYWNrZXQoeGhjaSwgc2xvdF9p ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcF9pbmRleCwgdXJiKTsKICAgICAg ICAgICAgICAgIGlmIChyZXQgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHhoY2lfdXJi X2ZyZWVfcHJpdih1cmJfcHJpdik7CiAgICAgICAgICAgICAgICAgICAgICAgIHVyYi0+aGNwcml2 ID0gTlVMTDsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgICAg ICAgIH0KICAgICAgICB9Cn0KCnNwaW5fbG9ja19pcnFzYXZlKCZ4aGNpLT5sb2NrLCBmbGFncyk7 Cgo4PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo=