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: Alan Stern Message-Id: Date: Wed, 2 May 2018 10:11:16 -0400 (EDT) To: Felipe Balbi Cc: Mathias Nyman , Linux USB List-ID: T24gV2VkLCAyIE1heSAyMDE4LCBGZWxpcGUgQmFsYmkgd3JvdGU6Cgo+ID4+IExvb2sgYXQgdGhl IHJlc3VsdC4gV2l0aCB0aGlzIGNoYW5nZSB3ZSBkb24ndCBuZWVkIHRvIHRha2UgYSBsb2NrLAo+ ID4+IGFsbG9jYXRlIG1lbW9yeSwgc2VhcmNoIGZvciBlbmRwb2ludCBpbmRleCwgc2VhcmNoIGZv ciBlbmRwb2ludAo+ID4+IHN0YXRlLiBBbGwgb2YgdGhvc2UgYXJlIG5lZWRlZCBmb3IgcHJvcGVy IG9wZXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24sIGJ1dAo+ID4+IGlmIHRoZSBjb250cm9sbGVyIGhh cyBhbHJlYWR5IGRpZWQsIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gZ29pbmcgYW55Cj4gPj4gZnVydGhl ci4KPiA+Cj4gPiBCdXQgd2UgbWlnaHQgbWlzcyB0aGUgZmFjdCB0aGF0IGhvc3QgZGllZCwgYW5k IGdvIGV2ZW4gZnVydGhlciwgYWRkaW5nIFVSQiB0byBsaXN0LAo+ID4gd3JpdGluZyBUUkJzIHRv IHJpbmdidWZmZXJzIGV0Yy4KPiA+Cj4gPiBJbiBjb2RlIHdlIHNhdmUgb25lIGxpbmUsCj4gPiBn b3RvOiBmcmVlX3ByaXYKPiAKPiBXZSdyZSBzYXZpbmcgYSBsb3QgbW9yZSB0aGFuIHRoYXQsIGFj dHVhbGx5LiBBbGwgb2YgdGhlIGZvbGxvd2luZyBlbmRzCj4gdXAgYmVpbmcgc2tpcHBlZC4gQWxs IG9mIHRoZXNlIGFyZSB1bm5lY2Vzc2FyeSB3b3JrIHdoZW4geEhDIGhhcyBhbHJlYWR5Cj4gZGll ZDoKPiAKPiA4PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IAo+IHNsb3RfaWQgPSB1cmItPmRldi0+c2xvdF9p ZDsKPiBlcF9pbmRleCA9IHhoY2lfZ2V0X2VuZHBvaW50X2luZGV4KCZ1cmItPmVwLT5kZXNjKTsK PiBlcF9zdGF0ZSA9ICZ4aGNpLT5kZXZzW3Nsb3RfaWRdLT5lcHNbZXBfaW5kZXhdLmVwX3N0YXRl Owo+IAo+IGlmICghSENEX0hXX0FDQ0VTU0lCTEUoaGNkKSkgewo+ICAgICAgICAgaWYgKCFpbl9p bnRlcnJ1cHQoKSkKPiAgICAgICAgICAgICAgICAgeGhjaV9kYmcoeGhjaSwgInVyYiBzdWJtaXR0 ZWQgZHVyaW5nIFBDSSBzdXNwZW5kXG4iKTsKPiAgICAgICAgIHJldHVybiAtRVNIVVRET1dOOwo+ IH0KPiAKPiBpZiAodXNiX2VuZHBvaW50X3hmZXJfaXNvYygmdXJiLT5lcC0+ZGVzYykpCj4gICAg ICAgICBudW1fdGRzID0gdXJiLT5udW1iZXJfb2ZfcGFja2V0czsKPiBlbHNlIGlmICh1c2JfZW5k cG9pbnRfaXNfYnVsa19vdXQoJnVyYi0+ZXAtPmRlc2MpICYmCj4gICAgIHVyYi0+dHJhbnNmZXJf YnVmZmVyX2xlbmd0aCA+IDAgJiYKPiAgICAgdXJiLT50cmFuc2Zlcl9mbGFncyAmIFVSQl9aRVJP X1BBQ0tFVCAmJgo+ICAgICAhKHVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCAlIHVzYl9lbmRw b2ludF9tYXhwKCZ1cmItPmVwLT5kZXNjKSkpCj4gICAgICAgICBudW1fdGRzID0gMjsKPiBlbHNl Cj4gICAgICAgICBudW1fdGRzID0gMTsKPiAKPiB1cmJfcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKHN0 cnVjdCB1cmJfcHJpdikgKwo+ICAgICAgICAgICAgICAgICAgICBudW1fdGRzICogc2l6ZW9mKHN0 cnVjdCB4aGNpX3RkKSwgbWVtX2ZsYWdzKTsKPiBpZiAoIXVyYl9wcml2KQo+ICAgICAgICAgcmV0 dXJuIC1FTk9NRU07Cj4gCj4gdXJiX3ByaXYtPm51bV90ZHMgPSBudW1fdGRzOwo+IHVyYl9wcml2 LT5udW1fdGRzX2RvbmUgPSAwOwo+IHVyYi0+aGNwcml2ID0gdXJiX3ByaXY7Cj4gCj4gdHJhY2Vf eGhjaV91cmJfZW5xdWV1ZSh1cmIpOwo+IAo+IGlmICh1c2JfZW5kcG9pbnRfeGZlcl9jb250cm9s KCZ1cmItPmVwLT5kZXNjKSkgewo+ICAgICAgICAgLyogQ2hlY2sgdG8gc2VlIGlmIHRoZSBtYXgg cGFja2V0IHNpemUgZm9yIHRoZSBkZWZhdWx0IGNvbnRyb2wKPiAgICAgICAgICAqIGVuZHBvaW50 IGNoYW5nZWQgZHVyaW5nIEZTIGRldmljZSBlbnVtZXJhdGlvbgo+ICAgICAgICAgICovCj4gICAg ICAgICBpZiAodXJiLT5kZXYtPnNwZWVkID09IFVTQl9TUEVFRF9GVUxMKSB7Cj4gICAgICAgICAg ICAgICAgIHJldCA9IHhoY2lfY2hlY2tfbWF4cGFja2V0KHhoY2ksIHNsb3RfaWQsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlcF9pbmRleCwgdXJiKTsKPiAgICAgICAgICAgICAg ICAgaWYgKHJldCA8IDApIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICB4aGNpX3VyYl9mcmVl X3ByaXYodXJiX3ByaXYpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgIHVyYi0+aGNwcml2ID0g TlVMTDsKPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICAgICAgICAgICAg ICAgICB9Cj4gICAgICAgICB9Cj4gfQo+IAo+IHNwaW5fbG9ja19pcnFzYXZlKCZ4aGNpLT5sb2Nr LCBmbGFncyk7Cj4gCj4gODwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClJlZ2FyZGxlc3MsIGhvdyBvZnRlbiBk b2VzIGl0IGhhcHBlbiB0aGF0IGFuIHhIQ0kgaG9zdCBjb250cm9sbGVyIGRpZXM/ICAKQSBmZXcg dGltZXMgYSBkYXkgZm9yIGV2ZXJ5IHhIQ0kgY29udHJvbGxlciBpbiB0aGUgd29ybGQgc2VlbXMg bGlrZSBhCmdyb3NzIG92ZXJlc3RpbWF0ZS4KCkJ1dCBldmVuIGlmIGl0IGlzbid0LCB3aG8gY2Fy ZXMgaWYgd2UgZW5kIHVwIGV4ZWN1dGluZyB0aGUgY29kZSBhYm92ZSBhCmZldyBleHRyYSB0aW1l cyBwZXIgZGF5PyAgSXQncyB0aGUgImFsbW9zdCBuZXZlciB1c2VkIiBwYXRoLiAgOi0pCgpBbGFu IFN0ZXJuCi0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAi dW5zdWJzY3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jk b21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5r ZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwK