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: dwc3: gadget: Correct the logic for queuing sgs From: Felipe Balbi Message-Id: <87fu4wqwis.fsf@linux.intel.com> Date: Mon, 19 Mar 2018 10:50:35 +0200 To: Anurag Kumar Vulisha , Greg Kroah-Hartman Cc: v.anuragkumar@gmail.com, APANDEY@xilinx.com, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Anurag Kumar Vulisha List-ID: SGksCgpBbnVyYWcgS3VtYXIgVnVsaXNoYSA8YW51cmFnLmt1bWFyLnZ1bGlzaGFAeGlsaW54LmNv bT4gd3JpdGVzOgo+IFRoaXMgcGF0Y2ggZml4ZXMgdHdvIGlzc3Vlcwo+Cj4gMS4gVGhlIGNvZGUg bG9naWMgaW4gZHdjM19wcmVwYXJlX29uZV90cmIoKSBpbmNvcnJlY3RseSB1c2VzIHRoZSBhZGRy ZXNzCj4gYW5kIGxlbmd0aCBnaXZlbiBpbiByZXEgcGFja2V0IGV2ZW4gZm9yIHNjYXR0ZXJnYXRo ZXIgbGlzdHMuIFRoaXMgcGF0Y2gKPiBjb3JyZWN0J3MgdGhlIGNvZGUgdG8gdXNlIHNnLT5hZGRy ZXNzIGFuZCBzZy0+bGVuZ3RoIHdoZW4gc2NhdHRlcmdhdGhlcgo+IGxpc3RzIGFyZSBwcmVzZW50 Lgo+Cj4gMi4gVGhlIHByZXNlbnQgY29kZSBjb3JyZWN0bHkgZmV0Y2hlcyB0aGUgcmVxJ3Mgd2hp Y2ggd2VyZSBub3QgcXVldWVkIGZyb20KPiB0aGUgc3RhcnRlZF9saXN0IGJ1dCBmYWlscyB0byBz dGFydCBmcm9tIHRoZSBzZyB3aGVyZSBpdCBwcmV2aW91c2x5IHN0b3BwZWQKPiBxdWV1aW5nIGJl Y2F1c2Ugb2YgdGhlIHVuYXZhaWxhYmxlIFRSQidzLiBUaGlzIHBhdGNoIGNvcnJlY3QncyB0aGUg Y29kZSB0bwo+IHN0YXJ0IHF1ZXVpbmcgZnJvbSB0aGUgY29ycmVjdCBzZyBpbiBzZ2xpc3QuCgp0 aGVzZSB0d28gc2hvdWxkIGJlIGluIHNlcGFyYXRlIHBhdGNoZXMsIHRoZW4uCgo+IFNpZ25lZC1v ZmYtYnk6IEFudXJhZyBLdW1hciBWdWxpc2hhIDxhbnVyYWdrdUB4aWxpbnguY29tPgo+IC0tLQo+ ICBkcml2ZXJzL3VzYi9kd2MzL2NvcmUuaCAgIHwgIDQgKysrKwo+ICBkcml2ZXJzL3VzYi9kd2Mz L2dhZGdldC5jIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t Cj4gIDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MzL2NvcmUuaCBiL2RyaXZlcnMvdXNiL2R3YzMv Y29yZS5oCj4gaW5kZXggODYwZDJiYy4uMjc3OWU1OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Vz Yi9kd2MzL2NvcmUuaAo+ICsrKyBiL2RyaXZlcnMvdXNiL2R3YzMvY29yZS5oCj4gQEAgLTcxOCw3 ICs3MTgsOSBAQCBzdHJ1Y3QgZHdjM19od3BhcmFtcyB7Cj4gICAqIEBsaXN0OiBhIGxpc3RfaGVh ZCB1c2VkIGZvciByZXF1ZXN0IHF1ZXVlaW5nCj4gICAqIEBkZXA6IHN0cnVjdCBkd2MzX2VwIG93 bmluZyB0aGlzIHJlcXVlc3QKPiAgICogQHNnOiBwb2ludGVyIHRvIGZpcnN0IGluY29tcGxldGUg c2cKPiArICogQHNnX3RvX3N0YXJ0OiBwb2ludGVyIHRvIHRoZSBzZyB3aGljaCBzaG91bGQgYmUg cXVldWVkIG5leHQKPiAgICogQG51bV9wZW5kaW5nX3NnczogY291bnRlciB0byBwZW5kaW5nIHNn cwo+ICsgKiBAbnVtX3F1ZXVlZF9zZ3M6IGNvdW50ZXIgdG8gdGhlIG51bWJlciBvZiBzZ3Mgd2hp Y2ggYWxyZWFkeSBnb3QgcXVldWVkCgp0aGlzIGlzIHRoZSBzYW1lIGFzIG51bV9wZW5kaW5nX3Nn cy4KCj4gICAqIEByZW1haW5pbmc6IGFtb3VudCBvZiBkYXRhIHJlbWFpbmluZwo+ICAgKiBAZXBu dW06IGVuZHBvaW50IG51bWJlciB0byB3aGljaCB0aGlzIHJlcXVlc3QgcmVmZXJzCj4gICAqIEB0 cmI6IHBvaW50ZXIgdG8gc3RydWN0IGR3YzNfdHJiCj4gQEAgLTczNCw4ICs3MzYsMTAgQEAgc3Ry dWN0IGR3YzNfcmVxdWVzdCB7Cj4gICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICAgICAgICBsaXN0 Owo+ICAgICAgICAgc3RydWN0IGR3YzNfZXAgICAgICAgICAgKmRlcDsKPiAgICAgICAgIHN0cnVj dCBzY2F0dGVybGlzdCAgICAgICpzZzsKPiArICAgICAgIHN0cnVjdCBzY2F0dGVybGlzdCAgICAg ICpzZ190b19zdGFydDsKCmluZGVlZCwgd2Ugc2VlbSB0byBuZWVkIHNvbWV0aGluZyBsaWtlIHRo aXMuCgo+ICAgICAgICAgdW5zaWduZWQgICAgICAgICAgICAgICAgbnVtX3BlbmRpbmdfc2dzOwo+ ICsgICAgICAgdW5zaWduZWQgaW50ICAgICAgICAgICAgbnVtX3F1ZXVlZF9zZ3M7Cgp0aGlzIHNo b3VsZCBiZSB1bm5lY2Vzc2FyeS4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2R3YzMvZ2Fk Z2V0LmMgYi9kcml2ZXJzL3VzYi9kd2MzL2dhZGdldC5jCj4gaW5kZXggMmJkYTRlYi4uMWNmZmVk NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3VzYi9kd2MzL2dhZGdldC5jCj4gKysrIGIvZHJpdmVy cy91c2IvZHdjMy9nYWRnZXQuYwo+IEBAIC05NzgsMTEgKzk3OCwyMCBAQCBzdGF0aWMgdm9pZCBk d2MzX3ByZXBhcmVfb25lX3RyYihzdHJ1Y3QgZHdjM19lcCAqZGVwLAo+ICAgICAgICAgICAgICAg ICBzdHJ1Y3QgZHdjM19yZXF1ZXN0ICpyZXEsIHVuc2lnbmVkIGNoYWluLCB1bnNpZ25lZCBub2Rl KQo+ICB7Cj4gICAgICAgICBzdHJ1Y3QgZHdjM190cmIgICAgICAgICAqdHJiOwo+IC0gICAgICAg dW5zaWduZWQgICAgICAgICAgICAgICAgbGVuZ3RoID0gcmVxLT5yZXF1ZXN0Lmxlbmd0aDsKPiAr ICAgICAgIHVuc2lnbmVkIGludCAgICAgICAgICAgIGxlbmd0aDsKPiArICAgICAgIGRtYV9hZGRy X3QgICAgICAgICAgICAgIGRtYTsKPiAgICAgICAgIHVuc2lnbmVkICAgICAgICAgICAgICAgIHN0 cmVhbV9pZCA9IHJlcS0+cmVxdWVzdC5zdHJlYW1faWQ7Cj4gICAgICAgICB1bnNpZ25lZCAgICAg ICAgICAgICAgICBzaG9ydF9ub3Rfb2sgPSByZXEtPnJlcXVlc3Quc2hvcnRfbm90X29rOwo+ICAg ICAgICAgdW5zaWduZWQgICAgICAgICAgICAgICAgbm9faW50ZXJydXB0ID0gcmVxLT5yZXF1ZXN0 Lm5vX2ludGVycnVwdDsKPiAtICAgICAgIGRtYV9hZGRyX3QgICAgICAgICAgICAgIGRtYSA9IHJl cS0+cmVxdWVzdC5kbWE7Cj4gKwo+ICsgICAgICAgaWYgKHJlcS0+cmVxdWVzdC5udW1fc2dzID4g MCkgewo+ICsgICAgICAgICAgICAgICAvKiBVc2Ugc2NhdHRlcmdhdGhlciBsaXN0IGFkZHJlc3Mg YW5kIGxlbmd0aCAqLwoKdW5uZWNlc3NhcnkgY29tbWVudAoKPiArICAgICAgICAgICAgICAgbGVu Z3RoID0gc2dfZG1hX2xlbihyZXEtPnNnX3RvX3N0YXJ0KTsKPiArICAgICAgICAgICAgICAgZG1h ID0gc2dfZG1hX2FkZHJlc3MocmVxLT5zZ190b19zdGFydCk7Cj4gKyAgICAgICB9IGVsc2Ugewo+ ICsgICAgICAgICAgICAgICBsZW5ndGggPSByZXEtPnJlcXVlc3QubGVuZ3RoOwo+ICsgICAgICAg ICAgICAgICBkbWEgPSByZXEtPnJlcXVlc3QuZG1hOwo+ICsgICAgICAgfQo+Cj4gICAgICAgICB0 cmIgPSAmZGVwLT50cmJfcG9vbFtkZXAtPnRyYl9lbnF1ZXVlXTsKPgo+IEBAIC0xMDQ4LDExICsx MDU3LDE0IEBAIHN0YXRpYyB1MzIgZHdjM19jYWxjX3RyYnNfbGVmdChzdHJ1Y3QgZHdjM19lcCAq ZGVwKQo+ICBzdGF0aWMgdm9pZCBkd2MzX3ByZXBhcmVfb25lX3RyYl9zZyhzdHJ1Y3QgZHdjM19l cCAqZGVwLAo+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHdjM19yZXF1ZXN0ICpyZXEpCj4gIHsK PiAtICAgICAgIHN0cnVjdCBzY2F0dGVybGlzdCAqc2cgPSByZXEtPnNnOwo+ICsgICAgICAgc3Ry dWN0IHNjYXR0ZXJsaXN0ICpzZyA9IHJlcS0+c2dfdG9fc3RhcnQ7Cj4gICAgICAgICBzdHJ1Y3Qg c2NhdHRlcmxpc3QgKnM7Cj4gICAgICAgICBpbnQgICAgICAgICAgICAgaTsKPgo+IC0gICAgICAg Zm9yX2VhY2hfc2coc2csIHMsIHJlcS0+bnVtX3BlbmRpbmdfc2dzLCBpKSB7Cj4gKyAgICAgICB1 bnNpZ25lZCBpbnQgcmVtYWluaW5nID0gcmVxLT5yZXF1ZXN0Lm51bV9tYXBwZWRfc2dzCj4gKyAg ICAgICAgICAgICAgIC0gcmVxLT5udW1fcXVldWVkX3NnczsKCmFscmVhZHkgdHJhY2tlZCBhcyBu dW1fcGVuZGluZ19zZ3MKCj4gKyAgICAgICBmb3JfZWFjaF9zZyhzZywgcywgcmVtYWluaW5nLCBp KSB7Cj4gICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsZW5ndGggPSByZXEtPnJlcXVlc3Qu bGVuZ3RoOwo+ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbWF4cCA9IHVzYl9lbmRwb2lu dF9tYXhwKGRlcC0+ZW5kcG9pbnQuZGVzYyk7Cj4gICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCByZW0gPSBsZW5ndGggJSBtYXhwOwo+IEBAIC0xMDgxLDYgKzEwOTMsMTYgQEAgc3RhdGljIHZv aWQgZHdjM19wcmVwYXJlX29uZV90cmJfc2coc3RydWN0IGR3YzNfZXAgKmRlcCwKPiAgICAgICAg ICAgICAgICAgICAgICAgICBkd2MzX3ByZXBhcmVfb25lX3RyYihkZXAsIHJlcSwgY2hhaW4sIGkp Owo+ICAgICAgICAgICAgICAgICB9Cj4KPiArICAgICAgICAgICAgICAgLyogSW4gdGhlIGNhc2Ug d2hlcmUgbm90IGFibGUgdG8gcXVldWUgdHJicyBmb3IgYWxsIHNncyBpbgoKd3JvbmcgY29tbWVu dCBzdHlsZQoKPiArICAgICAgICAgICAgICAgICogcmVxdWVzdCBiZWNhdXNlIG9mIHRyYiBub3Qg YXZhaWxhYmxlLCB1cGRhdGUgc2dfdG9fc3RhcnQKPiArICAgICAgICAgICAgICAgICogdG8gbmV4 dCBzZyBmcm9tIHdoaWNoIHdlIGNhbiBzdGFydCBxdWVpbmcgdHJicyBvbmNlIHRyYnMKPiArICAg ICAgICAgICAgICAgICogYXZhaWxiYWxlCiAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXgog ICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUKCnNnX3RvX3N0YXJ0IGlzIHRvbyBsb25nIGFu ZCBhd2t3YXJkIHRvIHR5cGUuIFN1cmUsIEknbSBuaXRwaWNraW5nLCBidXQKc3RhcnRfc2cgd291 bGQgYmUgYmV0dGVyLgoKPiArICAgICAgICAgICAgICAgICovCj4gKyAgICAgICAgICAgICAgIGlm IChjaGFpbikKPiArICAgICAgICAgICAgICAgICAgICAgICByZXEtPnNnX3RvX3N0YXJ0ID0gc2df bmV4dChzKTsKPiArCj4gKyAgICAgICAgICAgICAgIHJlcS0+bnVtX3F1ZXVlZF9zZ3MrKzsKPiAr Cj4gICAgICAgICAgICAgICAgIGlmICghZHdjM19jYWxjX3RyYnNfbGVmdChkZXApKQo+ICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgfQo+IEBAIC0xMTcxLDYgKzExOTMs OCBAQCBzdGF0aWMgdm9pZCBkd2MzX3ByZXBhcmVfdHJicyhzdHJ1Y3QgZHdjM19lcCAqZGVwKQo+ ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKPgo+ICAgICAgICAgICAgICAgICByZXEt PnNnICAgICAgICAgICAgICAgICA9IHJlcS0+cmVxdWVzdC5zZzsKPiArICAgICAgICAgICAgICAg cmVxLT5zZ190b19zdGFydCAgICAgICAgPSByZXEtPnNnOwo+ICsgICAgICAgICAgICAgICByZXEt Pm51bV9xdWV1ZWRfc2dzICAgICA9IDA7CgpudW1fcXVldWVkX3NncyBpcyB1bm5lY2Vzc2FyeS4K Cj4gICAgICAgICAgICAgICAgIHJlcS0+bnVtX3BlbmRpbmdfc2dzICAgID0gcmVxLT5yZXF1ZXN0 Lm51bV9tYXBwZWRfc2dzOwo+Cj4gICAgICAgICAgICAgICAgIGlmIChyZXEtPm51bV9wZW5kaW5n X3NncyA+IDApCj4gQEAgLTIzMjcsOCArMjM1MSwxNCBAQCBzdGF0aWMgaW50IGR3YzNfY2xlYW51 cF9kb25lX3JlcXMoc3RydWN0IGR3YzMgKmR3Yywgc3RydWN0IGR3YzNfZXAgKmRlcCwKPgo+ICAg ICAgICAgICAgICAgICByZXEtPnJlcXVlc3QuYWN0dWFsID0gbGVuZ3RoIC0gcmVxLT5yZW1haW5p bmc7Cj4KPiAtICAgICAgICAgICAgICAgaWYgKChyZXEtPnJlcXVlc3QuYWN0dWFsIDwgbGVuZ3Ro KSAmJiByZXEtPm51bV9wZW5kaW5nX3NncykKPiAtICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gX19kd2MzX2dhZGdldF9raWNrX3RyYW5zZmVyKGRlcCk7Cj4gKyAgICAgICAgICAgICAgIGlm IChyZXEtPnJlcXVlc3QuYWN0dWFsIDwgbGVuZ3RoIHx8IHJlcS0+bnVtX3BlbmRpbmdfc2dzKSB7 Cgp3aHkgZG8geW91IHRoaW5rIHRoaXMgbmVlZHMgdG8gYmUgfHwgaW5zdGVhZCBvZiAmJj8gSWYg YWN0dWFsID09IGxlbmd0aAp3ZSdyZSBkb25lLCB0aGVyZSdzIG5vdGhpbmcgbW9yZSBsZWZ0IHRv IGRvLiBJZiB0aGVyZSBpcyBlaXRoZXIgaG9zdApzZW50IG1vcmUgZGF0YSB0aGFuIGl0IHNob3Vs ZCwgb3Igd2UgbWlzY2FsY3VsYXRlZCBudW1fcGVuZGluZ19zZ3MsIG9yCndlIGhhZCB0aGUgd3Jv bmcgbGVuZ3RoIHNvbWV3aGVyZSBpbiBzb21lIFRSQnMuIEVpdGhlciBvZiB0aG9zZSBjYXNlcyBp cwphbiBlcnJvciBjb25kaXRpb24gd2UgZG9uJ3Qgd2FudCB0byBoaWRlLiBXZSB3YW50IHRoaW5n cyB0byBmYWlsIGluIHRoYXQKY2FzZS4KCj4gKyAgICAgICAgICAgICAgICAgICAgICAgLyogVGhl cmUgY291bGQgYmUgY2FzZXMgd2hlcmUgdGhlIHdob2xlIHJlcSBjYW4ndCBiZQoKd3JvbmcgY29t bWVudCBzdHlsZS4KCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogbWFwcGVkIGludG8gVFJC J3MgYXZhaWxhYmxlLiBJbiB0aGF0IGNhc2UsIHdlIG5lZWQKPiArICAgICAgICAgICAgICAgICAg ICAgICAgKiB0byBraWNrIHRyYW5zZmVyIGFnYWluIGlmIChyZXEtPm51bV9wZW5kaW5nX3NncyA+ IDApCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICovCgphbHNvLCB0aGUgY29kZSBoYXMgYWxy ZWFkeSBiZWVuIHRyeWluZyB0byBkbyB0aGF0LiBJdCBqdXN0IHdhc24ndApjb3JyZWN0LiBXZSBk b24ndCBuZWVkIHRvIGFkZCB0aGlzIGNvbW1lbnQuCgo+ICsgICAgICAgICAgICAgICAgICAgICAg IGlmIChyZXEtPm51bV9wZW5kaW5nX3NncykKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiBfX2R3YzNfZ2FkZ2V0X2tpY2tfdHJhbnNmZXIoZGVwKTsKCmFub3RoZXIgbnVt X3BlbmRpbmdfc2dzIGNoZWNrPyBXaHk/Cgo+IFRoaXMgZW1haWwgYW5kIGFueSBhdHRhY2htZW50 cyBhcmUgaW50ZW5kZWQgZm9yIHRoZSBzb2xlIHVzZSBvZiB0aGUKPiBuYW1lZCByZWNpcGllbnQo cykgYW5kIGNvbnRhaW4ocykgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIHRoYXQgbWF5IGJlCj4g cHJvcHJpZXRhcnksIHByaXZpbGVnZWQgb3IgY29weXJpZ2h0ZWQgdW5kZXIgYXBwbGljYWJsZSBs YXcuIElmIHlvdQo+IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgZG8gbm90IHJlYWQs IGNvcHksIG9yIGZvcndhcmQgdGhpcwo+IGVtYWlsIG1lc3NhZ2Ugb3IgYW55IGF0dGFjaG1lbnRz LiBEZWxldGUgdGhpcyBlbWFpbCBtZXNzYWdlIGFuZCBhbnkKPiBhdHRhY2htZW50cyBpbW1lZGlh dGVseS4KCkkgY2FuJ3QgYWNjZXB0IEFOWSBwYXRjaGVzIGZyb20geW91IHVudGlsIHlvdSByZW1v dmUgdGhpcyBmb290ZXIuIEluCmZhY3QsIEknbSBub3QgaW4gdGhlIFRvIGZpZWxkLCBzbyBJJ20g bm90IGEgIm5hbWVkIHJlY2lwaWVudCIgYW5kCnRoZXJlZm9yZSwgSSdtIGRlbGV0aW5nIHlvdXIg ZW1haWwuIFRhbGsgdG8geW91ciBJVCBkZXBhcnRtZW50IGFib3V0CmNvbnRyaWJ1dGluZyB0byBw dWJsaWMgbWFpbGluZyBsaXN0cy4KCkVtYWlsLCBub3csIGRlbGV0ZWQuCg==