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/3] usb: host: xhci: fix oops when removing hcd From: Jack Pham Message-Id: <20180927013948.GB17520@jackp-linux.qualcomm.com> Date: Wed, 26 Sep 2018 18:39:48 -0700 To: Mathias Nyman Cc: Peter Chen , mathias.nyman@intel.com, linux-usb@vger.kernel.org, linux-imx@nxp.com, jun.li@nxp.com, Joel Stanley , Mayank Rana List-ID: T24gV2VkLCBTZXAgMjYsIDIwMTggYXQgMDY6MzQ6MzBQTSAtMDcwMCwgSmFjayBQaGFtIHdyb3Rl Ogo+IEhpIE1hdGhpYXMsCj4gCj4gT24gV2VkLCBTZXAgMjYsIDIwMTggYXQgMDI6NTE6NDBQTSAr MDMwMCwgTWF0aGlhcyBOeW1hbiB3cm90ZToKPiA+IEhpIEphY2ssIFBldGVyCj4gPiAKPiA+IE9u IDI0LjA5LjIwMTggMTk6MzcsIEphY2sgUGhhbSB3cm90ZToKPiA+ID5IaSBQZXRlciwKPiA+ID4K PiA+ID5PbiBGcmksIFNlcCAyMSwgMjAxOCBhdCAwOTo0ODo0M0FNICswODAwLCBQZXRlciBDaGVu IHdyb3RlOgo+ID4gPj5UeXBlLUMtdG8tQSBjYWJsZSwgYW5kIHRoZSBVU0IzIEhDRCBoYXMgYWxy ZWFkeSBiZWVuIE5VTEwgYXQgdGhhdCB0aW1lLgo+ID4gPj5UaGUgb29wcyBsb2cgbGlrZSBiZWxv dzoKPiA+ID4+Cj4gPiA+Pls2ODEuNzgyMjg4XSB4aGNpLWhjZCB4aGNpLWhjZC4xLmF1dG86IHJl bW92ZSwgc3RhdGUgMQo+ID4gPj5bNjgxLjc4NzQ5MF0gdXNiIHVzYjQ6IFVTQiBkaXNjb25uZWN0 LCBkZXZpY2UgbnVtYmVyIDEKPiA+ID4+WzY4MS43OTI4MDhdIHVzYiA0LTE6IFVTQiBkaXNjb25u ZWN0LCBkZXZpY2UgbnVtYmVyIDIKPiA+ID4+WzY4MS44MTgwODldIHhoY2ktaGNkIHhoY2ktaGNk LjEuYXV0bzogVVNCIGJ1cyA0IGRlcmVnaXN0ZXJlZAo+ID4gPj5bNjgxLjgyMzgwM10gVW5hYmxl IHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IHZpcnR1YWwgYWRk cmVzcyAwMDAwMDBhMAo+ID4gPj5bNjgxLjgyMzgwNl0gTWVtIGFib3J0IGluZm86Cj4gPiA+Pls2 ODEuODIzODA5XSAgIEV4Y2VwdGlvbiBjbGFzcyA9IERBQlQgKGN1cnJlbnQgRUwpLCBJTCA9IDMy IGJpdHMKPiA+ID4+WzY4MS44MjM4MTFdICAgU0VUID0gMCwgRm5WID0gMAo+ID4gPj5bNjgxLjgy MzgxM10gICBFQSA9IDAsIFMxUFRXID0gMAo+ID4gPj5bNjgxLjgyMzgxNF0gRGF0YSBhYm9ydCBp bmZvOgo+ID4gPj5bNjgxLjgyMzgxNl0gICBJU1YgPSAwLCBJU1MgPSAweDAwMDAwMDA0Cj4gPiA+ Pls2ODEuODIzODE4XSAgIENNID0gMCwgV25SID0gMAo+ID4gPj5bNjgxLjgyMzgyMl0gdXNlciBw Z3RhYmxlOiA0ayBwYWdlcywgNDgtYml0IFZBcywgcGdkID0gZmZmZjgwMDBhZTNmZDAwMAo+ID4g Pj5bNjgxLjgyMzgyNF0gWzAwMDAwMDAwMDAwMDAwYTBdICpwZ2Q9MDAwMDAwMDAwMDAwMDAwMAo+ ID4gPj5bNjgxLjgyMzgyOV0gSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDk2MDAwMDA0IFsjMV0gUFJF RU1QVCBTTVAKPiA+ID4+WzY4MS44MjM4MzJdIE1vZHVsZXMgbGlua2VkIGluOiA4MDIxcSBnYXJw IHN0cCBtcnAgY3JjMzJfY2UgcWNhNjE3NChPKSBjcmN0MTBkaWZfY2UgZ2FsY29yZShPKQo+ID4g Pj5bNjgxLjgyMzg0OV0gQ1BVOiAwIFBJRDogOTQgQ29tbToga3dvcmtlci8wOjEgVGFpbnRlZDog RyAgICAgICAgICAgTyAgICA0LjE0LjYyLWlteF80LjE0LnkrZ2NkNjNkZWYgIzEKPiA+ID4+WzY4 MS44MjM4NTFdIEhhcmR3YXJlIG5hbWU6IEZyZWVzY2FsZSBpLk1YOE1RIEVWSyAoRFQpCj4gPiA+ Pls2ODEuODIzODYyXSBXb3JrcXVldWU6IGV2ZW50c19mcmVlemFibGUgX19kd2MzX3NldF9tb2Rl Cj4gPiA+Pls2ODEuODIzODY1XSB0YXNrOiBmZmZmODAwMGI4YTE4MDAwIHRhc2suc3RhY2s6IGZm ZmYwMDAwMGEwMTAwMDAKPiA+ID4+WzY4MS44MjM4NzJdIFBDIGlzIGF0IHhoY2lfaXJxKzB4NWZj LzB4MTRiOAo+ID4gPj5bNjgxLjgyMzg3NV0gTFIgaXMgYXQgeGhjaV9pcnErMHgzYy8weDE0YjgK PiA+ID4KPiA+ID48c25pcD4KPiA+ID4KPiA+ID4+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hv c3QveGhjaS1yaW5nLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jCj4gPiA+PmluZGV4 IGYwYTk5YWEwYWM1OC4uMmRjNTE3NmI3OWQwIDEwMDY0NAo+ID4gPj4tLS0gYS9kcml2ZXJzL3Vz Yi9ob3N0L3hoY2ktcmluZy5jCj4gPiA+PisrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5n LmMKPiA+ID4+QEAgLTI2ODAsNyArMjY4MCw4IEBAIGlycXJldHVybl90IHhoY2lfaXJxKHN0cnVj dCB1c2JfaGNkICpoY2QpCj4gPiA+PiAgCX0KPiA+ID4+ICAJaWYgKHhoY2ktPnhoY19zdGF0ZSAm IFhIQ0lfU1RBVEVfRFlJTkcgfHwKPiA+ID4+LQkgICAgeGhjaS0+eGhjX3N0YXRlICYgWEhDSV9T VEFURV9IQUxURUQpIHsKPiA+ID4+KwkgICAgeGhjaS0+eGhjX3N0YXRlICYgWEhDSV9TVEFURV9I QUxURUQgfHwKPiA+ID4+KwkgICAgeGhjaS0+eGhjX3N0YXRlICYgWEhDSV9TVEFURV9SRU1PVklO Rykgewo+ID4gPj4gIAkJeGhjaV9kYmcoeGhjaSwgInhIQ0kgZHlpbmcsIGlnbm9yaW5nIGludGVy cnVwdC4gIgo+ID4gPj4gIAkJCQkiU2hvdWxkbid0IElSUXMgYmUgZGlzYWJsZWQ/XG4iKTsKPiA+ ID4+ICAJCS8qIENsZWFyIHRoZSBldmVudCBoYW5kbGVyIGJ1c3kgZmxhZyAoUlcxQyk7Cj4gPiA+ Cj4gPiA+V2UgYWxzbyBub3RpY2VkIHRoZSBzYW1lIGNyYXNoIGFzIHlvdSBmb3VuZCwgYW5kIHRy aWVkIHRvIGZpeCBpdCBpbiBhCj4gPiA+c2ltaWxhciB3YXksIGJ1dCBub3RpY2VkIHRoYXQgdGhp cyBzdGlsbCBhbGxvd3MgYSBtZW1vcnkgbGVhayB0byBoYXBwZW4uCj4gPiA+Cj4gPiA+SXQgc2Vl bXMgZnJvbSBjb21taXQgZmUxOTBlZDBkNjAyYSAoInhoY2k6IERvIG5vdCBoYWx0IHRoZSBob3N0 IHVudGlsCj4gPiA+Ym90aCBIQ0QgaGF2ZSBkaXNjb25uZWN0ZWQgdGhlaXIgZGV2aWNlcy4iKSB0 aGlzIHdhcyBhZGRlZCB0bwo+ID4gPnhoY2lfc3RvcCgpLCBhbmQgaXMgdGhlIHJlYXNvbiB3ZSBl bmNvdW50ZXIgdGhlIE5VTEwgcG9pbnRlciBpbgo+ID4gPnhoY2lfaXJxKCkgd2hlbiBpdCB0cmll cyB0byBhY2Nlc3MgeGhjaS0+c2hhcmVkX2hjZC4KPiA+ID4KPiA+ID4JKyAgICAgICAvKiBPbmx5 IGhhbHQgaG9zdCBhbmQgZnJlZSBtZW1vcnkgYWZ0ZXIgYm90aCBoY2RzIGFyZSByZW1vdmVkICov Cj4gPiA+CQlpZiAoIXVzYl9oY2RfaXNfcHJpbWFyeV9oY2QoaGNkKSkgewo+ID4gPgkrICAgICAg ICAgICAgICAgLyogdXNiIGNvcmUgd2lsbCBmcmVlIHRoaXMgaGNkIHNob3J0bHksIHVuc2V0IHBv aW50ZXIgKi8KPiA+ID4JKyAgICAgICAgICAgICAgIHhoY2ktPnNoYXJlZF9oY2QgPSBOVUxMOwo+ ID4gPgkJCW11dGV4X3VubG9jaygmeGhjaS0+bXV0ZXgpOwo+ID4gPgkJCXJldHVybjsKPiA+ID4J CX0KPiA+ID4KPiA+ID5XaGlsZSB5b3VyIGZpeCB3aWxsIHNpbXBseSBhYm9ydCB0aGUgeGhjaV9p cnEoKSBmdW5jdGlvbiBpZiBpdAo+ID4gPmVuY291bnRlcnMgWEhDSV9TVEFURV9SRU1PVklORywg ZHVyaW5nIHhoY2lfcGxhdF9yZW1vdmUoKToKPiA+ID4KPiA+ID4Jc3RhdGljIGludCB4aGNpX3Bs YXRfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKPiA+ID4Jewo+ID4gPgkJc3Ry dWN0IHVzYl9oY2QgICpoY2QgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShkZXYpOwo+ID4gPgkJc3Ry dWN0IHhoY2lfaGNkICp4aGNpID0gaGNkX3RvX3hoY2koaGNkKTsKPiA+ID4JCXN0cnVjdCBjbGsg KmNsayA9IHhoY2ktPmNsazsKPiA+ID4JCXN0cnVjdCBjbGsgKnJlZ19jbGsgPSB4aGNpLT5yZWdf Y2xrOwo+ID4gPgo+ID4gPgkJeGhjaS0+eGhjX3N0YXRlIHw9IFhIQ0lfU1RBVEVfUkVNT1ZJTkc7 Cj4gPiA+Cj4gPiA+CQl1c2JfcmVtb3ZlX2hjZCh4aGNpLT5zaGFyZWRfaGNkKTsKPiA+ID4JCV5e Xl5eXl5eXiBjYWxscyB4aGNpX3N0b3AoKSBhbmQgc2V0cyBzaGFyZWRfaGNkPU5VTEwKPiA+ID4J CXVzYl9waHlfc2h1dGRvd24oaGNkLT51c2JfcGh5KTsKPiA+ID4KPiA+ID4JCXVzYl9yZW1vdmVf aGNkKGhjZCk7Cj4gPiA+CQl1c2JfcHV0X2hjZCh4aGNpLT5zaGFyZWRfaGNkKTsKPiA+ID4JCV5e Xl5eXl5eXl5eIHNoYXJlZF9oY2Q9PU5VTEwsIHNvIHRoaXMgaXMgYSBuby1vcAo+ID4gPgo+ID4g PlNpbmNlIHVzYl9wdXRfaGNkKCkgZG9lc24ndCBnZXQgY2FsbGVkIGZvciBzaGFyZWRfaGNkLCB3 ZSBlbmQgdXAKPiA+ID53aXRoIG9uZSBhZGRpdGlvbmFsIGtyZWYgY291bnQgYW5kIGhlbmNlIGEg bGVhay4KPiA+IAo+ID4gTmljZSBjYXRjaCwgIHRoaXMgc2FtZSBpc3N1ZSBleGlzdHMgaW4KPiA+ IAo+ID4geGhjaV9wY2lfcmVtb3ZlKCkKPiA+IHRlZ3JhX3h1c2JfcmVtb3ZlKCkKPiA+IHhoY2lf bXRrX3JlbW92ZSgpCj4gPiB4aGNpX2hpc3RiX3JlbW92ZSgpCj4gPiAKPiA+IAo+ID4gPgo+ID4g PldvbmRlcmluZyBpZiB3ZSBuZWVkIHRvIGFsc28gcmVtb3ZlIHRoZSB4aGNpLT5zaGFyZWRfaGNk ID0gTlVMTCBmcm9tCj4gPiA+eGhjaV9zdG9wKCksIGluIGFkZGl0aW9uIHRvIHlvdXIgcGF0Y2hl cy4gVGhvdWdodHM/Cj4gPiAKPiA+IEF0IHNvbWUgcG9pbnQgdGhlIHhoY2ktPnNoYXJlZF9oY2Qg bmVlZHMgdG8gYmUgc2V0IE5VTEwsIGl0IGNhbiBiZSBkb25lIGluCj4gPiBpbiB0aGUgeGhjaV9w bGF0X3JlbW92ZSgpLCB4aGNpX3BjaV9yZW1vdmUoKSBhbmQgdGhlIHNpbWlsYXIgcmVtb3ZlIGZ1 bmN0aW9ucwo+ID4gYWZ0ZXIgY2FsbGluZyB1c2JfcmVtb3ZlX2hjZCgpLiB3ZSBjYW4ndCByZWx5 IG9uIHhoY2ktPnNoYXJlZF9oY2QgYWZ0ZXIgaXQKPiA+IGhhcyBiZWVuIHJlbW92ZWQuCj4gCj4g Q3VycmVudGx5IGl0IGlzIGFscmVhZHkgZG9uZSBhcyBmb2xsb3dzOgo+IAo+IHVzYl9yZW1vdmVf aGNkKHhoY2ktPnNoYXJlZF9oY2QpCj4gICAtPiB4aGNpX3N0b3AoKQo+ICAgICAgICAgLyogT25s eSBoYWx0IGhvc3QgYW5kIGZyZWUgbWVtb3J5IGFmdGVyIGJvdGggaGNkcyBhcmUgcmVtb3ZlZCAq Lwo+ICAgICAgICAgaWYgKCF1c2JfaGNkX2lzX3ByaW1hcnlfaGNkKGhjZCkpIHsKPiAgICAgICAg ICAgICAgICAgLyogdXNiIGNvcmUgd2lsbCBmcmVlIHRoaXMgaGNkIHNob3J0bHksIHVuc2V0IHBv aW50ZXIgKi8KPiAgICAgICAgICAgICAgICAgeGhjaS0+c2hhcmVkX2hjZCA9IE5VTEw7Cj4gCj4g SSBndWVzcyBhdCB0aGUgdmVyeSBsZWFzdCB5b3VyIHN1Z2dlc3Rpb24gdG8gZG8gaXQgZnJvbSB0 aGUKPiB4aGNpX3twbGF0LHBjaSxtdGssdGVncmF9X3JlbW92ZSgpIGNvbnRleHQgbWFrZXMgaXQg bW9yZSBleHBsaWNpdCByYXRoZXIKPiB0aGFuIGhhdmluZyBpdCBhcyBhIHNpZGUgZWZmZWN0IG9m IHVzYl9yZW1vdmVfaGNkKCkveGhjaV9zdG9wKCkuIFRoZSBuZXQKPiBlZmZlY3QgaXMgbW9yZSBv ciBsZXNzIHRoZSBzYW1lIHRob3VnaCBJTU8uCgpEJ29oLiBPZiBjb3Vyc2UgaXQgbWFrZXMgc2Vu c2UgdG8gbW92ZSB0aGUgTlVMTCBhc3NpZ25tZW50IHRvIHRoZSBjYWxsZXIKKmFmdGVyKiBjYWxs aW5nIHVzYl9wdXRfaGNkKCkgc28gaXQgY2FuIGJlIHByb3Blcmx5IGZyZWVkLgoKSmFjawo=