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: [BUG] mt76x0u: Probing issues on Raspberry Pi 3 B+ From: Lorenzo Bianconi Message-Id: <20190220132206.GF2626@localhost.localdomain> Date: Wed, 20 Feb 2019 14:22:08 +0100 To: Stanislaw Gruszka Cc: Felix Fietkau , Stefan Wahren , Alan Stern , Doug Anderson , Minas Harutyunyan , USB list , linux-wireless List-ID: PiBPbiBUdWUsIEZlYiAxOSwgMjAxOSBhdCAwMToxOToyNlBNICswMTAwLCBGZWxpeCBGaWV0a2F1 IHdyb3RlOgo+ID4gPj4gPj4gVGhlIHdheSBJIHNlZSBpdCwgd2UgaGF2ZSB0d28gY2hvaWNlcy4K PiA+ID4+ID4+IDEuIEZpeCBkd2MyIHRvIGRvIGl0cyBhbGlnbm1lbnQgcXVpcmsgZm9yIHRoZSB1 cmItPnNnICE9IE5VTEwgY2FzZQo+ID4gPj4gPj4gMi4gUmVseSBvbiB1cmItPnRyYW5zZmVyX2J1 ZmZlciBhbmQga2VlcCB1cmItPnNnIE5VTEwKPiA+ID4+ID4gCj4gPiA+PiA+IEkgYWdyZWUsIGlm IHRoaXMgaXMgb25seSBuZWVkZWQgZm9yIGR3YzIuIFRob3VnaCBJIHdvdWxkIGludmVzdGlnYXRl Cj4gPiA+PiA+IGlmIHRoaXMgaXMgbm90IGEgYnVnIG9uIG90aGVyIHBsYXRmb3JtcyBhcyB3ZWxs Lgo+ID4gPj4gPkZyb20gd2hhdCBJIGNhbiBzZWUsIHVzaW5nIExvcmVuem8ncyBwYXRjaGVzIHNl ZW1zIHRvIGJlIHRoZSBiZXR0ZXIKPiA+ID4+IHNvbHV0aW9uLCBzaW5jZSB0aGV5IGF2b2lkIHRo ZXNlIGNvcm5lciBjYXNlcyBpbiBkd2MyIChhbmQgbWF5YmUgb3RoZXIKPiA+ID4+IGRyaXZlcnMg YXMgd2VsbCkuIEkgd2lsbCBhcHBseSB0aGVtIGFuZCB0aGVuIHdlJ2xsIHNlZSBpZiB3ZSBuZWVk IHRvIGRvCj4gPiA+PiBhbnkgZnVydGhlciBpbXByb3ZlbWVudHMgbGF0ZXIgb24uCj4gPiA+IAo+ ID4gPiBUaGV5IHdvcmsgb24gcnBpIGR3YzIsIGJ1dCB0aGV5IGRvIG5vdCBhZGRyZXNzIHJvb3Qg b2YgdGhlIHByb2JsZW0uCj4gPiA+IFRoZXJlIGlzIGNsZWFybHkgc29tZXRoaW5nIHdyb25nIGhv dyBtdDc2dXNiIGhhbmRsZSBTRywgd2hhdCBpcyBub3QKPiA+ID4gZml4ZWQuIEFuZCBhZGRpbmcg ZGlzYWJsZV91c2Jfc2cgbW9kdWxlIHBhcmFtZXRlciBmb3IgaGNkJ3Mgc3VwcG9ydGluZwo+ID4g PiBTRyBzaG91bGQgYmUgcmVkIGZsYWcuCj4gPiBJIHRoaW5rIHdlJ3JlIHNpbXBseSBkZWFsaW5n IHdpdGggbXVsdGlwbGUgaXNzdWVzIGhlcmUsIG9ubHkgc29tZSBvZgo+ID4gd2hpY2ggYXJlIGZp eGVkIGJ5IExvcmVuem8ncyBwYXRjaGVzLgo+ID4gSSdtIHByZXR0eSBzdXJlIGl0J3Mgc3RpbGwg d3JvbmcgZm9yIG10NzYgdG8gdHJ5IHRvIGFsaWduIGl0cyBidWZmZXJzLAo+ID4gc2luY2UgdGhl IExpbnV4IFVTQiBBUEkgc3VwcG9ydHMgbm9uLWFsaWduZWQgdHJhbnNmZXIgYnVmZmVycyBhbmQg aXQKPiA+IHNob3VsZCBiZSB1cCB0byB0aGUgY29udHJvbGxlciBkcml2ZXIgdG8gZGVhbCB3aXRo IHRoYXQuCj4gCj4gQWdyZWUuCj4gCj4gPiBkd2MyIHRyaWVzIHRvIGRvIHRoYXQsIGJ1dCB0aGF0 IGhhcyBsaW1pdGF0aW9ucyB3aGljaCBJIGFscmVhZHkgcG9pbnRlZAo+ID4gb3V0IGFuZCB3aGlj aCBhcmUgcHJvcGVybHkgZGVhbHQgd2l0aCBieSBMb3JlbnpvJ3MgcGF0Y2hlcy4KPiAKPiBJIHBs YW5lZCB0byBqdXN0IGFjY2VwdCBjdXJyZW50IHNvbHV0aW9uLCBidXQgSSBzdGFydGVkIHRvIHdv cmsgb24gcGF0Y2gKPiB0aGF0IHJlbW92ZSBsZW4sIHNnbGVuIGFyZ3VtZW50cyBmcm9tIG10NzZ1 X2J1Zl9hbGxvYygpIGFuZCB1c2UKPiBxLT5idWZfc2l6ZSBhbmQgU0tCX1dJVEhfT1ZFUkhFQUQo cS0+YnVmX3NpemUpIGRpcmVjdGx5IGFuZCByZWFsaXplZCBob3cKPiByZWxhdGVkIGNvZGUgaXMg bm93IHRhbmdsZWQuCj4gCj4gV291bGQgYmUgb2sgdG8gc2VuZCB0aGlzIHBhdGNoIHdpdGggcHJv cGVyIGNoYW5nZWxvZyBhcyBmaXggZm9yIFJQSQo+IGFnYWluc3Qgd2lyZWxlc3MtZHJpdmVycyBh bmQgY2M6c3RhYmxlIChhc3N1bWluZyBpdCB3b3JrcyBhbmQgcmVhbGx5Cj4gZml4IHRoaW5ncyBv biBSUEkpIGFuZCByZXZlcnQgTG9yZW56bydzIHBhdGNoZXMgaW4gLW5leHQgPwoKSGkgU3Rhbmlz bGF3LAoKd2hhdCBpcyB0aGUgYWR2YW50YWdlIG9mIGRvaW5nIHNvPyBZb3UgaGF2ZSBkdXBsaWNh dGVkIG1vc3Qgb2YgdGhlIGZpZWxkcyB0aGF0IGFyZQphbHJlYWR5IGluIHRoZSB1cmIgZGF0YSBz dHJ1Y3R1cmUgYW5kIHlvdSB1c2UgdHJhbnNmZXJfYnVmZmVyIChubyBTRyBJL08pLgpNb3Jlb3Zl ciBJIGhhdmUgcmVhZHkgYSBzZXJpZXMgdGhhdCByZW1vdmVzIDk5JSBvZiB0aGUgZHVhbCBhbGxv Y2F0aW9uIGNvZGUgYW5kCm1haW50YWluIGl0IGluIHRoZSBjb250cm9sIHBhdGggKGluc3RlYWQg b2YgdGhlIGRhdGFwYXRoIG9uZSkuCkkgbmVlZCBqdXN0IHRvIHJlYmFzZSBpdCBvbnRvcCBvZiB5 b3VyIHNlcmllcy4gSSB3aWxsIHBvc3QgaXQgc29vbi4KClJlZ2FyZHMsCkxvcmVuem8KCj4gCj4g U3RhbmlzbGF3Cj4gCj4gRnJvbSA0ZjhkN2QzZjQwMzFiMGE5N2IzYmIxNDdjYjdlNTI1MzM4ODZl N2NjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQo+IEZyb206IFN0YW5pc2xhdyBHcnVzemthIDxz Z3J1c3prYUByZWRoYXQuY29tPgo+IERhdGU6IFdlZCwgMjAgRmViIDIwMTkgMTM6Mjk6NDIgKzAx MDAKPiBTdWJqZWN0OiBbUEFUQ0hdIG10NzZ1c2I6IHVzZSB1cmIgdHJhbnNmZXJfYnVmZmVyIGZv ciBvbmUgc2VnbWVudAo+IAo+IFNpZ25lZC1vZmYtYnk6IFN0YW5pc2xhdyBHcnVzemthIDxzZ3J1 c3prYUByZWRoYXQuY29tPgo+IC0tLQo+ICBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9t dDc2L210NzYuaCAgICAgfCAgMiArCj4gIC4uLi93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4 MDJfdXNiX21jdS5jICB8ICA0ICstCj4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210 NzYvdXNiLmMgICAgICB8IDc1ICsrKysrKysrKysrLS0tLS0tLS0KPiAgMyBmaWxlcyBjaGFuZ2Vk LCA0NiBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmggYi9kcml2ZXJzL25ldC93aXJl bGVzcy9tZWRpYXRlay9tdDc2L210NzYuaAo+IGluZGV4IDJlNWJjYjNmZGZmNy4uN2UwNjgwZGFl ZWU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3 Ni5oCj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgKPiBA QCAtODYsNiArODYsOCBAQCBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9idWYgewo+ICBzdHJ1Y3QgbXQ3NnVf YnVmIHsKPiAgCXN0cnVjdCBtdDc2X2RldiAqZGV2Owo+ICAJc3RydWN0IHVyYiAqdXJiOwo+ICsJ c3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKPiArCWludCBudW1fc2dzOwo+ICAJc2l6ZV90IGxlbjsK PiAgCWJvb2wgZG9uZTsKPiAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21l ZGlhdGVrL210NzYvbXQ3NngwMl91c2JfbWN1LmMKPiBpbmRleCBkYTI5OWI4YTEzMzQuLjc1NTYx OTEwZDYzMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2 L210NzZ4MDJfdXNiX21jdS5jCj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsv bXQ3Ni9tdDc2eDAyX3VzYl9tY3UuYwo+IEBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyBpbnQgbXQ3 NngwMnVfbWN1X3dhaXRfcmVzcChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTggc2VxKQo+ICAJCWlm ICh1cmItPnN0YXR1cykKPiAgCQkJcmV0dXJuIC1FSU87Cj4gIAo+IC0JCWRhdGEgPSBzZ192aXJ0 KCZ1cmItPnNnWzBdKTsKPiArCQlkYXRhID0gc2dfdmlydCgmYnVmLT5zZ1swXSk7Cj4gIAkJaWYg KHVzYi0+bWN1LnJwKQo+ICAJCQltdDc2eDAydV9tdWx0aXBsZV9tY3VfcmVhZHMoZGV2LCBkYXRh ICsgNCwKPiAgCQkJCQkJICAgIHVyYi0+YWN0dWFsX2xlbmd0aCAtIDgpOwo+IEBAIC0yNjYsNyAr MjY2LDcgQEAgc3RhdGljIGludAo+ICBfX210NzZ4MDJ1X21jdV9md19zZW5kX2RhdGEoc3RydWN0 IG10NzZ4MDJfZGV2ICpkZXYsIHN0cnVjdCBtdDc2dV9idWYgKmJ1ZiwKPiAgCQkJICAgIGNvbnN0 IHZvaWQgKmZ3X2RhdGEsIGludCBsZW4sIHUzMiBkc3RfYWRkcikKPiAgewo+IC0JdTggKmRhdGEg PSBzZ192aXJ0KCZidWYtPnVyYi0+c2dbMF0pOwo+ICsJdTggKmRhdGEgPSBzZ192aXJ0KCZidWYt PnNnWzBdKTsKPiAgCURFQ0xBUkVfQ09NUExFVElPTl9PTlNUQUNLKGNtcGwpOwo+ICAJX19sZTMy IGluZm87Cj4gIAl1MzIgdmFsOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9t ZWRpYXRlay9tdDc2L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni91 c2IuYwo+IGluZGV4IGExODExYzM5NDE1ZS4uNTdiYjE2ZWFmZjA2IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvdXNiLmMKPiArKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L3VzYi5jCj4gQEAgLTI3Nyw3ICsyNzcsNiBAQCBtdDc2 dV9maWxsX3J4X3NnKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3NnVfYnVmICpidWYs Cj4gIAkJIGludCBuc2dzLCBpbnQgbGVuLCBpbnQgc2dsZW4pCj4gIHsKPiAgCXN0cnVjdCBtdDc2 X3F1ZXVlICpxID0gJmRldi0+cV9yeFtNVF9SWFFfTUFJTl07Cj4gLQlzdHJ1Y3QgdXJiICp1cmIg PSBidWYtPnVyYjsKPiAgCWludCBpOwo+ICAKPiAgCXNwaW5fbG9ja19iaCgmcS0+cnhfcGFnZV9s b2NrKTsKPiBAQCAtMjkyLDIxICsyOTEsMjEgQEAgbXQ3NnVfZmlsbF9yeF9zZyhzdHJ1Y3QgbXQ3 Nl9kZXYgKmRldiwgc3RydWN0IG10NzZ1X2J1ZiAqYnVmLAo+ICAKPiAgCQlwYWdlID0gdmlydF90 b19oZWFkX3BhZ2UoZGF0YSk7Cj4gIAkJb2Zmc2V0ID0gZGF0YSAtIHBhZ2VfYWRkcmVzcyhwYWdl KTsKPiAtCQlzZ19zZXRfcGFnZSgmdXJiLT5zZ1tpXSwgcGFnZSwgc2dsZW4sIG9mZnNldCk7Cj4g KwkJc2dfc2V0X3BhZ2UoJmJ1Zi0+c2dbaV0sIHBhZ2UsIHNnbGVuLCBvZmZzZXQpOwo+ICAJfQo+ ICAJc3Bpbl91bmxvY2tfYmgoJnEtPnJ4X3BhZ2VfbG9jayk7Cj4gIAo+ICAJaWYgKGkgPCBuc2dz KSB7Cj4gIAkJaW50IGo7Cj4gIAo+IC0JCWZvciAoaiA9IG5zZ3M7IGogPCB1cmItPm51bV9zZ3M7 IGorKykKPiAtCQkJc2tiX2ZyZWVfZnJhZyhzZ192aXJ0KCZ1cmItPnNnW2pdKSk7Cj4gLQkJdXJi LT5udW1fc2dzID0gaTsKPiArCQlmb3IgKGogPSBuc2dzOyBqIDwgYnVmLT5udW1fc2dzOyBqKysp Cj4gKwkJCXNrYl9mcmVlX2ZyYWcoc2dfdmlydCgmYnVmLT5zZ1tqXSkpOwo+ICsJCWJ1Zi0+bnVt X3NncyA9IGk7Cj4gIAl9Cj4gIAo+IC0JdXJiLT5udW1fc2dzID0gbWF4X3QoaW50LCBpLCB1cmIt Pm51bV9zZ3MpOwo+IC0JYnVmLT5sZW4gPSB1cmItPm51bV9zZ3MgKiBzZ2xlbiwKPiAtCXNnX2lu aXRfbWFya2VyKHVyYi0+c2csIHVyYi0+bnVtX3Nncyk7Cj4gKwlidWYtPm51bV9zZ3MgPSBtYXhf dChpbnQsIGksIGJ1Zi0+bnVtX3Nncyk7Cj4gKwlidWYtPmxlbiA9IGJ1Zi0+bnVtX3NncyAqIHNn bGVuLAo+ICsJc2dfaW5pdF9tYXJrZXIoYnVmLT5zZywgYnVmLT5udW1fc2dzKTsKPiAgCj4gIAly ZXR1cm4gaSA/IDogLUVOT01FTTsKPiAgfQo+IEBAIC0zMTgsMTMgKzMxNywxNCBAQCBpbnQgbXQ3 NnVfYnVmX2FsbG9jKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3NnVfYnVmICpidWYs Cj4gIAlpZiAoIWJ1Zi0+dXJiKQo+ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAtCWJ1Zi0+dXJi LT5zZyA9IGRldm1fa2NhbGxvYyhkZXYtPmRldiwgbnNncywgc2l6ZW9mKCpidWYtPnVyYi0+c2cp LAo+ICsJYnVmLT5zZyA9IGRldm1fa2NhbGxvYyhkZXYtPmRldiwgbnNncywgc2l6ZW9mKCpidWYt PnNnKSwKPiAgCQkJCSAgICBnZnApOwo+IC0JaWYgKCFidWYtPnVyYi0+c2cpCj4gKwlpZiAoIWJ1 Zi0+c2cpCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAo+IC0Jc2dfaW5pdF90YWJsZShidWYtPnVy Yi0+c2csIG5zZ3MpOwo+ICsJc2dfaW5pdF90YWJsZShidWYtPnNnLCBuc2dzKTsKPiAgCWJ1Zi0+ ZGV2ID0gZGV2Owo+ICsJYnVmLT5udW1fc2dzID0gbnNnczsKPiAgCj4gIAlyZXR1cm4gbXQ3NnVf ZmlsbF9yeF9zZyhkZXYsIGJ1ZiwgbnNncywgbGVuLCBzZ2xlbik7Cj4gIH0KPiBAQCAtMzMyLDEy ICszMzIsMTEgQEAgRVhQT1JUX1NZTUJPTF9HUEwobXQ3NnVfYnVmX2FsbG9jKTsKPiAgCj4gIHZv aWQgbXQ3NnVfYnVmX2ZyZWUoc3RydWN0IG10NzZ1X2J1ZiAqYnVmKQo+ICB7Cj4gLQlzdHJ1Y3Qg dXJiICp1cmIgPSBidWYtPnVyYjsKPiAgCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7Cj4gIAlpbnQg aTsKPiAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgdXJiLT5udW1fc2dzOyBpKyspIHsKPiAtCQlzZyA9 ICZ1cmItPnNnW2ldOwo+ICsJZm9yIChpID0gMDsgaSA8IGJ1Zi0+bnVtX3NnczsgaSsrKSB7Cj4g KwkJc2cgPSAmYnVmLT5zZ1tpXTsKPiAgCQlpZiAoIXNnKQo+ICAJCQljb250aW51ZTsKPiAgCj4g QEAgLTM0Nyw5ICszNDYsMTAgQEAgdm9pZCBtdDc2dV9idWZfZnJlZShzdHJ1Y3QgbXQ3NnVfYnVm ICpidWYpCj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwobXQ3NnVfYnVmX2ZyZWUpOwo+ICAKPiAt aW50IG10NzZ1X3N1Ym1pdF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIGludCBkaXIsIGludCBp bmRleCwKPiAtCQkgICAgIHN0cnVjdCBtdDc2dV9idWYgKmJ1ZiwgZ2ZwX3QgZ2ZwLAo+IC0JCSAg ICAgdXNiX2NvbXBsZXRlX3QgY29tcGxldGVfZm4sIHZvaWQgKmNvbnRleHQpCj4gK3N0YXRpYyB2 b2lkCj4gK210NzZ1X2ZpbGxfYnVsa191cmIoc3RydWN0IG10NzZfZGV2ICpkZXYsIGludCBkaXIs IGludCBpbmRleCwKPiArCQkgICAgc3RydWN0IG10NzZ1X2J1ZiAqYnVmLCB1c2JfY29tcGxldGVf dCBjb21wbGV0ZV9mbiwKPiArCQkgICAgdm9pZCAqY29udGV4dCkKPiAgewo+ICAJc3RydWN0IHVz Yl9pbnRlcmZhY2UgKmludGYgPSB0b191c2JfaW50ZXJmYWNlKGRldi0+ZGV2KTsKPiAgCXN0cnVj dCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsKPiBAQCAtMzYw LDkgKzM2MCwyMiBAQCBpbnQgbXQ3NnVfc3VibWl0X2J1ZihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwg aW50IGRpciwgaW50IGluZGV4LAo+ICAJZWxzZQo+ICAJCXBpcGUgPSB1c2Jfc25kYnVsa3BpcGUo dWRldiwgZGV2LT51c2Iub3V0X2VwW2luZGV4XSk7Cj4gIAo+IC0JdXNiX2ZpbGxfYnVsa191cmIo YnVmLT51cmIsIHVkZXYsIHBpcGUsIE5VTEwsIGJ1Zi0+bGVuLAo+IC0JCQkgIGNvbXBsZXRlX2Zu LCBjb250ZXh0KTsKPiArCXVzYl9maWxsX2J1bGtfdXJiKGJ1Zi0+dXJiLCB1ZGV2LCBwaXBlLCBO VUxMLCBidWYtPmxlbiwgY29tcGxldGVfZm4sCj4gKwkJCSAgY29udGV4dCk7Cj4gKwo+ICsJaWYg KGJ1Zi0+bnVtX3NncyA+IDEpIHsKPiArCQlidWYtPnVyYi0+bnVtX3NncyA9IGJ1Zi0+bnVtX3Nn czsKPiArCQlidWYtPnVyYi0+c2cgPSBidWYtPnNnOwo+ICsJfSBlbHNlIHsKPiArCQlidWYtPnVy Yi0+dHJhbnNmZXJfYnVmZmVyID0gc2dfdmlydChidWYtPnNnKTsKPiArCX0KPiArfQo+ICAKPiAr aW50IG10NzZ1X3N1Ym1pdF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIGludCBkaXIsIGludCBp bmRleCwKPiArCQkgICAgIHN0cnVjdCBtdDc2dV9idWYgKmJ1ZiwgZ2ZwX3QgZ2ZwLAo+ICsJCSAg ICAgdXNiX2NvbXBsZXRlX3QgY29tcGxldGVfZm4sIHZvaWQgKmNvbnRleHQpCj4gK3sKPiArCW10 NzZ1X2ZpbGxfYnVsa191cmIoZGV2LCBkaXIsIGluZGV4LCBidWYsIGNvbXBsZXRlX2ZuLCBjb250 ZXh0KTsKPiAgCXJldHVybiB1c2Jfc3VibWl0X3VyYihidWYtPnVyYiwgZ2ZwKTsKPiAgfQo+ICBF WFBPUlRfU1lNQk9MX0dQTChtdDc2dV9zdWJtaXRfYnVmKTsKPiBAQCAtNjcyLDcgKzY4NSw3IEBA IHN0YXRpYyB2b2lkIG10NzZ1X2NvbXBsZXRlX3R4KHN0cnVjdCB1cmIgKnVyYikKPiAgfQo+ICAK PiAgc3RhdGljIGludAo+IC1tdDc2dV90eF9idWlsZF9zZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgdXJiICp1cmIpCj4gK210NzZ1X3R4X2J1aWxkX3NnKHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBtdDc2dV9idWYgKmJ1ZikKPiAgewo+ICAJaW50IG5zZ3MgPSAxICsgc2tiX3NoaW5m byhza2IpLT5ucl9mcmFnczsKPiAgCXN0cnVjdCBza19idWZmICppdGVyOwo+IEBAIC02ODAsMTMg KzY5MywxNCBAQCBtdDc2dV90eF9idWlsZF9zZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg dXJiICp1cmIpCj4gIAlza2Jfd2Fsa19mcmFncyhza2IsIGl0ZXIpCj4gIAkJbnNncyArPSAxICsg c2tiX3NoaW5mbyhpdGVyKS0+bnJfZnJhZ3M7Cj4gIAo+IC0JbWVtc2V0KHVyYi0+c2csIDAsIHNp emVvZigqdXJiLT5zZykgKiBNVF9TR19NQVhfU0laRSk7Cj4gKwltZW1zZXQoYnVmLT5zZywgMCwg c2l6ZW9mKCpidWYtPnNnKSAqIE1UX1NHX01BWF9TSVpFKTsKPiAgCj4gIAluc2dzID0gbWluX3Qo aW50LCBNVF9TR19NQVhfU0laRSwgbnNncyk7Cj4gLQlzZ19pbml0X21hcmtlcih1cmItPnNnLCBu c2dzKTsKPiAtCXVyYi0+bnVtX3NncyA9IG5zZ3M7Cj4gKwlzZ19pbml0X21hcmtlcihidWYtPnNn LCBuc2dzKTsKPiArCWJ1Zi0+bnVtX3NncyA9IG5zZ3M7Cj4gKwlidWYtPmxlbiA9IHNrYi0+bGVu Owo+ICAKPiAtCXJldHVybiBza2JfdG9fc2d2ZWNfbm9tYXJrKHNrYiwgdXJiLT5zZywgMCwgc2ti LT5sZW4pOwo+ICsJcmV0dXJuIHNrYl90b19zZ3ZlY19ub21hcmsoc2tiLCBidWYtPnNnLCAwLCBz a2ItPmxlbik7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQKPiBAQCAtNjk0LDEyICs3MDgsOSBAQCBt dDc2dV90eF9xdWV1ZV9za2Ioc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVl ICpxLAo+ICAJCSAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQs Cj4gIAkJICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSkKPiAgewo+IC0Jc3RydWN0IHVzYl9p bnRlcmZhY2UgKmludGYgPSB0b191c2JfaW50ZXJmYWNlKGRldi0+ZGV2KTsKPiAtCXN0cnVjdCB1 c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsKPiAgCXU4IGVwID0g cTJlcChxLT5od19pZHgpOwo+ICAJc3RydWN0IG10NzZ1X2J1ZiAqYnVmOwo+ICAJdTE2IGlkeCA9 IHEtPnRhaWw7Cj4gLQl1bnNpZ25lZCBpbnQgcGlwZTsKPiAgCWludCBlcnI7Cj4gIAo+ICAJaWYg KHEtPnF1ZXVlZCA9PSBxLT5uZGVzYykKPiBAQCAtNzEyLDEzICs3MjMsMTEgQEAgbXQ3NnVfdHhf cXVldWVfc2tiKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwKPiAg CWJ1ZiA9ICZxLT5lbnRyeVtpZHhdLnVidWY7Cj4gIAlidWYtPmRvbmUgPSBmYWxzZTsKPiAgCj4g LQllcnIgPSBtdDc2dV90eF9idWlsZF9zZyhza2IsIGJ1Zi0+dXJiKTsKPiArCWVyciA9IG10NzZ1 X3R4X2J1aWxkX3NnKHNrYiwgYnVmKTsKPiAgCWlmIChlcnIgPCAwKQo+ICAJCXJldHVybiBlcnI7 Cj4gIAo+IC0JcGlwZSA9IHVzYl9zbmRidWxrcGlwZSh1ZGV2LCBkZXYtPnVzYi5vdXRfZXBbZXBd KTsKPiAtCXVzYl9maWxsX2J1bGtfdXJiKGJ1Zi0+dXJiLCB1ZGV2LCBwaXBlLCBOVUxMLCBza2It PmxlbiwKPiAtCQkJICBtdDc2dV9jb21wbGV0ZV90eCwgYnVmKTsKPiArCW10NzZ1X2ZpbGxfYnVs a191cmIoZGV2LCBVU0JfRElSX09VVCwgZXAsIGJ1ZiwgbXQ3NnVfY29tcGxldGVfdHgsIGJ1Zik7 Cj4gIAo+ICAJcS0+dGFpbCA9IChxLT50YWlsICsgMSkgJSBxLT5uZGVzYzsKPiAgCXEtPmVudHJ5 W2lkeF0uc2tiID0gc2tiOwo+IEBAIC03NzYsOCArNzg1LDggQEAgc3RhdGljIGludCBtdDc2dV9h bGxvY190eChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldikKPiAgCQkJaWYgKCFidWYtPnVyYikKPiAgCQkJ CXJldHVybiAtRU5PTUVNOwo+ICAKPiAtCQkJYnVmLT51cmItPnNnID0gZGV2bV9remFsbG9jKGRl di0+ZGV2LCBzaXplLCBHRlBfS0VSTkVMKTsKPiAtCQkJaWYgKCFidWYtPnVyYi0+c2cpCj4gKwkJ CWJ1Zi0+c2cgPSBkZXZtX2t6YWxsb2MoZGV2LT5kZXYsIHNpemUsIEdGUF9LRVJORUwpOwo+ICsJ CQlpZiAoIWJ1Zi0+c2cpCj4gIAkJCQlyZXR1cm4gLUVOT01FTTsKPiAgCQl9Cj4gIAl9Cj4gLS0g Cj4gMi4yMC4xCj4K