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: [4/4] usb: dwc3: gadget: check if dep->frame_number is still valid From: Felipe Balbi Message-Id: <878t1wjbjm.fsf@linux.intel.com> Date: Wed, 14 Nov 2018 10:41:49 +0200 To: Thinh Nguyen Thinh Nguyen , Linux USB List-ID: SGksCgpUaGluaCBOZ3V5ZW4gPHRoaW5oLm5ndXllbkBzeW5vcHN5cy5jb20+IHdyaXRlczoKPj4g RmVsaXBlIEJhbGJpIDxmZWxpcGUuYmFsYmlAbGludXguaW50ZWwuY29tPiB3cml0ZXM6Cj4+PiBJ biB0aGUgY2FzZSBvZiBpbnRlcnZhbCBvZiAxbXMsIGl0IHdpbGwgc3RhcnQgb24gdGhlIG5leHQg aW50ZXJ2YWwuCj4+Pj4gZnJhbWVfbnVtYmVyICsgbWF4KDQsIGludGVydmFsKSB3aWxsIHN0YXJ0 IGF0IGxlYXN0IDQgdWZyYW1lcyBpbiB0aGUgZnV0dXJlLgo+Pj4+Cj4+Pj4gSW4gYW55IGNhc2Us IHdoYXQgYWJvdXQgaW1tZWRpYXRlbHkgcmV0cnkgdGhlIFNUQVJUX1RSQU5TRkVSIGNvbW1hbmQK Pj4+PiB3aXRoIGEgbmV3IGZyYW1lX251bWJlciArIChpbnRlcnZhbCpyZXRyeSkgc2hvdWxkIGl0 IGZhaWwgd2l0aAo+Pj4+IGJ1cy1leHBpcnk/IFlvdSBjYW4gc2V0IHRoZSBudW1iZXIgb2YgcmV0 cmllcyB0byBtYXliZSA1IHRpbWVzLiBUaGlzCj4+Pj4gc2hvdWxkIHJlbW92ZSB0aGUgbmVlZCB0 byBkbyB0aW1lIHN0YW1waW5nLgo+Pj4gVGhhdCBzZWVtcyBsaWtlIGEgZ29vZCBpZGVhLiBTb21l dGhpbmcgbGlrZSBiZWxvdz8gKG9uIHRvcCBvZiAkc3ViamVjdCkKPj4+Cj4+PiBtb2RpZmllZCAg IGRyaXZlcnMvdXNiL2R3YzMvY29yZS5oCj4+PiBAQCAtMzcsNiArMzcsNyBAQAo+Pj4gICNkZWZp bmUgRFdDM19FUDBfU0VUVVBfU0laRQk1MTIKPj4+ICAjZGVmaW5lIERXQzNfRU5EUE9JTlRTX05V TQkzMgo+Pj4gICNkZWZpbmUgRFdDM19YSENJX1JFU09VUkNFU19OVU0JMgo+Pj4gKyNkZWZpbmUg RFdDM19JU09DX01BWF9SRVRSSUVTCTUKPj4+ICAKPj4+ICAjZGVmaW5lIERXQzNfU0NSQVRDSEJV Rl9TSVpFCTQwOTYJLyogZWFjaCBidWZmZXIgaXMgYXNzdW1lZCB0byBiZSA0S2lCICovCj4+PiAg I2RlZmluZSBEV0MzX0VWRU5UX0JVRkZFUlNfU0laRQk0MDk2Cj4+PiBtb2RpZmllZCAgIGRyaXZl cnMvdXNiL2R3YzMvZ2FkZ2V0LmMKPj4+IEBAIC0xMjcxLDIwICsxMjcxLDI5IEBAIHN0YXRpYyBp bnQgX19kd2MzX2dhZGdldF9zdGFydF9pc29jKHN0cnVjdCBkd2MzX2VwICpkZXApCj4+PiAgCXU2 NCBjdXJyZW50X3RpbWVzdGFtcDsKPj4+ICAJdTY0IGRpZmZfdGltZXN0YW1wOwo+Pj4gIAl1MzIg ZWxhcHNlZF9mcmFtZXM7Cj4+PiArCWludCByZXRyaWVzOwo+Pj4gKwlpbnQgZGVsdGEgPSAxCj4+ PiArCWludCByZXQ7Cj4+PiAgCj4+PiAgCWlmIChsaXN0X2VtcHR5KCZkZXAtPnBlbmRpbmdfbGlz dCkpIHsKPj4+ICAJCWRlcC0+ZmxhZ3MgfD0gRFdDM19FUF9QRU5ESU5HX1JFUVVFU1Q7Cj4+PiAg CQlyZXR1cm4gLUVBR0FJTjsKPj4+ICAJfQo+Pj4gIAo+Pj4gLQljdXJyZW50X3RpbWVzdGFtcCA9 IGt0aW1lX2dldF9ucygpOwo+Pj4gLQlkaWZmX3RpbWVzdGFtcCA9IGN1cnJlbnRfdGltZXN0YW1w IC0gZGVwLT5mcmFtZV90aW1lc3RhbXA7Cj4+PiAtCWVsYXBzZWRfZnJhbWVzID0gRElWX1JPVU5E X1VQX1VMTChkaWZmX3RpbWVzdGFtcCwgMTI1MDAwKTsKPj4+ICsJZm9yIChpID0gMDsgaSA8IERX QzNfSVNPQ19NQVhfUkVUUklFUzsgaSsrKSB7Cj4+PiArCQljdXJyZW50X3RpbWVzdGFtcCA9IGt0 aW1lX2dldF9ucygpOwo+Pj4gKwkJZGlmZl90aW1lc3RhbXAgPSBjdXJyZW50X3RpbWVzdGFtcCAt IGRlcC0+ZnJhbWVfdGltZXN0YW1wOwo+Pj4gKwkJZWxhcHNlZF9mcmFtZXMgPSBESVZfUk9VTkRf VVBfVUxMKGRpZmZfdGltZXN0YW1wLCAxMjUwMDApOwo+Pj4gIAo+Pj4gLQlkZXAtPmZyYW1lX251 bWJlciArPSBlbGFwc2VkX2ZyYW1lczsKPj4+IC0JZGVwLT5mcmFtZV9udW1iZXIgPSBEV0MzX0FM SUdOX0ZSQU1FKGRlcCk7Cj4+PiArCQlkZXAtPmZyYW1lX251bWJlciArPSBlbGFwc2VkX2ZyYW1l cyArIChkZWx0YSAqIGkpOwo+PiB0aGUgb3RoZXIgcG9zc2liaWxpdHkgaXMgdGhhdCB3ZSBjYW4g Y2FsbCBEV0MzX0FMSUdOX0ZSQU1FKCkgbiB0aW1lcwo+PiBzaW5jZSB0aGF0IHdpbGwgcHV0IHRo ZSB0cmFuc2ZlciBvbiB0aGUgZm9sbG93aW5nIGludGVydmFsLiBUaGF0IHdvdWxkCj4+IGxvb2sg bGlrZSBzbzoKPj4KPj4gbW9kaWZpZWQgICBkcml2ZXJzL3VzYi9kd2MzL2NvcmUuaAo+PiBAQCAt MzcsNiArMzcsNyBAQAo+PiAgI2RlZmluZSBEV0MzX0VQMF9TRVRVUF9TSVpFCTUxMgo+PiAgI2Rl ZmluZSBEV0MzX0VORFBPSU5UU19OVU0JMzIKPj4gICNkZWZpbmUgRFdDM19YSENJX1JFU09VUkNF U19OVU0JMgo+PiArI2RlZmluZSBEV0MzX0lTT0NfTUFYX1JFVFJJRVMJNQo+PiAgCj4+ICAjZGVm aW5lIERXQzNfU0NSQVRDSEJVRl9TSVpFCTQwOTYJLyogZWFjaCBidWZmZXIgaXMgYXNzdW1lZCB0 byBiZSA0S2lCICovCj4+ICAjZGVmaW5lIERXQzNfRVZFTlRfQlVGRkVSU19TSVpFCTQwOTYKPj4g bW9kaWZpZWQgICBkcml2ZXJzL3VzYi9kd2MzL2dhZGdldC5jCj4+IEBAIC0yNyw3ICsyNyw3IEBA Cj4+ICAjaW5jbHVkZSAiZ2FkZ2V0LmgiCj4+ICAjaW5jbHVkZSAiaW8uaCIKPj4gIAo+PiAtI2Rl ZmluZSBEV0MzX0FMSUdOX0ZSQU1FKGQpCSgoKGQpLT5mcmFtZV9udW1iZXIgKyAoZCktPmludGVy dmFsKSBcCj4+ICsjZGVmaW5lIERXQzNfQUxJR05fRlJBTUUoZCwgbikJKCgoZCktPmZyYW1lX251 bWJlciArICgoZCktPmludGVydmFsICogKG4pKSkgXAo+PiAgCQkJCQkmIH4oKGQpLT5pbnRlcnZh bCAtIDEpKQo+PiAgCj4+ICAvKioKPj4gQEAgLTEyNzEsMjAgKzEyNzEsMjggQEAgc3RhdGljIGlu dCBfX2R3YzNfZ2FkZ2V0X3N0YXJ0X2lzb2Moc3RydWN0IGR3YzNfZXAgKmRlcCkKPj4gIAl1NjQg Y3VycmVudF90aW1lc3RhbXA7Cj4+ICAJdTY0IGRpZmZfdGltZXN0YW1wOwo+PiAgCXUzMiBlbGFw c2VkX2ZyYW1lczsKPj4gKwlpbnQgcmV0cmllczsKPj4gKwlpbnQgcmV0Owo+PiAgCj4+ICAJaWYg KGxpc3RfZW1wdHkoJmRlcC0+cGVuZGluZ19saXN0KSkgewo+PiAgCQlkZXAtPmZsYWdzIHw9IERX QzNfRVBfUEVORElOR19SRVFVRVNUOwo+PiAgCQlyZXR1cm4gLUVBR0FJTjsKPj4gIAl9Cj4+ICAK Pj4gLQljdXJyZW50X3RpbWVzdGFtcCA9IGt0aW1lX2dldF9ucygpOwo+PiAtCWRpZmZfdGltZXN0 YW1wID0gY3VycmVudF90aW1lc3RhbXAgLSBkZXAtPmZyYW1lX3RpbWVzdGFtcDsKPj4gLQllbGFw c2VkX2ZyYW1lcyA9IERJVl9ST1VORF9VUF9VTEwoZGlmZl90aW1lc3RhbXAsIDEyNTAwMCk7Cj4+ ICsJZm9yIChpID0gMDsgaSA8IERXQzNfSVNPQ19NQVhfUkVUUklFUzsgaSsrKSB7Cj4+ICsJCWN1 cnJlbnRfdGltZXN0YW1wID0ga3RpbWVfZ2V0X25zKCk7Cj4+ICsJCWRpZmZfdGltZXN0YW1wID0g Y3VycmVudF90aW1lc3RhbXAgLSBkZXAtPmZyYW1lX3RpbWVzdGFtcDsKPj4gKwkJZWxhcHNlZF9m cmFtZXMgPSBESVZfUk9VTkRfVVBfVUxMKGRpZmZfdGltZXN0YW1wLCAxMjUwMDApOwo+PiAgCj4+ IC0JZGVwLT5mcmFtZV9udW1iZXIgKz0gZWxhcHNlZF9mcmFtZXM7Cj4+IC0JZGVwLT5mcmFtZV9u dW1iZXIgPSBEV0MzX0FMSUdOX0ZSQU1FKGRlcCk7Cj4+ICsJCWRlcC0+ZnJhbWVfbnVtYmVyICs9 IGVsYXBzZWRfZnJhbWVzOwo+PiArCQlkZXAtPmZyYW1lX251bWJlciA9IERXQzNfQUxJR05fRlJB TUUoZGVwLCBpKTsKPj4gIAo+PiAtCXJldHVybiBfX2R3YzNfZ2FkZ2V0X2tpY2tfdHJhbnNmZXIo ZGVwKTsKPj4gKwkJcmV0ID0gX19kd2MzX2dhZGdldF9raWNrX3RyYW5zZmVyKGRlcCk7Cj4+ICsJ CWlmIChyZXQgIT0gLUVBR0FJTikKPj4gKwkJCWJyZWFrOwo+PiArCX0KPj4gKwo+PiArCXJldHVy biByZXQ7Cj4+ICB9Cj4+ICAKPj4gIHN0YXRpYyBpbnQgX19kd2MzX2dhZGdldF9lcF9xdWV1ZShz dHJ1Y3QgZHdjM19lcCAqZGVwLCBzdHJ1Y3QgZHdjM19yZXF1ZXN0ICpyZXEpCj4+Cj4+Cj4gSSBs aWtlIHRoZSBzZWNvbmQgbWV0aG9kLiBCdXQgZG8gd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRo ZQo+IGZyYW1lX3RpbWVzdGFtcD8gSSBkb24ndCB0aGluayBpdCBhY2N1cmF0ZWx5IHJlZmxlY3Rz IHRoZSB0aW1lc3RhbXAgb2YKCm5vIHdlIGRvbid0LiBJJ3ZlIHNpbmNlIHJlbW92ZWQgaXQgZnJv bSBteSBsb2NhbCB0cmVlLgoKPiBYZmVyTm90UmVhZHkgZnJhbWUgbnVtYmVyLgoKPiBBcyBmb3Ig dGhlIG51bWJlciBvZiByZXRyaWVzLCB3ZSBzaG91bGQgYWRqdXN0IGl0IGFjY29yZGluZyB0byB0 aGUKPiBzZXJ2aWNlIGludGVydmFsLiBGb3IgZXhhbXBsZSwgZm9yIGxhcmdlciBzZXJ2aWNlIGlu dGVydmFsIHN1Y2ggYXMgMTYsCj4gdGhlbiB3ZSBkb24ndCBuZWVkIHRvIHRyeSBtb3JlIHRoYW4g b25jZS4gVG8gY2FsY3VsYXRlIHRoZSBtYXggbnVtYmVyIG9mCj4gcmV0cmllcywgd2UgY2FuIGRv IHRoaXMgY2hlY2sgKHdoZXJlIGludGVydmFsIGlzIGZyb20gMSB0byAxNik6Cj4KPiBpZiAoaW50 ZXJ2YWwgPj0gKDE2IC0gKE1BWF9OVU1fUkVUUklFUyA+PiAxKSkKPiAgICAgICAgIG51bV9yZXRy aWVzID0gMSA8PCAoMTYgLSBpbnRlcnZhbCk7Cj4KPiBQbGVhc2UgY2hlY2sgbXkgbWF0aC4uCj4K PiBJZiBpdCBmYWlscyBmb3Igb3ZlciA1IHRpbWVzIGluIGEgcm93LCB0aGVuIHdlIHNob3VsZCBw cm9iYWJseSB3YWl0IGZvcgo+IHRoZSBuZXh0IFhmZXJOb3RSZWFkeSB0byBnZXQgdGhlIGZyYW1l X251bWJlciBhZ2Fpbi4gQWxzbyA1IGlzIGFuCj4gYXJiaXRyYXJ5IG51bWJlciBJIGNhbWUgdXAg d2l0aG91dCBhbnkgdGVzdGluZywgd2UgY2FuIHByb2JhYmx5IGRlY2lkZQo+IG9uIGEgYmV0dGVy IG51bWJlci4gV2hhdCBkbyB5b3UgdGhpbms/CgpJIGhhdmUgdGhpcyBub3c6CgoKVGhpcyBtZWFu cyB3ZSB3aWxsIGluY3JlbWVudCBpbiBmdWxsIGludGVydmFscywgdXAgdG8gNSBpbnRlcnZhbHMg aW4gdGhlCmZ1dHVyZS4gSWYgaXQgc3RpbGwgZmFpbHMsIHRoZW4gdGhlcmUncyBub3QgbXVjaCB3 ZSBjYW4gZG8uCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZHdjMy9jb3JlLmggYi9kcml2ZXJz L3VzYi9kd2MzL2NvcmUuaAppbmRleCAxMzEwMjg1MDE3NTIuLjMzOTBmYTQ2ZWEzMCAxMDA2NDQK LS0tIGEvZHJpdmVycy91c2IvZHdjMy9jb3JlLmgKKysrIGIvZHJpdmVycy91c2IvZHdjMy9jb3Jl LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNkZWZpbmUgRFdDM19FUDBfU0VUVVBfU0laRSAgICA1MTIK ICNkZWZpbmUgRFdDM19FTkRQT0lOVFNfTlVNICAgICAzMgogI2RlZmluZSBEV0MzX1hIQ0lfUkVT T1VSQ0VTX05VTSAgICAgICAgMgorI2RlZmluZSBEV0MzX0lTT0NfTUFYX1JFVFJJRVMgIDUKIAog I2RlZmluZSBEV0MzX1NDUkFUQ0hCVUZfU0laRSAgIDQwOTYgICAgLyogZWFjaCBidWZmZXIgaXMg YXNzdW1lZCB0byBiZSA0S2lCICovCiAjZGVmaW5lIERXQzNfRVZFTlRfQlVGRkVSU19TSVpFICAg ICAgICA0MDk2CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MzL2dhZGdldC5jIGIvZHJpdmVy cy91c2IvZHdjMy9nYWRnZXQuYwppbmRleCBkOGM3YWQwYzIyZTguLjE1OTA1MTY3MzVjYiAxMDA2 NDQKLS0tIGEvZHJpdmVycy91c2IvZHdjMy9nYWRnZXQuYworKysgYi9kcml2ZXJzL3VzYi9kd2Mz L2dhZGdldC5jCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiZ2FkZ2V0LmgiCiAjaW5jbHVk ZSAiaW8uaCIKIAotI2RlZmluZSBEV0MzX0FMSUdOX0ZSQU1FKGQpICAgICgoKGQpLT5mcmFtZV9u dW1iZXIgKyAoZCktPmludGVydmFsKSBcCisjZGVmaW5lIERXQzNfQUxJR05fRlJBTUUoZCwgbikg KCgoZCktPmZyYW1lX251bWJlciArICgoZCktPmludGVydmFsICogKG4pKSkgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiB+KChkKS0+aW50ZXJ2YWwgLSAxKSkKIAog LyoqCkBAIC0xMjY4LDEzICsxMjY4LDI0IEBAIHN0YXRpYyBpbnQgX19kd2MzX2dhZGdldF9nZXRf ZnJhbWUoc3RydWN0IGR3YzMgKmR3YykKIAogc3RhdGljIGludCBfX2R3YzNfZ2FkZ2V0X3N0YXJ0 X2lzb2Moc3RydWN0IGR3YzNfZXAgKmRlcCkKIHsKKyAgICAgICBpbnQgcmV0cmllczsKKyAgICAg ICBpbnQgcmV0OworICAgICAgIGludCBpOworCiAgICAgICAgaWYgKGxpc3RfZW1wdHkoJmRlcC0+ cGVuZGluZ19saXN0KSkgewogICAgICAgICAgICAgICAgZGVwLT5mbGFncyB8PSBEV0MzX0VQX1BF TkRJTkdfUkVRVUVTVDsKICAgICAgICAgICAgICAgIHJldHVybiAtRUFHQUlOOwogICAgICAgIH0K IAotICAgICAgIGRlcC0+ZnJhbWVfbnVtYmVyID0gRFdDM19BTElHTl9GUkFNRShkZXApOwotICAg ICAgIHJldHVybiBfX2R3YzNfZ2FkZ2V0X2tpY2tfdHJhbnNmZXIoZGVwKTsKKyAgICAgICBmb3Ig KGkgPSAwOyBpIDwgRFdDM19JU09DX01BWF9SRVRSSUVTOyBpKyspIHsKKyAgICAgICAgICAgICAg IGRlcC0+ZnJhbWVfbnVtYmVyID0gRFdDM19BTElHTl9GUkFNRShkZXAsIGkpOworCisgICAgICAg ICAgICAgICByZXQgPSBfX2R3YzNfZ2FkZ2V0X2tpY2tfdHJhbnNmZXIoZGVwKTsKKyAgICAgICAg ICAgICAgIGlmIChyZXQgIT0gLUVBR0FJTikKKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBfX2R3YzNf Z2FkZ2V0X2VwX3F1ZXVlKHN0cnVjdCBkd2MzX2VwICpkZXAsIHN0cnVjdCBkd2MzX3JlcXVlc3Qg KnJlcSkK