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: musb: fix remote wakeup racing with suspend From: Bin Liu Message-Id: <20180501134811.GE21238@uda0271908> Date: Tue, 1 May 2018 08:48:11 -0500 To: Daniel =?iso-8859-1?Q?Gl=F6ckner?= Cc: linux-usb@vger.kernel.org, Greg Kroah-Hartman List-ID: SGksCgpPbiBGcmksIEFwciAyNywgMjAxOCBhdCAwMzowMDowNVBNICswMjAwLCBEYW5pZWwgR2zD tmNrbmVyIHdyb3RlOgo+IEl0IGhhcyBiZWVuIG9ic2VydmVkIHRoYXQgd3JpdGluZyAweEYyIHRv IHRoZSBwb3dlciByZWdpc3RlciB3aGlsZSBpdAo+IHJlYWRzIGFzIDB4RjQgcmVzdWx0cyBpbiB0 aGUgcmVnaXN0ZXIgaGF2aW5nIHRoZSB2YWx1ZSAweEYwLCBpLmUuIGNsZWFyaW5nCj4gUkVTVU1F IGFuZCBzZXR0aW5nIFNVU1BFTkRNIGluIG9uZSBnbyBkb2VzIG5vdCB3b3JrLiBJdCBtaWdodCBh bHNvIHZpb2xhdGUKPiB0aGUgVVNCIHNwZWMgdG8gdHJhbnNpdGlvbiBkaXJlY3RseSBmcm9tIHJl c3VtZSB0byBzdXNwZW5kLCBlc3BlY2lhbGx5Cj4gd2hlbiBub3QgdGFraW5nIFRfRFJTTUROIGlu dG8gYWNjb3VudC4gQnV0IHRoaXMgaXMgd2hhdCBoYXBwZW5zIHdoZW4gYQo+IHJlbW90ZSB3YWtl dXAgb2NjdXJzIGJldHdlZW4gU2V0UG9ydEZlYXR1cmUgVVNCX1BPUlRfRkVBVF9TVVNQRU5EIG9u IHRoZQo+IHJvb3QgaHViIGFuZCBtdXNiX2J1c19zdXNwZW5kIGJlaW5nIGNhbGxlZC4KPiAKPiBU aGlzIGNvbW1pdCByZXR1cm5zIC1FQlVTWSB3aGVuIG11c2JfYnVzX3N1c3BlbmQgaXMgY2FsbGVk IHdoaWxlIHJlbW90ZQo+IHdha2V1cCBpcyBzaWduYWxsZWQgYW5kIHRodXMgYXZvaWRzIHRvIHJl c2V0IHRoZSBSRVNVTUUgYml0LiBSZW1lbWJlciB0aGF0Cj4gcmVzdW1lIGNhbiBiZSBzaWduYWxs ZWQgb25seSB3aGVuIHRoZSBidXMgd2FzIGFscmVhZHkgc3VzcGVuZGVkLCBzbyBpdCBpcwo+IHNh ZmUgdG8gc2tpcCB0aGUgZm9sbG93aW5nIHN0ZXBzIGV2ZW4gd2hlbiBtdXNiX2h1Yl9jb250cm9s IGlnbm9yZXMgdGhlCgp3aGF0IGRvIHlvdSBtZWFuIGJ5ICJza2lwIHRoZSBmb2xsb3dpbmcgc3Rl cHMiPwoKPiBlcnJvciByZXR1cm5lZCBieSBtdXNiX3BvcnRfc3VzcGVuZC4KPiAKPiBUaGUgcmVz dW1lIHBhcnQgb2YgbXVzYl9wb3J0X3N1c3BlbmQgaXMgbW9kaWZpZWQgdG8gYWxzbyBhY2NlcHQg YSBwZW5kaW5nCj4gcmVtb3RlIHdha2V1cCwgdG8gYnJpbmcgaXQgdG8gdGhlIGVuZCBhZnRlciBU X0RSU01ETiBoYXMgcGFzc2VkLgoKQ2FuIHlvdSBwbGVhc2UgZXhwbGFpbiBtb3JlIGhlcmU/IEkg YW0gbm90IHN1cmUgd2hlbiBtdXNiX3BvcnRfc3VzcGVuZCgpCmlzIGludm9sdmVkIGluIHJlc3Vt ZSBieSByZW1vdGUgd2FrZXVwLCBhbmQgd2hhdCBjYXNlIGlzIGEgJ3BlbmRpbmcnCnJlbW90ZSB3 YWtldXA/Cgo+IAo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBHbMO2Y2tuZXIgPGRnQGVtbGl4LmNv bT4KPiAtLS0KPiAgZHJpdmVycy91c2IvbXVzYi9tdXNiX2hvc3QuYyAgICB8ICA1ICsrKystCj4g IGRyaXZlcnMvdXNiL211c2IvbXVzYl9ob3N0LmggICAgfCAgNyArKysrKy0tCj4gIGRyaXZlcnMv dXNiL211c2IvbXVzYl92aXJ0aHViLmMgfCAyNyArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K PiAgMyBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbXVzYi9tdXNiX2hvc3QuYyBiL2RyaXZlcnMvdXNi L211c2IvbXVzYl9ob3N0LmMKPiBpbmRleCAzYTg0NTFhLi5kMDVjYjAzIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvdXNiL211c2IvbXVzYl9ob3N0LmMKPiArKysgYi9kcml2ZXJzL3VzYi9tdXNiL211 c2JfaG9zdC5jCj4gQEAgLTI1MjIsOCArMjUyMiwxMSBAQCBzdGF0aWMgaW50IG11c2JfYnVzX3N1 c3BlbmQoc3RydWN0IHVzYl9oY2QgKmhjZCkKPiAgewo+ICAJc3RydWN0IG11c2IJKm11c2IgPSBo Y2RfdG9fbXVzYihoY2QpOwo+ICAJdTgJCWRldmN0bDsKPiArCWludAkJcmV0Owo+ICAKPiAtCW11 c2JfcG9ydF9zdXNwZW5kKG11c2IsIHRydWUpOwo+ICsJcmV0ID0gbXVzYl9wb3J0X3N1c3BlbmQo bXVzYiwgdHJ1ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gIAo+ICAJaWYgKCFp c19ob3N0X2FjdGl2ZShtdXNiKSkKPiAgCQlyZXR1cm4gMDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2IvbXVzYi9tdXNiX2hvc3QuaCBiL2RyaXZlcnMvdXNiL211c2IvbXVzYl9ob3N0LmgKPiBp bmRleCA3MjM5MmJiLi4yOTk5ODQ1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL211c2IvbXVz Yl9ob3N0LmgKPiArKysgYi9kcml2ZXJzL3VzYi9tdXNiL211c2JfaG9zdC5oCj4gQEAgLTY3LDcg KzY3LDcgQEAgZXh0ZXJuIHZvaWQgbXVzYl9ob3N0X3J4KHN0cnVjdCBtdXNiICosIHU4KTsKPiAg ZXh0ZXJuIHZvaWQgbXVzYl9yb290X2Rpc2Nvbm5lY3Qoc3RydWN0IG11c2IgKm11c2IpOwo+ICBl eHRlcm4gdm9pZCBtdXNiX2hvc3RfcmVzdW1lX3Jvb3RfaHViKHN0cnVjdCBtdXNiICptdXNiKTsK PiAgZXh0ZXJuIHZvaWQgbXVzYl9ob3N0X3Bva2Vfcm9vdF9odWIoc3RydWN0IG11c2IgKm11c2Ip Owo+IC1leHRlcm4gdm9pZCBtdXNiX3BvcnRfc3VzcGVuZChzdHJ1Y3QgbXVzYiAqbXVzYiwgYm9v bCBkb19zdXNwZW5kKTsKPiArZXh0ZXJuIGludCBtdXNiX3BvcnRfc3VzcGVuZChzdHJ1Y3QgbXVz YiAqbXVzYiwgYm9vbCBkb19zdXNwZW5kKTsKPiAgZXh0ZXJuIHZvaWQgbXVzYl9wb3J0X3Jlc2V0 KHN0cnVjdCBtdXNiICptdXNiLCBib29sIGRvX3Jlc2V0KTsKPiAgZXh0ZXJuIHZvaWQgbXVzYl9o b3N0X2ZpbmlzaF9yZXN1bWUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKPiAgI2Vsc2UKPiBA QCAtOTksNyArOTksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIG11c2Jfcm9vdF9kaXNjb25uZWN0 KHN0cnVjdCBtdXNiICptdXNiKQl7fQo+ICBzdGF0aWMgaW5saW5lIHZvaWQgbXVzYl9ob3N0X3Jl c3VtZV9yb290X2h1YihzdHJ1Y3QgbXVzYiAqbXVzYikJe30KPiAgc3RhdGljIGlubGluZSB2b2lk IG11c2JfaG9zdF9wb2xsX3JoX3N0YXR1cyhzdHJ1Y3QgbXVzYiAqbXVzYikJe30KPiAgc3RhdGlj IGlubGluZSB2b2lkIG11c2JfaG9zdF9wb2tlX3Jvb3RfaHViKHN0cnVjdCBtdXNiICptdXNiKQl7 fQo+IC1zdGF0aWMgaW5saW5lIHZvaWQgbXVzYl9wb3J0X3N1c3BlbmQoc3RydWN0IG11c2IgKm11 c2IsIGJvb2wgZG9fc3VzcGVuZCkge30KPiArc3RhdGljIGlubGluZSBpbnQgbXVzYl9wb3J0X3N1 c3BlbmQoc3RydWN0IG11c2IgKm11c2IsIGJvb2wgZG9fc3VzcGVuZCkKPiArewo+ICsJcmV0dXJu IDA7Cj4gK30KPiAgc3RhdGljIGlubGluZSB2b2lkIG11c2JfcG9ydF9yZXNldChzdHJ1Y3QgbXVz YiAqbXVzYiwgYm9vbCBkb19yZXNldCkge30KPiAgc3RhdGljIGlubGluZSB2b2lkIG11c2JfaG9z dF9maW5pc2hfcmVzdW1lKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykge30KPiAgI2VuZGlmCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL211c2IvbXVzYl92aXJ0aHViLmMgYi9kcml2ZXJzL3Vz Yi9tdXNiL211c2JfdmlydGh1Yi5jCj4gaW5kZXggNTE2NWQyYi4uNDFiNDRjZSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL3VzYi9tdXNiL211c2JfdmlydGh1Yi5jCj4gKysrIGIvZHJpdmVycy91c2Iv bXVzYi9tdXNiX3ZpcnRodWIuYwo+IEBAIC00OCwxNCArNDgsMTQgQEAgdm9pZCBtdXNiX2hvc3Rf ZmluaXNoX3Jlc3VtZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gIAlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZtdXNiLT5sb2NrLCBmbGFncyk7Cj4gIH0KPiAgCj4gLXZvaWQgbXVzYl9wb3J0 X3N1c3BlbmQoc3RydWN0IG11c2IgKm11c2IsIGJvb2wgZG9fc3VzcGVuZCkKPiAraW50IG11c2Jf cG9ydF9zdXNwZW5kKHN0cnVjdCBtdXNiICptdXNiLCBib29sIGRvX3N1c3BlbmQpCj4gIHsKPiAg CXN0cnVjdCB1c2Jfb3RnCSpvdGcgPSBtdXNiLT54Y2Vpdi0+b3RnOwo+ICAJdTgJCXBvd2VyOwo+ ICAJdm9pZCBfX2lvbWVtCSptYmFzZSA9IG11c2ItPm1yZWdzOwo+ICAKPiAgCWlmICghaXNfaG9z dF9hY3RpdmUobXVzYikpCj4gLQkJcmV0dXJuOwo+ICsJCXJldHVybiAwOwo+ICAKPiAgCS8qIE5P VEU6ICB0aGlzIGRvZXNuJ3QgbmVjZXNzYXJpbHkgcHV0IFBIWSBpbnRvIGxvdyBwb3dlciBtb2Rl LAo+ICAJICogdHVybmluZyBvZmYgaXRzIGNsb2NrOyB0aGF0J3MgYSBmdW5jdGlvbiBvZiBQSFkg aW50ZWdyYXRpb24gYW5kCj4gQEAgLTY2LDE2ICs2NiwyMCBAQCB2b2lkIG11c2JfcG9ydF9zdXNw ZW5kKHN0cnVjdCBtdXNiICptdXNiLCBib29sIGRvX3N1c3BlbmQpCj4gIAlpZiAoZG9fc3VzcGVu ZCkgewo+ICAJCWludCByZXRyaWVzID0gMTAwMDA7Cj4gIAo+IC0JCXBvd2VyICY9IH5NVVNCX1BP V0VSX1JFU1VNRTsKPiAtCQlwb3dlciB8PSBNVVNCX1BPV0VSX1NVU1BFTkRNOwo+IC0JCW11c2Jf d3JpdGViKG1iYXNlLCBNVVNCX1BPV0VSLCBwb3dlcik7Cj4gKwkJaWYgKHBvd2VyICYgTVVTQl9Q T1dFUl9SRVNVTUUpCj4gKwkJCXJldHVybiAtRUJVU1k7Cj4gIAo+IC0JCS8qIE5lZWRlZCBmb3Ig T1BUIEEgdGVzdHMgKi8KPiAtCQlwb3dlciA9IG11c2JfcmVhZGIobWJhc2UsIE1VU0JfUE9XRVIp Owo+IC0JCXdoaWxlIChwb3dlciAmIE1VU0JfUE9XRVJfU1VTUEVORE0pIHsKPiArCQlpZiAoIShw b3dlciAmIE1VU0JfUE9XRVJfU1VTUEVORE0pKSB7Cj4gKwkJCXBvd2VyIHw9IE1VU0JfUE9XRVJf U1VTUEVORE07Cj4gKwkJCW11c2Jfd3JpdGViKG1iYXNlLCBNVVNCX1BPV0VSLCBwb3dlcik7Cj4g Kwo+ICsJCQkvKiBOZWVkZWQgZm9yIE9QVCBBIHRlc3RzICovCj4gIAkJCXBvd2VyID0gbXVzYl9y ZWFkYihtYmFzZSwgTVVTQl9QT1dFUik7Cj4gLQkJCWlmIChyZXRyaWVzLS0gPCAxKQo+IC0JCQkJ YnJlYWs7Cj4gKwkJCXdoaWxlIChwb3dlciAmIE1VU0JfUE9XRVJfU1VTUEVORE0pIHsKPiArCQkJ CXBvd2VyID0gbXVzYl9yZWFkYihtYmFzZSwgTVVTQl9QT1dFUik7Cj4gKwkJCQlpZiAocmV0cmll cy0tIDwgMSkKPiArCQkJCQlicmVhazsKPiArCQkJfQo+ICAJCX0KPiAgCj4gIAkJbXVzYl9kYmco bXVzYiwgIlJvb3QgcG9ydCBzdXNwZW5kZWQsIHBvd2VyICUwMngiLCBwb3dlcik7Cj4gQEAgLTEw MCw3ICsxMDQsNyBAQCB2b2lkIG11c2JfcG9ydF9zdXNwZW5kKHN0cnVjdCBtdXNiICptdXNiLCBi b29sIGRvX3N1c3BlbmQpCj4gIAkJCW11c2JfZGJnKG11c2IsICJib2d1cyByaCBzdXNwZW5kPyAl cyIsCj4gIAkJCQl1c2Jfb3RnX3N0YXRlX3N0cmluZyhtdXNiLT54Y2Vpdi0+b3RnLT5zdGF0ZSkp Owo+ICAJCX0KPiAtCX0gZWxzZSBpZiAocG93ZXIgJiBNVVNCX1BPV0VSX1NVU1BFTkRNKSB7Cj4g Kwl9IGVsc2UgaWYgKHBvd2VyICYgKE1VU0JfUE9XRVJfU1VTUEVORE0gfCBNVVNCX1BPV0VSX1JF U1VNRSkpIHsKPiAgCQlwb3dlciAmPSB+TVVTQl9QT1dFUl9TVVNQRU5ETTsKPiAgCQlwb3dlciB8 PSBNVVNCX1BPV0VSX1JFU1VNRTsKPiAgCQltdXNiX3dyaXRlYihtYmFzZSwgTVVTQl9QT1dFUiwg cG93ZXIpOwo+IEBAIC0xMTEsNiArMTE1LDcgQEAgdm9pZCBtdXNiX3BvcnRfc3VzcGVuZChzdHJ1 Y3QgbXVzYiAqbXVzYiwgYm9vbCBkb19zdXNwZW5kKQo+ICAJCXNjaGVkdWxlX2RlbGF5ZWRfd29y aygmbXVzYi0+ZmluaXNoX3Jlc3VtZV93b3JrLAo+ICAJCQkJICAgICAgbXNlY3NfdG9famlmZmll cyhVU0JfUkVTVU1FX1RJTUVPVVQpKTsKPiAgCX0KPiArCXJldHVybiAwOwo+ICB9Cj4gIAo+ICB2 b2lkIG11c2JfcG9ydF9yZXNldChzdHJ1Y3QgbXVzYiAqbXVzYiwgYm9vbCBkb19yZXNldCkKClJl Z2FyZHMsCi1CaW4uCi0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUg bGluZSAidW5zdWJzY3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8g bWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8v dmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwK