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: usb: gadget: ffs: Fix BUG when userland exits with submitted AIO transfers From: Sam Protsenko Message-Id: Date: Thu, 14 Jun 2018 16:23:14 +0300 To: Vincent Pelletier Cc: linux-usb@vger.kernel.org, Felipe Balbi , Alan Stern , Roger Quadros , Praneeth Bajjuri List-ID: KyBSb2dlciBRdWFkcm9zCisgUHJhbmVldGggQmFqanVyaQoKVGVzdGVkLWJ5OiBTYW0gUHJvdHNl bmtvIDxzZW1lbi5wcm90c2Vua29AbGluYXJvLm9yZz4KCkkndmUgdGVzdGVkIGl0IG9uIFgxNSBi b2FyZCAoRFdDMyBjb250cm9sbGVyKSBvbiBBbmRyb2lkIG1hc3RlciwgYnkKZG9pbmcgImFkYiBy b290Ii4gV2l0aG91dCB0aGlzIHBhdGNoIEkgc2VlIGJhY2t0cmFjZSBhbmQga2VybmVsIHBhbmlj Cih0aGUgc2FtZSBlcnJvciBhcyBkZXNjcmliZWQgaW4gY29tbWl0IG1lc3NhZ2UpLiBXaGVuIHRo aXMgcGF0Y2ggaXMKYXBwbGllZCwgZXZlcnl0aGluZyB3b3JrcyBmaW5lLgoKQ2FuIHdlIHBsZWFz ZSBtZXJnZSB0aGlzIHBhdGNoLCBpdCBmaXhlcyBtYWpvciBidWcgZm9yIHVzPwoKVGhhbmtzIQoK Ck9uIDEzIEp1bmUgMjAxOCBhdCAxNDowNSwgVmluY2VudCBQZWxsZXRpZXIgPHBsci52aW5jZW50 QGdtYWlsLmNvbT4gd3JvdGU6Cj4gVGhpcyBidWcgaGFwcGVucyBvbmx5IHdoZW4gdGhlIFVEQyBu ZWVkcyB0byBzbGVlcCBkdXJpbmcgdXNiX2VwX2RlcXVldWUsCj4gYXMgaXMgdGhlIGNhc2UgZm9y IChhdCBsZWFzdCkgZHdjMy4KPgo+IFsgIDM4Mi4yMDA4OTZdIEJVRzogc2NoZWR1bGluZyB3aGls ZSBhdG9taWM6IHNjcmVlbi8xODA4LzB4MDAwMDAxMDAKPiBbICAzODIuMjA3MTI0XSA0IGxvY2tz IGhlbGQgYnkgc2NyZWVuLzE4MDg6Cj4gWyAgMzgyLjIxMTI2Nl0gICMwOiAgKHJjdV9jYWxsYmFj ayl7Li4uLn0sIGF0OiBbPGMxMGI0ZmYwPl0gcmN1X3Byb2Nlc3NfY2FsbGJhY2tzKzB4MjYwLzB4 NDQwCj4gWyAgMzgyLjIxOTk0OV0gICMxOiAgKHJjdV9yZWFkX2xvY2tfc2NoZWQpey4uLi59LCBh dDogWzxjMTM1OGJhMD5dIHBlcmNwdV9yZWZfc3dpdGNoX3RvX2F0b21pY19yY3UrMHhiMC8weDEz MAo+IFsgIDM4Mi4yMzAwMzRdICAjMjogICgmKCZjdHgtPmN0eF9sb2NrKS0+cmxvY2spey4uLi59 LCBhdDogWzxjMTFmMGM3Mz5dIGZyZWVfaW9jdHhfdXNlcnMrMHgyMy8weGQwCj4gWyAgMzgyLjIz MDA5Nl0gICMzOiAgKCYoJmZmcy0+ZXBzX2xvY2spLT5ybG9jayl7Li4uLn0sIGF0OiBbPGY4MWU3 NzEwPl0gZmZzX2Fpb19jYW5jZWwrMHgyMC8weDYwIFt1c2JfZl9mc10KPiBbICAzODIuMjMwMTYw XSBNb2R1bGVzIGxpbmtlZCBpbjogdXNiX2ZfZnMgbGliY29tcG9zaXRlIGNvbmZpZ2ZzIGJuZXAg YnRzZGlvIGJsdWV0b290aCBlY2RoX2dlbmVyaWMgYnJjbWZtYWMgYnJjbXV0aWwgaW50ZWxfcG93 ZXJjbGFtcCBjb3JldGVtcCBkd2MzIGt2bV9pbnRlbCB1bHBpIHVkY19jb3JlIGt2bSBpcnFieXBh c3MgY3JjMzJfcGNsbXVsIGNyYzMyY19pbnRlbCBwY2JjIGR3YzNfcGNpIGFlc25pX2ludGVsIGFl c19pNTg2IGNyeXB0b19zaW1kIGNyeXB0ZCBlaGNpX3BjaSBlaGNpX2hjZCBncGlvX2tleXMgdXNi Y29yZSBiYXNpbmNvdmVfZ3BhZGMgaW5kdXN0cmlhbGlvIHVzYl9jb21tb24KPiBbICAzODIuMjMw NDA3XSBDUFU6IDEgUElEOiAxODA4IENvbW06IHNjcmVlbiBOb3QgdGFpbnRlZCA0LjE0LjAtZWRp c29uKyAjMTE3Cj4gWyAgMzgyLjIzMDQxNl0gSGFyZHdhcmUgbmFtZTogSW50ZWwgQ29ycG9yYXRp b24gTWVycmlmaWVsZC9CT0RFR0EgQkFZLCBCSU9TIDU0MiAyMDE1LjAxLjIxOjE4LjE5LjQ4Cj4g WyAgMzgyLjIzMDQyNV0gQ2FsbCBUcmFjZToKPiBbICAzODIuMjMwNDM4XSAgPFNPRlRJUlE+Cj4g WyAgMzgyLjIzMDQ2Nl0gIGR1bXBfc3RhY2srMHg0Ny8weDYyCj4gWyAgMzgyLjIzMDQ5OF0gIF9f c2NoZWR1bGVfYnVnKzB4NjEvMHg4MAo+IFsgIDM4Mi4yMzA1MjJdICBfX3NjaGVkdWxlKzB4NDMv MHg3YTAKPiBbICAzODIuMjMwNTg3XSAgc2NoZWR1bGUrMHg1Zi8weDcwCj4gWyAgMzgyLjIzMDYy NV0gIGR3YzNfZ2FkZ2V0X2VwX2RlcXVldWUrMHgxNGMvMHgyNzAgW2R3YzNdCj4gWyAgMzgyLjIz MDY2OV0gID8gZG9fd2FpdF9pbnRyX2lycSsweDcwLzB4NzAKPiBbICAzODIuMjMwNzI0XSAgdXNi X2VwX2RlcXVldWUrMHgxOS8weDkwIFt1ZGNfY29yZV0KPiBbICAzODIuMjMwNzcwXSAgZmZzX2Fp b19jYW5jZWwrMHgzNy8weDYwIFt1c2JfZl9mc10KPiBbICAzODIuMjMwNzk4XSAga2lvY2JfY2Fu Y2VsKzB4MzEvMHg0MAo+IFsgIDM4Mi4yMzA4MjJdICBmcmVlX2lvY3R4X3VzZXJzKzB4NGQvMHhk MAo+IFsgIDM4Mi4yMzA4NThdICBwZXJjcHVfcmVmX3N3aXRjaF90b19hdG9taWNfcmN1KzB4MTBh LzB4MTMwCj4gWyAgMzgyLjIzMDg4MV0gID8gcGVyY3B1X3JlZl9leGl0KzB4NDAvMHg0MAo+IFsg IDM4Mi4yMzA5MDRdICByY3VfcHJvY2Vzc19jYWxsYmFja3MrMHgyYjMvMHg0NDAKPiBbICAzODIu MjMwOTY1XSAgX19kb19zb2Z0aXJxKzB4ZjgvMHgyNmIKPiBbICAzODIuMjMxMDExXSAgPyBfX3Nv ZnRpcnFlbnRyeV90ZXh0X3N0YXJ0KzB4OC8weDgKPiBbICAzODIuMjMxMDMzXSAgZG9fc29mdGly cV9vd25fc3RhY2srMHgyMi8weDMwCj4gWyAgMzgyLjIzMTA0Ml0gIDwvU09GVElSUT4KPiBbICAz ODIuMjMxMDcxXSAgaXJxX2V4aXQrMHg0NS8weGMwCj4gWyAgMzgyLjIzMTA4OV0gIHNtcF9hcGlj X3RpbWVyX2ludGVycnVwdCsweDEzYy8weDE1MAo+IFsgIDM4Mi4yMzExMThdICBhcGljX3RpbWVy X2ludGVycnVwdCsweDM1LzB4M2MKPiBbICAzODIuMjMxMTMyXSBFSVA6IF9fY29weV91c2VyX2xs KzB4ZTIvMHhmMAo+IFsgIDM4Mi4yMzExNDJdIEVGTEFHUzogMDAyMTAyOTMgQ1BVOiAxCj4gWyAg MzgyLjIzMTE1NF0gRUFYOiBiZmQ0NTA4YyBFQlg6IDAwMDAwMDA0IEVDWDogMDAwMDAwMDMgRURY OiBmM2Q4ZmU1MAo+IFsgIDM4Mi4yMzExNjVdIEVTSTogZjNkOGZlNTEgRURJOiBiZmQ0NTA4ZCBF QlA6IGYzZDhmZTE0IEVTUDogZjNkOGZlMDgKPiBbICAzODIuMjMxMTc2XSAgRFM6IDAwN2IgRVM6 IDAwN2IgRlM6IDAwZDggR1M6IDAwMzMgU1M6IDAwNjgKPiBbICAzODIuMjMxMjY1XSAgY29yZV9z eXNfc2VsZWN0KzB4MjVmLzB4MzIwCj4gWyAgMzgyLjIzMTM0Nl0gID8gX193YWtlX3VwX2NvbW1v bl9sb2NrKzB4NjIvMHg4MAo+IFsgIDM4Mi4yMzEzOTldICA/IHR0eV9sZGlzY19kZXJlZisweDEz LzB4MjAKPiBbICAzODIuMjMxNDM4XSAgPyBsZHNlbV91cF9yZWFkKzB4MWIvMHg0MAo+IFsgIDM4 Mi4yMzE0NTldICA/IHR0eV9sZGlzY19kZXJlZisweDEzLzB4MjAKPiBbICAzODIuMjMxNDc5XSAg PyB0dHlfd3JpdGUrMHgyOWYvMHgyZTAKPiBbICAzODIuMjMxNTE0XSAgPyBuX3R0eV9pb2N0bCsw eGUwLzB4ZTAKPiBbICAzODIuMjMxNTQxXSAgPyB0dHlfd3JpdGVfdW5sb2NrKzB4MzAvMHgzMAo+ IFsgIDM4Mi4yMzE1NjZdICA/IF9fdmZzX3dyaXRlKzB4MjIvMHgxMTAKPiBbICAzODIuMjMxNjA0 XSAgPyBzZWN1cml0eV9maWxlX3Blcm1pc3Npb24rMHgyZi8weGQwCj4gWyAgMzgyLjIzMTYzNV0g ID8gcndfdmVyaWZ5X2FyZWErMHhhYy8weDEyMAo+IFsgIDM4Mi4yMzE2NzddICA/IHZmc193cml0 ZSsweDEwMy8weDE4MAo+IFsgIDM4Mi4yMzE3MTFdICBTeVNfc2VsZWN0KzB4ODcvMHhjMAo+IFsg IDM4Mi4yMzE3MzldICA/IFN5U193cml0ZSsweDQyLzB4OTAKPiBbICAzODIuMjMxNzgxXSAgZG9f ZmFzdF9zeXNjYWxsXzMyKzB4ZDYvMHgxYTAKPiBbICAzODIuMjMxODM2XSAgZW50cnlfU1lTRU5U RVJfMzIrMHg0Ny8weDcxCj4gWyAgMzgyLjIzMTg0OF0gRUlQOiAweGI3Zjc1YjA1Cj4gWyAgMzgy LjIzMTg1N10gRUZMQUdTOiAwMDAwMDI0NiBDUFU6IDEKPiBbICAzODIuMjMxODY4XSBFQVg6IGZm ZmZmZmRhIEVCWDogMDAwMDA0MDAgRUNYOiBiZmQ0NTA4YyBFRFg6IGJmZDQ1MTBjCj4gWyAgMzgy LjIzMTg3OF0gRVNJOiAwMDAwMDAwMCBFREk6IDAwMDAwMDAwIEVCUDogMDAwMDAwMDAgRVNQOiBi ZmQ0NTAyMAo+IFsgIDM4Mi4yMzE4ODldICBEUzogMDA3YiBFUzogMDA3YiBGUzogMDAwMCBHUzog MDAzMyBTUzogMDA3Ygo+IFsgIDM4Mi4yMzIyODFdIHNvZnRpcnE6IGh1aCwgZW50ZXJlZCBzb2Z0 aXJxIDkgUkNVIGMxMGI0ZDkwIHdpdGggcHJlZW1wdF9jb3VudCAwMDAwMDEwMCwgZXhpdGVkIHdp dGggMDAwMDAwMDA/Cj4KPiBTaWduZWQtb2ZmLWJ5OiBWaW5jZW50IFBlbGxldGllciA8cGxyLnZp bmNlbnRAZ21haWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9m cy5jIHwgMjYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDE4 IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfZnMuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9m X2ZzLmMKPiBpbmRleCAxOTlkMjU3MDAwNTAuLjAxODQxZmRiMzE0NCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9mcy5jCj4gKysrIGIvZHJpdmVycy91c2IvZ2Fk Z2V0L2Z1bmN0aW9uL2ZfZnMuYwo+IEBAIC0yMTUsNiArMjE1LDcgQEAgc3RydWN0IGZmc19pb19k YXRhIHsKPgo+ICAgICAgICAgc3RydWN0IG1tX3N0cnVjdCAqbW07Cj4gICAgICAgICBzdHJ1Y3Qg d29ya19zdHJ1Y3Qgd29yazsKPiArICAgICAgIHN0cnVjdCB3b3JrX3N0cnVjdCBjYW5jZWxsYXRp b25fd29yazsKPgo+ICAgICAgICAgc3RydWN0IHVzYl9lcCAqZXA7Cj4gICAgICAgICBzdHJ1Y3Qg dXNiX3JlcXVlc3QgKnJlcTsKPiBAQCAtMTA3MiwyMiArMTA3MywzMSBAQCBmZnNfZXBmaWxlX29w ZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCj4gICAgICAgICByZXR1 cm4gMDsKPiAgfQo+Cj4gK3N0YXRpYyB2b2lkIGZmc19haW9fY2FuY2VsX3dvcmtlcihzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCj4gK3sKPiArICAgICAgIHN0cnVjdCBmZnNfaW9fZGF0YSAqaW9f ZGF0YSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZmZzX2lvX2RhdGEsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsbGF0aW9uX3dv cmspOwo+ICsKPiArICAgICAgIEVOVEVSKCk7Cj4gKwo+ICsgICAgICAgdXNiX2VwX2RlcXVldWUo aW9fZGF0YS0+ZXAsIGlvX2RhdGEtPnJlcSk7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgZmZzX2Fp b19jYW5jZWwoc3RydWN0IGtpb2NiICpraW9jYikKPiAgewo+ICAgICAgICAgc3RydWN0IGZmc19p b19kYXRhICppb19kYXRhID0ga2lvY2ItPnByaXZhdGU7Cj4gLSAgICAgICBzdHJ1Y3QgZmZzX2Vw ZmlsZSAqZXBmaWxlID0ga2lvY2ItPmtpX2ZpbHAtPnByaXZhdGVfZGF0YTsKPiArICAgICAgIHN0 cnVjdCBmZnNfZGF0YSAqZmZzID0gaW9fZGF0YS0+ZmZzOwo+ICAgICAgICAgaW50IHZhbHVlOwo+ Cj4gICAgICAgICBFTlRFUigpOwo+Cj4gLSAgICAgICBzcGluX2xvY2tfaXJxKCZlcGZpbGUtPmZm cy0+ZXBzX2xvY2spOwo+IC0KPiAtICAgICAgIGlmIChsaWtlbHkoaW9fZGF0YSAmJiBpb19kYXRh LT5lcCAmJiBpb19kYXRhLT5yZXEpKQo+IC0gICAgICAgICAgICAgICB2YWx1ZSA9IHVzYl9lcF9k ZXF1ZXVlKGlvX2RhdGEtPmVwLCBpb19kYXRhLT5yZXEpOwo+IC0gICAgICAgZWxzZQo+ICsgICAg ICAgaWYgKGxpa2VseShpb19kYXRhICYmIGlvX2RhdGEtPmVwICYmIGlvX2RhdGEtPnJlcSkpIHsK PiArICAgICAgICAgICAgICAgSU5JVF9XT1JLKCZpb19kYXRhLT5jYW5jZWxsYXRpb25fd29yaywg ZmZzX2Fpb19jYW5jZWxfd29ya2VyKTsKPiArICAgICAgICAgICAgICAgcXVldWVfd29yayhmZnMt PmlvX2NvbXBsZXRpb25fd3EsICZpb19kYXRhLT5jYW5jZWxsYXRpb25fd29yayk7Cj4gKyAgICAg ICAgICAgICAgIHZhbHVlID0gLUVJTlBST0dSRVNTOwo+ICsgICAgICAgfSBlbHNlIHsKPiAgICAg ICAgICAgICAgICAgdmFsdWUgPSAtRUlOVkFMOwo+IC0KPiAtICAgICAgIHNwaW5fdW5sb2NrX2ly cSgmZXBmaWxlLT5mZnMtPmVwc19sb2NrKTsKPiArICAgICAgIH0KPgo+ICAgICAgICAgcmV0dXJu IHZhbHVlOwo+ICB9Cj4gLS0KPiAyLjE3LjEKPgotLS0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlz IGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXVzYiIgaW4KdGhlIGJvZHkg b2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8g aW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sCg==