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: Roger Quadros Message-Id: Date: Thu, 21 Jun 2018 11:29:52 +0300 To: Sam Protsenko , Vincent Pelletier , Felipe Balbi , Lars-Peter Clausen Cc: linux-usb@vger.kernel.org, Alan Stern , Praneeth Bajjuri List-ID: K0xhcnMtUGV0ZXIKClZpbmNlbnQsCgpPbiAxNC8wNi8xOCAxNjoyMywgU2FtIFByb3RzZW5rbyB3 cm90ZToKPiArIFJvZ2VyIFF1YWRyb3MKPiArIFByYW5lZXRoIEJhamp1cmkKPiAKPiBUZXN0ZWQt Ynk6IFNhbSBQcm90c2Vua28gPHNlbWVuLnByb3RzZW5rb0BsaW5hcm8ub3JnPgo+IAo+IEkndmUg dGVzdGVkIGl0IG9uIFgxNSBib2FyZCAoRFdDMyBjb250cm9sbGVyKSBvbiBBbmRyb2lkIG1hc3Rl ciwgYnkKPiBkb2luZyAiYWRiIHJvb3QiLiBXaXRob3V0IHRoaXMgcGF0Y2ggSSBzZWUgYmFja3Ry YWNlIGFuZCBrZXJuZWwgcGFuaWMKPiAodGhlIHNhbWUgZXJyb3IgYXMgZGVzY3JpYmVkIGluIGNv bW1pdCBtZXNzYWdlKS4gV2hlbiB0aGlzIHBhdGNoIGlzCj4gYXBwbGllZCwgZXZlcnl0aGluZyB3 b3JrcyBmaW5lLgo+IAo+IENhbiB3ZSBwbGVhc2UgbWVyZ2UgdGhpcyBwYXRjaCwgaXQgZml4ZXMg bWFqb3IgYnVnIGZvciB1cz8KPiAKPiBUaGFua3MhCj4gCj4gCj4gT24gMTMgSnVuZSAyMDE4IGF0 IDE0OjA1LCBWaW5jZW50IFBlbGxldGllciA8cGxyLnZpbmNlbnRAZ21haWwuY29tPiB3cm90ZToK Pj4gVGhpcyBidWcgaGFwcGVucyBvbmx5IHdoZW4gdGhlIFVEQyBuZWVkcyB0byBzbGVlcCBkdXJp bmcgdXNiX2VwX2RlcXVldWUsCj4+IGFzIGlzIHRoZSBjYXNlIGZvciAoYXQgbGVhc3QpIGR3YzMu Cj4+Cj4+IFsgIDM4Mi4yMDA4OTZdIEJVRzogc2NoZWR1bGluZyB3aGlsZSBhdG9taWM6IHNjcmVl bi8xODA4LzB4MDAwMDAxMDAKPj4gWyAgMzgyLjIwNzEyNF0gNCBsb2NrcyBoZWxkIGJ5IHNjcmVl bi8xODA4Ogo+PiBbICAzODIuMjExMjY2XSAgIzA6ICAocmN1X2NhbGxiYWNrKXsuLi4ufSwgYXQ6 IFs8YzEwYjRmZjA+XSByY3VfcHJvY2Vzc19jYWxsYmFja3MrMHgyNjAvMHg0NDAKPj4gWyAgMzgy LjIxOTk0OV0gICMxOiAgKHJjdV9yZWFkX2xvY2tfc2NoZWQpey4uLi59LCBhdDogWzxjMTM1OGJh MD5dIHBlcmNwdV9yZWZfc3dpdGNoX3RvX2F0b21pY19yY3UrMHhiMC8weDEzMAo+PiBbICAzODIu MjMwMDM0XSAgIzI6ICAoJigmY3R4LT5jdHhfbG9jayktPnJsb2NrKXsuLi4ufSwgYXQ6IFs8YzEx ZjBjNzM+XSBmcmVlX2lvY3R4X3VzZXJzKzB4MjMvMHhkMAo+PiBbICAzODIuMjMwMDk2XSAgIzM6 ICAoJigmZmZzLT5lcHNfbG9jayktPnJsb2NrKXsuLi4ufSwgYXQ6IFs8ZjgxZTc3MTA+XSBmZnNf YWlvX2NhbmNlbCsweDIwLzB4NjAgW3VzYl9mX2ZzXQo+PiBbICAzODIuMjMwMTYwXSBNb2R1bGVz IGxpbmtlZCBpbjogdXNiX2ZfZnMgbGliY29tcG9zaXRlIGNvbmZpZ2ZzIGJuZXAgYnRzZGlvIGJs dWV0b290aCBlY2RoX2dlbmVyaWMgYnJjbWZtYWMgYnJjbXV0aWwgaW50ZWxfcG93ZXJjbGFtcCBj b3JldGVtcCBkd2MzIGt2bV9pbnRlbCB1bHBpIHVkY19jb3JlIGt2bSBpcnFieXBhc3MgY3JjMzJf cGNsbXVsIGNyYzMyY19pbnRlbCBwY2JjIGR3YzNfcGNpIGFlc25pX2ludGVsIGFlc19pNTg2IGNy eXB0b19zaW1kIGNyeXB0ZCBlaGNpX3BjaSBlaGNpX2hjZCBncGlvX2tleXMgdXNiY29yZSBiYXNp bmNvdmVfZ3BhZGMgaW5kdXN0cmlhbGlvIHVzYl9jb21tb24KPj4gWyAgMzgyLjIzMDQwN10gQ1BV OiAxIFBJRDogMTgwOCBDb21tOiBzY3JlZW4gTm90IHRhaW50ZWQgNC4xNC4wLWVkaXNvbisgIzEx Nwo+PiBbICAzODIuMjMwNDE2XSBIYXJkd2FyZSBuYW1lOiBJbnRlbCBDb3Jwb3JhdGlvbiBNZXJy aWZpZWxkL0JPREVHQSBCQVksIEJJT1MgNTQyIDIwMTUuMDEuMjE6MTguMTkuNDgKPj4gWyAgMzgy LjIzMDQyNV0gQ2FsbCBUcmFjZToKPj4gWyAgMzgyLjIzMDQzOF0gIDxTT0ZUSVJRPgo+PiBbICAz ODIuMjMwNDY2XSAgZHVtcF9zdGFjaysweDQ3LzB4NjIKPj4gWyAgMzgyLjIzMDQ5OF0gIF9fc2No ZWR1bGVfYnVnKzB4NjEvMHg4MAo+PiBbICAzODIuMjMwNTIyXSAgX19zY2hlZHVsZSsweDQzLzB4 N2EwCj4+IFsgIDM4Mi4yMzA1ODddICBzY2hlZHVsZSsweDVmLzB4NzAKPj4gWyAgMzgyLjIzMDYy NV0gIGR3YzNfZ2FkZ2V0X2VwX2RlcXVldWUrMHgxNGMvMHgyNzAgW2R3YzNdCj4+IFsgIDM4Mi4y MzA2NjldICA/IGRvX3dhaXRfaW50cl9pcnErMHg3MC8weDcwCj4+IFsgIDM4Mi4yMzA3MjRdICB1 c2JfZXBfZGVxdWV1ZSsweDE5LzB4OTAgW3VkY19jb3JlXQo+PiBbICAzODIuMjMwNzcwXSAgZmZz X2Fpb19jYW5jZWwrMHgzNy8weDYwIFt1c2JfZl9mc10KPj4gWyAgMzgyLjIzMDc5OF0gIGtpb2Ni X2NhbmNlbCsweDMxLzB4NDAKPj4gWyAgMzgyLjIzMDgyMl0gIGZyZWVfaW9jdHhfdXNlcnMrMHg0 ZC8weGQwCj4+IFsgIDM4Mi4yMzA4NThdICBwZXJjcHVfcmVmX3N3aXRjaF90b19hdG9taWNfcmN1 KzB4MTBhLzB4MTMwCj4+IFsgIDM4Mi4yMzA4ODFdICA/IHBlcmNwdV9yZWZfZXhpdCsweDQwLzB4 NDAKPj4gWyAgMzgyLjIzMDkwNF0gIHJjdV9wcm9jZXNzX2NhbGxiYWNrcysweDJiMy8weDQ0MAo+ PiBbICAzODIuMjMwOTY1XSAgX19kb19zb2Z0aXJxKzB4ZjgvMHgyNmIKPj4gWyAgMzgyLjIzMTAx MV0gID8gX19zb2Z0aXJxZW50cnlfdGV4dF9zdGFydCsweDgvMHg4Cj4+IFsgIDM4Mi4yMzEwMzNd ICBkb19zb2Z0aXJxX293bl9zdGFjaysweDIyLzB4MzAKPj4gWyAgMzgyLjIzMTA0Ml0gIDwvU09G VElSUT4KPj4gWyAgMzgyLjIzMTA3MV0gIGlycV9leGl0KzB4NDUvMHhjMAo+PiBbICAzODIuMjMx MDg5XSAgc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KzB4MTNjLzB4MTUwCj4+IFsgIDM4Mi4yMzEx MThdICBhcGljX3RpbWVyX2ludGVycnVwdCsweDM1LzB4M2MKPj4gWyAgMzgyLjIzMTEzMl0gRUlQ OiBfX2NvcHlfdXNlcl9sbCsweGUyLzB4ZjAKPj4gWyAgMzgyLjIzMTE0Ml0gRUZMQUdTOiAwMDIx MDI5MyBDUFU6IDEKPj4gWyAgMzgyLjIzMTE1NF0gRUFYOiBiZmQ0NTA4YyBFQlg6IDAwMDAwMDA0 IEVDWDogMDAwMDAwMDMgRURYOiBmM2Q4ZmU1MAo+PiBbICAzODIuMjMxMTY1XSBFU0k6IGYzZDhm ZTUxIEVESTogYmZkNDUwOGQgRUJQOiBmM2Q4ZmUxNCBFU1A6IGYzZDhmZTA4Cj4+IFsgIDM4Mi4y MzExNzZdICBEUzogMDA3YiBFUzogMDA3YiBGUzogMDBkOCBHUzogMDAzMyBTUzogMDA2OAo+PiBb ICAzODIuMjMxMjY1XSAgY29yZV9zeXNfc2VsZWN0KzB4MjVmLzB4MzIwCj4+IFsgIDM4Mi4yMzEz NDZdICA/IF9fd2FrZV91cF9jb21tb25fbG9jaysweDYyLzB4ODAKPj4gWyAgMzgyLjIzMTM5OV0g ID8gdHR5X2xkaXNjX2RlcmVmKzB4MTMvMHgyMAo+PiBbICAzODIuMjMxNDM4XSAgPyBsZHNlbV91 cF9yZWFkKzB4MWIvMHg0MAo+PiBbICAzODIuMjMxNDU5XSAgPyB0dHlfbGRpc2NfZGVyZWYrMHgx My8weDIwCj4+IFsgIDM4Mi4yMzE0NzldICA/IHR0eV93cml0ZSsweDI5Zi8weDJlMAo+PiBbICAz ODIuMjMxNTE0XSAgPyBuX3R0eV9pb2N0bCsweGUwLzB4ZTAKPj4gWyAgMzgyLjIzMTU0MV0gID8g dHR5X3dyaXRlX3VubG9jaysweDMwLzB4MzAKPj4gWyAgMzgyLjIzMTU2Nl0gID8gX192ZnNfd3Jp dGUrMHgyMi8weDExMAo+PiBbICAzODIuMjMxNjA0XSAgPyBzZWN1cml0eV9maWxlX3Blcm1pc3Np b24rMHgyZi8weGQwCj4+IFsgIDM4Mi4yMzE2MzVdICA/IHJ3X3ZlcmlmeV9hcmVhKzB4YWMvMHgx MjAKPj4gWyAgMzgyLjIzMTY3N10gID8gdmZzX3dyaXRlKzB4MTAzLzB4MTgwCj4+IFsgIDM4Mi4y MzE3MTFdICBTeVNfc2VsZWN0KzB4ODcvMHhjMAo+PiBbICAzODIuMjMxNzM5XSAgPyBTeVNfd3Jp dGUrMHg0Mi8weDkwCj4+IFsgIDM4Mi4yMzE3ODFdICBkb19mYXN0X3N5c2NhbGxfMzIrMHhkNi8w eDFhMAo+PiBbICAzODIuMjMxODM2XSAgZW50cnlfU1lTRU5URVJfMzIrMHg0Ny8weDcxCj4+IFsg IDM4Mi4yMzE4NDhdIEVJUDogMHhiN2Y3NWIwNQo+PiBbICAzODIuMjMxODU3XSBFRkxBR1M6IDAw MDAwMjQ2IENQVTogMQo+PiBbICAzODIuMjMxODY4XSBFQVg6IGZmZmZmZmRhIEVCWDogMDAwMDA0 MDAgRUNYOiBiZmQ0NTA4YyBFRFg6IGJmZDQ1MTBjCj4+IFsgIDM4Mi4yMzE4NzhdIEVTSTogMDAw MDAwMDAgRURJOiAwMDAwMDAwMCBFQlA6IDAwMDAwMDAwIEVTUDogYmZkNDUwMjAKPj4gWyAgMzgy LjIzMTg4OV0gIERTOiAwMDdiIEVTOiAwMDdiIEZTOiAwMDAwIEdTOiAwMDMzIFNTOiAwMDdiCj4+ IFsgIDM4Mi4yMzIyODFdIHNvZnRpcnE6IGh1aCwgZW50ZXJlZCBzb2Z0aXJxIDkgUkNVIGMxMGI0 ZDkwIHdpdGggcHJlZW1wdF9jb3VudCAwMDAwMDEwMCwgZXhpdGVkIHdpdGggMDAwMDAwMDA/Cj4+ Cj4+IFNpZ25lZC1vZmYtYnk6IFZpbmNlbnQgUGVsbGV0aWVyIDxwbHIudmluY2VudEBnbWFpbC5j b20+Cj4+IC0tLQo+PiAgZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfZnMuYyB8IDI2ICsr KysrKysrKysrKysrKysrKy0tLS0tLS0tCj4+ICAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdl dC9mdW5jdGlvbi9mX2ZzLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9mcy5jCj4+ IGluZGV4IDE5OWQyNTcwMDA1MC4uMDE4NDFmZGIzMTQ0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9mcy5jCj4+ICsrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9m dW5jdGlvbi9mX2ZzLmMKPj4gQEAgLTIxNSw2ICsyMTUsNyBAQCBzdHJ1Y3QgZmZzX2lvX2RhdGEg ewo+Pgo+PiAgICAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwo+PiAgICAgICAgIHN0cnVjdCB3 b3JrX3N0cnVjdCB3b3JrOwo+PiArICAgICAgIHN0cnVjdCB3b3JrX3N0cnVjdCBjYW5jZWxsYXRp b25fd29yazsKPj4KPj4gICAgICAgICBzdHJ1Y3QgdXNiX2VwICplcDsKPj4gICAgICAgICBzdHJ1 Y3QgdXNiX3JlcXVlc3QgKnJlcTsKPj4gQEAgLTEwNzIsMjIgKzEwNzMsMzEgQEAgZmZzX2VwZmls ZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+PiAgICAgICAg IHJldHVybiAwOwo+PiAgfQo+Pgo+PiArc3RhdGljIHZvaWQgZmZzX2Fpb19jYW5jZWxfd29ya2Vy KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZmZzX2lv X2RhdGEgKmlvX2RhdGEgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGZmc19pb19kYXRhLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5j ZWxsYXRpb25fd29yayk7Cj4+ICsKPj4gKyAgICAgICBFTlRFUigpOwo+PiArCj4+ICsgICAgICAg dXNiX2VwX2RlcXVldWUoaW9fZGF0YS0+ZXAsIGlvX2RhdGEtPnJlcSk7Cj4+ICt9Cj4+ICsKPj4g IHN0YXRpYyBpbnQgZmZzX2Fpb19jYW5jZWwoc3RydWN0IGtpb2NiICpraW9jYikKPj4gIHsKPj4g ICAgICAgICBzdHJ1Y3QgZmZzX2lvX2RhdGEgKmlvX2RhdGEgPSBraW9jYi0+cHJpdmF0ZTsKPj4g LSAgICAgICBzdHJ1Y3QgZmZzX2VwZmlsZSAqZXBmaWxlID0ga2lvY2ItPmtpX2ZpbHAtPnByaXZh dGVfZGF0YTsKPj4gKyAgICAgICBzdHJ1Y3QgZmZzX2RhdGEgKmZmcyA9IGlvX2RhdGEtPmZmczsK Pj4gICAgICAgICBpbnQgdmFsdWU7Cj4+Cj4+ICAgICAgICAgRU5URVIoKTsKPj4KPj4gLSAgICAg ICBzcGluX2xvY2tfaXJxKCZlcGZpbGUtPmZmcy0+ZXBzX2xvY2spOwo+PiAtCj4+IC0gICAgICAg aWYgKGxpa2VseShpb19kYXRhICYmIGlvX2RhdGEtPmVwICYmIGlvX2RhdGEtPnJlcSkpCj4+IC0g ICAgICAgICAgICAgICB2YWx1ZSA9IHVzYl9lcF9kZXF1ZXVlKGlvX2RhdGEtPmVwLCBpb19kYXRh LT5yZXEpOwo+PiAtICAgICAgIGVsc2UKPj4gKyAgICAgICBpZiAobGlrZWx5KGlvX2RhdGEgJiYg aW9fZGF0YS0+ZXAgJiYgaW9fZGF0YS0+cmVxKSkgewo+PiArICAgICAgICAgICAgICAgSU5JVF9X T1JLKCZpb19kYXRhLT5jYW5jZWxsYXRpb25fd29yaywgZmZzX2Fpb19jYW5jZWxfd29ya2VyKTsK Pj4gKyAgICAgICAgICAgICAgIHF1ZXVlX3dvcmsoZmZzLT5pb19jb21wbGV0aW9uX3dxLCAmaW9f ZGF0YS0+Y2FuY2VsbGF0aW9uX3dvcmspOwo+PiArICAgICAgICAgICAgICAgdmFsdWUgPSAtRUlO UFJPR1JFU1M7Cj4+ICsgICAgICAgfSBlbHNlIHsKPj4gICAgICAgICAgICAgICAgIHZhbHVlID0g LUVJTlZBTDsKPj4gLQo+PiAtICAgICAgIHNwaW5fdW5sb2NrX2lycSgmZXBmaWxlLT5mZnMtPmVw c19sb2NrKTsKPj4gKyAgICAgICB9CgpDYW4gd2UgYXZvaWQgdGhlIHNwaW5fbG9jaygpIGFuZCB0 aGUgd29yay1xdWV1ZSBhbmQgY2FsbCB1c2JfZXBfZGVxdWV1ZSgpIGRpcmVjdGx5IGZyb20gaGVy ZT8KCldoYXQgaXMgdGhlIHB1cnBvc2Ugb2YgdGhlIHNwaW5fbG9jaygpPwoKPj4KPj4gICAgICAg ICByZXR1cm4gdmFsdWU7Cj4+ICB9Cj4+IC0tCj4+IDIuMTcuMQo+Pgo=