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: =?utf-8?q?Daniel_Gl=C3=B6ckner?= Message-Id: <20180427130005.6711-1-dg@emlix.com> Date: Fri, 27 Apr 2018 15:00:05 +0200 To: linux-usb@vger.kernel.org Cc: Bin Liu , Greg Kroah-Hartman , =?UTF-8?q?Daniel=20Gl=C3=B6ckner?= List-ID: SXQgaGFzIGJlZW4gb2JzZXJ2ZWQgdGhhdCB3cml0aW5nIDB4RjIgdG8gdGhlIHBvd2VyIHJlZ2lz dGVyIHdoaWxlIGl0CnJlYWRzIGFzIDB4RjQgcmVzdWx0cyBpbiB0aGUgcmVnaXN0ZXIgaGF2aW5n IHRoZSB2YWx1ZSAweEYwLCBpLmUuIGNsZWFyaW5nClJFU1VNRSBhbmQgc2V0dGluZyBTVVNQRU5E TSBpbiBvbmUgZ28gZG9lcyBub3Qgd29yay4gSXQgbWlnaHQgYWxzbyB2aW9sYXRlCnRoZSBVU0Ig c3BlYyB0byB0cmFuc2l0aW9uIGRpcmVjdGx5IGZyb20gcmVzdW1lIHRvIHN1c3BlbmQsIGVzcGVj aWFsbHkKd2hlbiBub3QgdGFraW5nIFRfRFJTTUROIGludG8gYWNjb3VudC4gQnV0IHRoaXMgaXMg d2hhdCBoYXBwZW5zIHdoZW4gYQpyZW1vdGUgd2FrZXVwIG9jY3VycyBiZXR3ZWVuIFNldFBvcnRG ZWF0dXJlIFVTQl9QT1JUX0ZFQVRfU1VTUEVORCBvbiB0aGUKcm9vdCBodWIgYW5kIG11c2JfYnVz X3N1c3BlbmQgYmVpbmcgY2FsbGVkLgoKVGhpcyBjb21taXQgcmV0dXJucyAtRUJVU1kgd2hlbiBt dXNiX2J1c19zdXNwZW5kIGlzIGNhbGxlZCB3aGlsZSByZW1vdGUKd2FrZXVwIGlzIHNpZ25hbGxl ZCBhbmQgdGh1cyBhdm9pZHMgdG8gcmVzZXQgdGhlIFJFU1VNRSBiaXQuIFJlbWVtYmVyIHRoYXQK cmVzdW1lIGNhbiBiZSBzaWduYWxsZWQgb25seSB3aGVuIHRoZSBidXMgd2FzIGFscmVhZHkgc3Vz cGVuZGVkLCBzbyBpdCBpcwpzYWZlIHRvIHNraXAgdGhlIGZvbGxvd2luZyBzdGVwcyBldmVuIHdo ZW4gbXVzYl9odWJfY29udHJvbCBpZ25vcmVzIHRoZQplcnJvciByZXR1cm5lZCBieSBtdXNiX3Bv cnRfc3VzcGVuZC4KClRoZSByZXN1bWUgcGFydCBvZiBtdXNiX3BvcnRfc3VzcGVuZCBpcyBtb2Rp ZmllZCB0byBhbHNvIGFjY2VwdCBhIHBlbmRpbmcKcmVtb3RlIHdha2V1cCwgdG8gYnJpbmcgaXQg dG8gdGhlIGVuZCBhZnRlciBUX0RSU01ETiBoYXMgcGFzc2VkLgoKU2lnbmVkLW9mZi1ieTogRGFu aWVsIEdsw7Zja25lciA8ZGdAZW1saXguY29tPgotLS0KIGRyaXZlcnMvdXNiL211c2IvbXVzYl9o b3N0LmMgICAgfCAgNSArKysrLQogZHJpdmVycy91c2IvbXVzYi9tdXNiX2hvc3QuaCAgICB8ICA3 ICsrKysrLS0KIGRyaXZlcnMvdXNiL211c2IvbXVzYl92aXJ0aHViLmMgfCAyNyArKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbXVzYi9tdXNiX2hvc3QuYyBi L2RyaXZlcnMvdXNiL211c2IvbXVzYl9ob3N0LmMKaW5kZXggM2E4NDUxYS4uZDA1Y2IwMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy91c2IvbXVzYi9tdXNiX2hvc3QuYworKysgYi9kcml2ZXJzL3VzYi9t dXNiL211c2JfaG9zdC5jCkBAIC0yNTIyLDggKzI1MjIsMTEgQEAgc3RhdGljIGludCBtdXNiX2J1 c19zdXNwZW5kKHN0cnVjdCB1c2JfaGNkICpoY2QpCiB7CiAJc3RydWN0IG11c2IJKm11c2IgPSBo Y2RfdG9fbXVzYihoY2QpOwogCXU4CQlkZXZjdGw7CisJaW50CQlyZXQ7CiAKLQltdXNiX3BvcnRf c3VzcGVuZChtdXNiLCB0cnVlKTsKKwlyZXQgPSBtdXNiX3BvcnRfc3VzcGVuZChtdXNiLCB0cnVl KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJaWYgKCFpc19ob3N0X2FjdGl2ZShtdXNi KSkKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL211c2JfaG9zdC5o IGIvZHJpdmVycy91c2IvbXVzYi9tdXNiX2hvc3QuaAppbmRleCA3MjM5MmJiLi4yOTk5ODQ1IDEw MDY0NAotLS0gYS9kcml2ZXJzL3VzYi9tdXNiL211c2JfaG9zdC5oCisrKyBiL2RyaXZlcnMvdXNi L211c2IvbXVzYl9ob3N0LmgKQEAgLTY3LDcgKzY3LDcgQEAgZXh0ZXJuIHZvaWQgbXVzYl9ob3N0 X3J4KHN0cnVjdCBtdXNiICosIHU4KTsKIGV4dGVybiB2b2lkIG11c2Jfcm9vdF9kaXNjb25uZWN0 KHN0cnVjdCBtdXNiICptdXNiKTsKIGV4dGVybiB2b2lkIG11c2JfaG9zdF9yZXN1bWVfcm9vdF9o dWIoc3RydWN0IG11c2IgKm11c2IpOwogZXh0ZXJuIHZvaWQgbXVzYl9ob3N0X3Bva2Vfcm9vdF9o dWIoc3RydWN0IG11c2IgKm11c2IpOwotZXh0ZXJuIHZvaWQgbXVzYl9wb3J0X3N1c3BlbmQoc3Ry dWN0IG11c2IgKm11c2IsIGJvb2wgZG9fc3VzcGVuZCk7CitleHRlcm4gaW50IG11c2JfcG9ydF9z dXNwZW5kKHN0cnVjdCBtdXNiICptdXNiLCBib29sIGRvX3N1c3BlbmQpOwogZXh0ZXJuIHZvaWQg bXVzYl9wb3J0X3Jlc2V0KHN0cnVjdCBtdXNiICptdXNiLCBib29sIGRvX3Jlc2V0KTsKIGV4dGVy biB2b2lkIG11c2JfaG9zdF9maW5pc2hfcmVzdW1lKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7 CiAjZWxzZQpAQCAtOTksNyArOTksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIG11c2Jfcm9vdF9k aXNjb25uZWN0KHN0cnVjdCBtdXNiICptdXNiKQl7fQogc3RhdGljIGlubGluZSB2b2lkIG11c2Jf aG9zdF9yZXN1bWVfcm9vdF9odWIoc3RydWN0IG11c2IgKm11c2IpCXt9CiBzdGF0aWMgaW5saW5l IHZvaWQgbXVzYl9ob3N0X3BvbGxfcmhfc3RhdHVzKHN0cnVjdCBtdXNiICptdXNiKQl7fQogc3Rh dGljIGlubGluZSB2b2lkIG11c2JfaG9zdF9wb2tlX3Jvb3RfaHViKHN0cnVjdCBtdXNiICptdXNi KQl7fQotc3RhdGljIGlubGluZSB2b2lkIG11c2JfcG9ydF9zdXNwZW5kKHN0cnVjdCBtdXNiICpt dXNiLCBib29sIGRvX3N1c3BlbmQpIHt9CitzdGF0aWMgaW5saW5lIGludCBtdXNiX3BvcnRfc3Vz cGVuZChzdHJ1Y3QgbXVzYiAqbXVzYiwgYm9vbCBkb19zdXNwZW5kKQoreworCXJldHVybiAwOwor fQogc3RhdGljIGlubGluZSB2b2lkIG11c2JfcG9ydF9yZXNldChzdHJ1Y3QgbXVzYiAqbXVzYiwg Ym9vbCBkb19yZXNldCkge30KIHN0YXRpYyBpbmxpbmUgdm9pZCBtdXNiX2hvc3RfZmluaXNoX3Jl c3VtZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspIHt9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL211c2IvbXVzYl92aXJ0aHViLmMgYi9kcml2ZXJzL3VzYi9tdXNiL211c2Jfdmly dGh1Yi5jCmluZGV4IDUxNjVkMmIuLjQxYjQ0Y2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL211 c2IvbXVzYl92aXJ0aHViLmMKKysrIGIvZHJpdmVycy91c2IvbXVzYi9tdXNiX3ZpcnRodWIuYwpA QCAtNDgsMTQgKzQ4LDE0IEBAIHZvaWQgbXVzYl9ob3N0X2ZpbmlzaF9yZXN1bWUoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm11c2ItPmxvY2ssIGZs YWdzKTsKIH0KIAotdm9pZCBtdXNiX3BvcnRfc3VzcGVuZChzdHJ1Y3QgbXVzYiAqbXVzYiwgYm9v bCBkb19zdXNwZW5kKQoraW50IG11c2JfcG9ydF9zdXNwZW5kKHN0cnVjdCBtdXNiICptdXNiLCBi b29sIGRvX3N1c3BlbmQpCiB7CiAJc3RydWN0IHVzYl9vdGcJKm90ZyA9IG11c2ItPnhjZWl2LT5v dGc7CiAJdTgJCXBvd2VyOwogCXZvaWQgX19pb21lbQkqbWJhc2UgPSBtdXNiLT5tcmVnczsKIAog CWlmICghaXNfaG9zdF9hY3RpdmUobXVzYikpCi0JCXJldHVybjsKKwkJcmV0dXJuIDA7CiAKIAkv KiBOT1RFOiAgdGhpcyBkb2Vzbid0IG5lY2Vzc2FyaWx5IHB1dCBQSFkgaW50byBsb3cgcG93ZXIg bW9kZSwKIAkgKiB0dXJuaW5nIG9mZiBpdHMgY2xvY2s7IHRoYXQncyBhIGZ1bmN0aW9uIG9mIFBI WSBpbnRlZ3JhdGlvbiBhbmQKQEAgLTY2LDE2ICs2NiwyMCBAQCB2b2lkIG11c2JfcG9ydF9zdXNw ZW5kKHN0cnVjdCBtdXNiICptdXNiLCBib29sIGRvX3N1c3BlbmQpCiAJaWYgKGRvX3N1c3BlbmQp IHsKIAkJaW50IHJldHJpZXMgPSAxMDAwMDsKIAotCQlwb3dlciAmPSB+TVVTQl9QT1dFUl9SRVNV TUU7Ci0JCXBvd2VyIHw9IE1VU0JfUE9XRVJfU1VTUEVORE07Ci0JCW11c2Jfd3JpdGViKG1iYXNl LCBNVVNCX1BPV0VSLCBwb3dlcik7CisJCWlmIChwb3dlciAmIE1VU0JfUE9XRVJfUkVTVU1FKQor CQkJcmV0dXJuIC1FQlVTWTsKIAotCQkvKiBOZWVkZWQgZm9yIE9QVCBBIHRlc3RzICovCi0JCXBv d2VyID0gbXVzYl9yZWFkYihtYmFzZSwgTVVTQl9QT1dFUik7Ci0JCXdoaWxlIChwb3dlciAmIE1V U0JfUE9XRVJfU1VTUEVORE0pIHsKKwkJaWYgKCEocG93ZXIgJiBNVVNCX1BPV0VSX1NVU1BFTkRN KSkgeworCQkJcG93ZXIgfD0gTVVTQl9QT1dFUl9TVVNQRU5ETTsKKwkJCW11c2Jfd3JpdGViKG1i YXNlLCBNVVNCX1BPV0VSLCBwb3dlcik7CisKKwkJCS8qIE5lZWRlZCBmb3IgT1BUIEEgdGVzdHMg Ki8KIAkJCXBvd2VyID0gbXVzYl9yZWFkYihtYmFzZSwgTVVTQl9QT1dFUik7Ci0JCQlpZiAocmV0 cmllcy0tIDwgMSkKLQkJCQlicmVhazsKKwkJCXdoaWxlIChwb3dlciAmIE1VU0JfUE9XRVJfU1VT UEVORE0pIHsKKwkJCQlwb3dlciA9IG11c2JfcmVhZGIobWJhc2UsIE1VU0JfUE9XRVIpOworCQkJ CWlmIChyZXRyaWVzLS0gPCAxKQorCQkJCQlicmVhazsKKwkJCX0KIAkJfQogCiAJCW11c2JfZGJn KG11c2IsICJSb290IHBvcnQgc3VzcGVuZGVkLCBwb3dlciAlMDJ4IiwgcG93ZXIpOwpAQCAtMTAw LDcgKzEwNCw3IEBAIHZvaWQgbXVzYl9wb3J0X3N1c3BlbmQoc3RydWN0IG11c2IgKm11c2IsIGJv b2wgZG9fc3VzcGVuZCkKIAkJCW11c2JfZGJnKG11c2IsICJib2d1cyByaCBzdXNwZW5kPyAlcyIs CiAJCQkJdXNiX290Z19zdGF0ZV9zdHJpbmcobXVzYi0+eGNlaXYtPm90Zy0+c3RhdGUpKTsKIAkJ fQotCX0gZWxzZSBpZiAocG93ZXIgJiBNVVNCX1BPV0VSX1NVU1BFTkRNKSB7CisJfSBlbHNlIGlm IChwb3dlciAmIChNVVNCX1BPV0VSX1NVU1BFTkRNIHwgTVVTQl9QT1dFUl9SRVNVTUUpKSB7CiAJ CXBvd2VyICY9IH5NVVNCX1BPV0VSX1NVU1BFTkRNOwogCQlwb3dlciB8PSBNVVNCX1BPV0VSX1JF U1VNRTsKIAkJbXVzYl93cml0ZWIobWJhc2UsIE1VU0JfUE9XRVIsIHBvd2VyKTsKQEAgLTExMSw2 ICsxMTUsNyBAQCB2b2lkIG11c2JfcG9ydF9zdXNwZW5kKHN0cnVjdCBtdXNiICptdXNiLCBib29s IGRvX3N1c3BlbmQpCiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmbXVzYi0+ZmluaXNoX3Jlc3Vt ZV93b3JrLAogCQkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoVVNCX1JFU1VNRV9USU1FT1VUKSk7 CiAJfQorCXJldHVybiAwOwogfQogCiB2b2lkIG11c2JfcG9ydF9yZXNldChzdHJ1Y3QgbXVzYiAq bXVzYiwgYm9vbCBkb19yZXNldCkK