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: [v4] driver core: hold dev's parent lock when needed From: martin_liu Message-Id: <20180531072732.GA90146@google.com> Date: Thu, 31 May 2018 15:27:32 +0800 To: Greg KH Cc: Alan Stern , heikki.krogerus@linux.intel.com, johan@kernel.org, andy.shevchenko@gmail.com, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, jenhaochen@google.com List-ID: T24gVGh1LCBNYXkgMzEsIDIwMTggYXQgMDg6MzE6MThBTSArMDIwMCwgR3JlZyBLSCB3cm90ZToK PiBPbiBXZWQsIE1heSAzMCwgMjAxOCBhdCAwMToyMTowMlBNIC0wNDAwLCBBbGFuIFN0ZXJuIHdy b3RlOgo+ID4gT24gVGh1LCAzMSBNYXkgMjAxOCwgTWFydGluIExpdSB3cm90ZToKPiA+IAo+ID4g PiBTb0MgaGF2ZSBpbnRlcm5hbCBJL08gYnVzZXMgdGhhdCBjYW4ndCBiZSBwcm92ZWQgZm9yIGRl dmljZXMuIFRoZQo+ID4gPiBkZXZpY2VzIG9uIHRoZSBidXNlcyBjYW4gYmUgYWNjZXNzZWQgZGly ZWN0bHkgd2l0aG91dCBhZGRpdGluYWwKPiA+ID4gY29uZmlndXJhdGlvbiByZXF1aXJlZC4gVGhp cyB0eXBlIG9mIGJ1cyBpcyByZXByZXNlbnRlZCBhcwo+ID4gPiAic2ltcGxlLWJ1cyIuIEluIHNv bWUgcGxhdGZvcm1zLCB3ZSBuYW1lICJzb2MiIHdpdGggInNpbXBsZS1idXMiCj4gPiA+IGF0dHJp YnV0ZSBhbmQgbWFueSBkZXZpY2VzIGFyZSBob29rZWQgdW5kZXIgaXQgZGVzY3JpYmVkIGluIERU Cj4gPiA+IChkZXZpY2UgdHJlZSkuCj4gPiA+IAo+ID4gPiBJbiBjb21taXQgYmY3NGFkNWJjNDE3 ICgiSG9sZCB0aGUgZGV2aWNlJ3MgcGFyZW50J3MgbG9jayBkdXJpbmcKPiA+ID4gcHJvYmUgYW5k IHJlbW92ZSIpIHRvIHNvbHZlIFVTQiBzdWJzeXN0ZW0gbG9jayBzZXF1ZW5jZSBzaW5jZQo+ID4g PiBVU0IgZGV2aWNlJ3MgY2hhcmFjdGVyaXN0aWMuIFRodXMgInNvYyIgbmVlZHMgdG8gYmUgbG9j a2VkCj4gPiA+IHdoZW5ldmVyIGEgZGV2aWNlIGFuZCBkcml2ZXIncyBwcm9iaW5nIGhhcHBlbiB1 bmRlciAic29jIiBidXMuCj4gPiA+IER1cmluZyB0aGlzIHBlcmlvZCwgYW4gYXN5bmMgZHJpdmVy IHRyaWVzIHRvIHByb2JlIGEgZGV2aWNlIHdoaWNoCj4gPiA+IGlzIHVuZGVyIHRoZSAic29jIiBi dXMgd291bGQgYmUgYmxvY2tlZCB1bnRpbCBwcmV2aW91cyBkcml2ZXIKPiA+ID4gZmluaXNoIHRo ZSBwcm9iaW5nIGFuZCByZWxlYXNlICJzb2MiIGxvY2suIEFuZCB0aGUgbmV4dCBwcm9iaW5nCj4g PiA+IHVuZGVyIHRoZSAic29jIiBidXMgbmVlZCB0byB3YWl0IGZvciBhc3luYyBmaW5pc2guIEJl Y2F1c2Ugb2YKPiA+ID4gdGhhdCwgZHJpdmVyJ3MgYXN5bmMgcHJvYmUgZm9yIGluaXQgdGltZSBp bXByb3ZlbWVudCB3aWxsIGJlCj4gPiA+IHNoYWRvd2VkLgo+ID4gPiAKPiA+ID4gU2luY2UgbWFu eSBkZXZpY2VzIGRvbid0IGhhdmUgVVNCIGRldmljZXMnIGNoYXJhY3RlcmlzdGljLCB0aGV5Cj4g PiA+IGFjdHVhbGx5IGRvbid0IG5lZWQgcGFyZW50J3MgbG9jay4gVGh1cywgd2UgaW50cm9kdWNl IGEgbG9jayBmbGFnCj4gPiA+IGluIGJ1c190eXBlIHN0cnVjdCBhbmQgZHJpdmVyIGNvcmUgd291 bGQgbG9jayB0aGUgcGFyZW50IGxvY2sgYmFzZQo+ID4gPiBvbiB0aGUgZmxhZy4gRm9yIFVTQiwg d2Ugc2V0IHRoaXMgZmxhZyBpbiB1c2JfYnVzX3R5cGUgdG8ga2VlcAo+ID4gPiBvcmlnaW5hbCBs b2NrIGJlaGF2aW9yIGluIGRyaXZlciBjb3JlLgo+ID4gPiAKPiA+ID4gQXN5bmMgcHJvYmUgY291 bGQgaGF2ZSBtb3JlIGJlbmVmaXQgYWZ0ZXIgdGhpcyBwYXRjaC4KPiA+ID4gCj4gPiA+IFNpZ25l ZC1vZmYtYnk6IE1hcnRpbiBMaXUgPGxpdW1hcnRpbkBnb29nbGUuY29tPgo+ID4gPiAtLS0KPiA+ ID4gQ2hhbmdlcyBpbiB2NDoKPiA+ID4gIC1maXggY29tbWVudCBhbmQgd29yZGluZy4KPiA+ID4g IC1mb2xsb3cgdGhlIHN1Z2dlc3Rpb24uCj4gPiA+IAo+ID4gPiBbdjNdOiBodHRwczovL2xrbWwu b3JnL2xrbWwvMjAxOC81LzI5Lzg3Ngo+ID4gPiBbdjJdOiBodHRwczovL2xrbWwub3JnL2xrbWwv MjAxOC81LzI5LzEwOAo+ID4gPiBbdjFdOiBodHRwczovL2xrbWwub3JnL2xrbWwvMjAxOC81LzIy LzU0NQo+ID4gPiAKPiA+ID4gIGRyaXZlcnMvYmFzZS9idXMuYyAgICAgICAgfCAxNiArKysrKysr Ky0tLS0tLS0tCj4gPiA+ICBkcml2ZXJzL2Jhc2UvZGQuYyAgICAgICAgIHwgIDggKysrKy0tLS0K PiA+ID4gIGRyaXZlcnMvdXNiL2NvcmUvZHJpdmVyLmMgfCAgMSArCj4gPiA+ICBpbmNsdWRlL2xp bnV4L2RldmljZS5oICAgIHwgIDMgKysrCj4gPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDE2IGluc2Vy dGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvYmFzZS9idXMuYyBiL2RyaXZlcnMvYmFzZS9idXMuYwo+ID4gPiBpbmRleCBlZjYxODMzMDZi NDAuLjhiZmQyN2VjNzNkNiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9iYXNlL2J1cy5jCj4g PiA+ICsrKyBiL2RyaXZlcnMvYmFzZS9idXMuYwo+ID4gPiBAQCAtMTg0LDEwICsxODQsMTAgQEAg c3RhdGljIHNzaXplX3QgdW5iaW5kX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYsIGNv bnN0IGNoYXIgKmJ1ZiwKPiA+ID4gIAo+ID4gPiAgCWRldiA9IGJ1c19maW5kX2RldmljZV9ieV9u YW1lKGJ1cywgTlVMTCwgYnVmKTsKPiA+ID4gIAlpZiAoZGV2ICYmIGRldi0+ZHJpdmVyID09IGRy dikgewo+ID4gPiAtCQlpZiAoZGV2LT5wYXJlbnQpCS8qIE5lZWRlZCBmb3IgVVNCICovCj4gPiA+ ICsJCWlmIChkZXYtPnBhcmVudCAmJiBkZXYtPmJ1cy0+bmVlZF9wYXJlbnRfbG9jaykKPiA+ID4g IAkJCWRldmljZV9sb2NrKGRldi0+cGFyZW50KTsKPiA+ID4gIAkJZGV2aWNlX3JlbGVhc2VfZHJp dmVyKGRldik7Cj4gPiA+IC0JCWlmIChkZXYtPnBhcmVudCkKPiA+ID4gKwkJaWYgKGRldi0+cGFy ZW50ICYmIGRldi0+YnVzLT5uZWVkX3BhcmVudF9sb2NrKQo+ID4gPiAgCQkJZGV2aWNlX3VubG9j ayhkZXYtPnBhcmVudCk7Cj4gPiA+ICAJCWVyciA9IGNvdW50Owo+ID4gPiAgCX0KPiA+ID4gQEAg LTIxMSwxMiArMjExLDEyIEBAIHN0YXRpYyBzc2l6ZV90IGJpbmRfc3RvcmUoc3RydWN0IGRldmlj ZV9kcml2ZXIgKmRydiwgY29uc3QgY2hhciAqYnVmLAo+ID4gPiAgCj4gPiA+ICAJZGV2ID0gYnVz X2ZpbmRfZGV2aWNlX2J5X25hbWUoYnVzLCBOVUxMLCBidWYpOwo+ID4gPiAgCWlmIChkZXYgJiYg ZGV2LT5kcml2ZXIgPT0gTlVMTCAmJiBkcml2ZXJfbWF0Y2hfZGV2aWNlKGRydiwgZGV2KSkgewo+ ID4gPiAtCQlpZiAoZGV2LT5wYXJlbnQpCS8qIE5lZWRlZCBmb3IgVVNCICovCj4gPiA+ICsJCWlm IChkZXYtPnBhcmVudCAmJiBidXMtPm5lZWRfcGFyZW50X2xvY2spCj4gPiA+ICAJCQlkZXZpY2Vf bG9jayhkZXYtPnBhcmVudCk7Cj4gPiA+ICAJCWRldmljZV9sb2NrKGRldik7Cj4gPiA+ICAJCWVy ciA9IGRyaXZlcl9wcm9iZV9kZXZpY2UoZHJ2LCBkZXYpOwo+ID4gPiAgCQlkZXZpY2VfdW5sb2Nr KGRldik7Cj4gPiA+IC0JCWlmIChkZXYtPnBhcmVudCkKPiA+ID4gKwkJaWYgKGRldi0+cGFyZW50 ICYmIGJ1cy0+bmVlZF9wYXJlbnRfbG9jaykKPiA+ID4gIAkJCWRldmljZV91bmxvY2soZGV2LT5w YXJlbnQpOwo+ID4gPiAgCj4gPiA+ICAJCWlmIChlcnIgPiAwKSB7Cj4gPiA+IEBAIC03MzUsMTAg KzczNSwxMCBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBidXNfcmVzY2FuX2RldmljZXNfaGVs cGVyKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ID4gIAlpbnQgcmV0ID0gMDsKPiA+ID4gIAo+ID4g PiAgCWlmICghZGV2LT5kcml2ZXIpIHsKPiA+ID4gLQkJaWYgKGRldi0+cGFyZW50KQkvKiBOZWVk ZWQgZm9yIFVTQiAqLwo+ID4gPiArCQlpZiAoZGV2LT5wYXJlbnQgJiYgZGV2LT5idXMtPm5lZWRf cGFyZW50X2xvY2spCj4gPiA+ICAJCQlkZXZpY2VfbG9jayhkZXYtPnBhcmVudCk7Cj4gPiA+ICAJ CXJldCA9IGRldmljZV9hdHRhY2goZGV2KTsKPiA+ID4gLQkJaWYgKGRldi0+cGFyZW50KQo+ID4g PiArCQlpZiAoZGV2LT5wYXJlbnQgJiYgZGV2LT5idXMtPm5lZWRfcGFyZW50X2xvY2spCj4gPiA+ ICAJCQlkZXZpY2VfdW5sb2NrKGRldi0+cGFyZW50KTsKPiA+ID4gIAl9Cj4gPiA+ICAJcmV0dXJu IHJldCA8IDAgPyByZXQgOiAwOwo+ID4gPiBAQCAtNzcwLDEwICs3NzAsMTAgQEAgRVhQT1JUX1NZ TUJPTF9HUEwoYnVzX3Jlc2Nhbl9kZXZpY2VzKTsKPiA+ID4gIGludCBkZXZpY2VfcmVwcm9iZShz dHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiA+ICB7Cj4gPiA+ICAJaWYgKGRldi0+ZHJpdmVyKSB7Cj4g PiA+IC0JCWlmIChkZXYtPnBhcmVudCkgICAgICAgIC8qIE5lZWRlZCBmb3IgVVNCICovCj4gPiA+ ICsJCWlmIChkZXYtPnBhcmVudCAmJiBkZXYtPmJ1cy0+bmVlZF9wYXJlbnRfbG9jaykKPiA+ID4g IAkJCWRldmljZV9sb2NrKGRldi0+cGFyZW50KTsKPiA+ID4gIAkJZGV2aWNlX3JlbGVhc2VfZHJp dmVyKGRldik7Cj4gPiA+IC0JCWlmIChkZXYtPnBhcmVudCkKPiA+ID4gKwkJaWYgKGRldi0+cGFy ZW50ICYmIGRldi0+YnVzLT5uZWVkX3BhcmVudF9sb2NrKQo+ID4gPiAgCQkJZGV2aWNlX3VubG9j ayhkZXYtPnBhcmVudCk7Cj4gPiA+ICAJfQo+ID4gPiAgCXJldHVybiBidXNfcmVzY2FuX2Rldmlj ZXNfaGVscGVyKGRldiwgTlVMTCk7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvZGQu YyBiL2RyaXZlcnMvYmFzZS9kZC5jCj4gPiA+IGluZGV4IGM5ZjU0MDg5NDI5Yi4uN2MwOWY3M2I5 NmYzIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2Jhc2UvZGQuYwo+ID4gPiArKysgYi9kcml2 ZXJzL2Jhc2UvZGQuYwo+ID4gPiBAQCAtODE3LDEzICs4MTcsMTMgQEAgc3RhdGljIGludCBfX2Ry aXZlcl9hdHRhY2goc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQo+ID4gPiAgCQlyZXR1 cm4gcmV0Owo+ID4gPiAgCX0gLyogcmV0ID4gMCBtZWFucyBwb3NpdGl2ZSBtYXRjaCAqLwo+ID4g PiAgCj4gPiA+IC0JaWYgKGRldi0+cGFyZW50KQkvKiBOZWVkZWQgZm9yIFVTQiAqLwo+ID4gPiAr CWlmIChkZXYtPnBhcmVudCAmJiBkZXYtPmJ1cy0+bmVlZF9wYXJlbnRfbG9jaykKPiA+ID4gIAkJ ZGV2aWNlX2xvY2soZGV2LT5wYXJlbnQpOwo+ID4gPiAgCWRldmljZV9sb2NrKGRldik7Cj4gPiA+ ICAJaWYgKCFkZXYtPmRyaXZlcikKPiA+ID4gIAkJZHJpdmVyX3Byb2JlX2RldmljZShkcnYsIGRl dik7Cj4gPiA+ICAJZGV2aWNlX3VubG9jayhkZXYpOwo+ID4gPiAtCWlmIChkZXYtPnBhcmVudCkK PiA+ID4gKwlpZiAoZGV2LT5wYXJlbnQgJiYgZGV2LT5idXMtPm5lZWRfcGFyZW50X2xvY2spCj4g PiA+ICAJCWRldmljZV91bmxvY2soZGV2LT5wYXJlbnQpOwo+ID4gPiAgCj4gPiA+ICAJcmV0dXJu IDA7Cj4gPiA+IEBAIC05MTksNyArOTE5LDcgQEAgdm9pZCBkZXZpY2VfcmVsZWFzZV9kcml2ZXJf aW50ZXJuYWwoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gPiAgCQkJCSAgICBzdHJ1Y3QgZGV2aWNl X2RyaXZlciAqZHJ2LAo+ID4gPiAgCQkJCSAgICBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQpCj4gPiA+ ICB7Cj4gPiA+IC0JaWYgKHBhcmVudCkKPiA+ID4gKwlpZiAocGFyZW50ICYmIGRldi0+YnVzLT5u ZWVkX3BhcmVudF9sb2NrKQo+ID4gPiAgCQlkZXZpY2VfbG9jayhwYXJlbnQpOwo+ID4gPiAgCj4g PiA+ICAJZGV2aWNlX2xvY2soZGV2KTsKPiA+ID4gQEAgLTkyNyw3ICs5MjcsNyBAQCB2b2lkIGRl dmljZV9yZWxlYXNlX2RyaXZlcl9pbnRlcm5hbChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiA+ICAJ CV9fZGV2aWNlX3JlbGVhc2VfZHJpdmVyKGRldiwgcGFyZW50KTsKPiA+ID4gIAo+ID4gPiAgCWRl dmljZV91bmxvY2soZGV2KTsKPiA+ID4gLQlpZiAocGFyZW50KQo+ID4gPiArCWlmIChwYXJlbnQg JiYgZGV2LT5idXMtPm5lZWRfcGFyZW50X2xvY2spCj4gPiA+ICAJCWRldmljZV91bmxvY2socGFy ZW50KTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29y ZS9kcml2ZXIuYyBiL2RyaXZlcnMvdXNiL2NvcmUvZHJpdmVyLmMKPiA+ID4gaW5kZXggOTc5MmNl ZGZjMzUxLi5lNzZlOTVmNjJmNzYgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvdXNiL2NvcmUv ZHJpdmVyLmMKPiA+ID4gKysrIGIvZHJpdmVycy91c2IvY29yZS9kcml2ZXIuYwo+ID4gPiBAQCAt MTkyMiw0ICsxOTIyLDUgQEAgc3RydWN0IGJ1c190eXBlIHVzYl9idXNfdHlwZSA9IHsKPiA+ID4g IAkubmFtZSA9CQkidXNiIiwKPiA+ID4gIAkubWF0Y2ggPQl1c2JfZGV2aWNlX21hdGNoLAo+ID4g PiAgCS51ZXZlbnQgPQl1c2JfdWV2ZW50LAo+ID4gPiArCS5uZWVkX3BhcmVudF9sb2NrID0JdHJ1 ZSwKPiA+ID4gIH07Cj4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RldmljZS5oIGIv aW5jbHVkZS9saW51eC9kZXZpY2UuaAo+ID4gPiBpbmRleCA0Nzc5NTY5OTBmNWUuLmJlY2E0MjQz OTVkZCAxMDA2NDQKPiA+ID4gLS0tIGEvaW5jbHVkZS9saW51eC9kZXZpY2UuaAo+ID4gPiArKysg Yi9pbmNsdWRlL2xpbnV4L2RldmljZS5oCj4gPiA+IEBAIC05OCw2ICs5OCw4IEBAIGV4dGVybiB2 b2lkIGJ1c19yZW1vdmVfZmlsZShzdHJ1Y3QgYnVzX3R5cGUgKiwgc3RydWN0IGJ1c19hdHRyaWJ1 dGUgKik7Cj4gPiA+ICAgKiBAbG9ja19rZXk6CUxvY2sgY2xhc3Mga2V5IGZvciB1c2UgYnkgdGhl IGxvY2sgdmFsaWRhdG9yCj4gPiA+ICAgKiBAZm9yY2VfZG1hOglBc3N1bWUgZGV2aWNlcyBvbiB0 aGlzIGJ1cyBzaG91bGQgYmUgc2V0IHVwIGJ5IGRtYV9jb25maWd1cmUoKQo+ID4gPiAgICogCQll dmVuIGlmIERNQSBjYXBhYmlsaXR5IGlzIG5vdCBleHBsaWNpdGx5IGRlc2NyaWJlZCBieSBmaXJt d2FyZS4KPiA+ID4gKyAqIEBuZWVkX3BhcmVudF9sb2NrOglXaGVuIHByb2Jpbmcgb3IgcmVtb3Zp bmcgYSBkZXZpY2Ugb24gdGhpcyBidXMsIHRoZQo+ID4gPiArICoJCQlkZXZpY2UgY29yZSBzaG91 bGQgbG9jayB0aGUgZGV2aWNlJ3MgcGFyZW50Lgo+ID4gPiAgICoKPiA+ID4gICAqIEEgYnVzIGlz IGEgY2hhbm5lbCBiZXR3ZWVuIHRoZSBwcm9jZXNzb3IgYW5kIG9uZSBvciBtb3JlIGRldmljZXMu IEZvciB0aGUKPiA+ID4gICAqIHB1cnBvc2VzIG9mIHRoZSBkZXZpY2UgbW9kZWwsIGFsbCBkZXZp Y2VzIGFyZSBjb25uZWN0ZWQgdmlhIGEgYnVzLCBldmVuIGlmCj4gPiA+IEBAIC0xMzgsNiArMTQw LDcgQEAgc3RydWN0IGJ1c190eXBlIHsKPiA+ID4gIAlzdHJ1Y3QgbG9ja19jbGFzc19rZXkgbG9j a19rZXk7Cj4gPiA+ICAKPiA+ID4gIAlib29sIGZvcmNlX2RtYTsKPiA+ID4gKwlib29sIG5lZWRf cGFyZW50X2xvY2s7Cj4gPiA+ICB9Owo+ID4gPiAgCj4gPiA+ICBleHRlcm4gaW50IF9fbXVzdF9j aGVjayBidXNfcmVnaXN0ZXIoc3RydWN0IGJ1c190eXBlICpidXMpOwo+ID4gCj4gPiBUaGlzIGxv b2tzIG9rYXkgdG8gbWUuCj4gPiAKPiA+IEFja2VkLWJ5OiBBbGFuIFN0ZXJuIDxzdGVybkByb3ds YW5kLmhhcnZhcmQuZWR1Pgo+ID4gCj4gPiBHcmVnLCBhbnkgbW9yZSBjb21tZW50cz8KPiAKPiBM b29rcyBzYW5lIHRvIG1lLiAgTWFydGluLCB0aGFua3MgZm9yIGFsbCBvZiB0aGUgY2hhbmdlcy4K PiAKPiBncmVnIGstaAoKR3JlYXQgdGhhbmsgQWxhbiwgR3JlZyBhbmQgQW5keSBmb3IgaGVscGZ1 bCBoaW50cyBhbmQgZmVlZGJhY2suCk1hbnkgVGhhbmtzIQoKTWFydGluCi0tLQpUbyB1bnN1YnNj cmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtdXNi IiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpN b3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1p bmZvLmh0bWwK