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: inconsistent lock state with usbnet/asix usb ethernet and xhci From: Eric Dumazet Message-Id: <1519744167.7296.8.camel@gmail.com> Date: Tue, 27 Feb 2018 07:09:27 -0800 To: Marek Szyprowski , netdev@vger.kernel.org, Linux USB Mailing List , LKML , 'Linux Samsung SOC' Cc: Dean Jenkins , Oliver Neukum List-ID: T24gVHVlLCAyMDE4LTAyLTI3IGF0IDE1OjQyICswMTAwLCBNYXJlayBTenlwcm93c2tpIHdyb3Rl Ogo+IEhpIEVyaWMsCj4gCj4gT24gMjAxOC0wMi0yNyAxNTowNywgRXJpYyBEdW1hemV0IHdyb3Rl Ogo+ID4gT24gVHVlLCAyMDE4LTAyLTI3IGF0IDA4OjI2ICswMTAwLCBNYXJlayBTenlwcm93c2tp IHdyb3RlOgo+ID4gPiBJJ3ZlIG5vdGljZWQgdGhhdCBVU0JuZXQvQVNJWCBBWDg4NzcyQiBVU0Ig ZHJpdmVyIHByb2R1Y2VzIGRlcGxvY2sga2VybmVsCj4gPiA+IHdhcm5pbmcgKCJpbmNvbnNpc3Rl bnQgbG9jayBzdGF0ZSIpIG9uIENocm9tZWJvb2syIFBlYWNoLVBJVCBib2FyZC4gTm8KPiA+ID4g c3BlY2lhbCBhY3Rpdml0eSBpcyBuZWVkZWQgdG8gcmVwcm9kdWNlIHRoaXMgaXNzdWUsIGl0IGhh cHBlbnMgYWxtb3N0Cj4gPiA+IG9uIGV2ZXJ5IGJvb3QuIEFTSVggVVNCIGV0aGVybmV0IGlzIGNv bm5lY3RlZCB0byBYSENJIFVTQiBob3N0IGNvbnRyb2xsZXIKPiA+ID4gb24gdGhhdCBib2FyZC4g SXMgaXQgYSBrbm93biBpc3N1ZT8gRnJhbmtseSBJIGhhdmUgbm8gaWRlYSB3aGVyZSB0byBsb29r Cj4gPiA+IHRvIGZpeCBpdC4gVGhlIHNhbWUgYWRhcHRlciBjb25uZWN0ZWQgdG8gRUhDSSBwb3J0 cyBvbiBvdGhlciBib2FyZHMgYmFzZWQKPiA+ID4gb24gdGhlIHNhbWUgU29DIHdvcmtzIGZpbmUg d2l0aG91dCBhbnkgd2FybmluZ3MuCj4gPiA+IAo+ID4gPiBIZXJlIGFyZSBzb21lIG1vcmUgaW5m b3JtYXRpb24gZnJvbSB0aGF0IGJvYXJkOgo+ID4gPiAjIGxzdXNiCj4gPiA+IEJ1cyAwMDYgRGV2 aWNlIDAwMTogSUQgMWQ2YjowMDAzIExpbnV4IEZvdW5kYXRpb24gMy4wIHJvb3QgaHViCj4gPiA+ IEJ1cyAwMDUgRGV2aWNlIDAwMjogSUQgMGI5NTo3NzJiIEFTSVggRWxlY3Ryb25pY3MgQ29ycC4g QVg4ODc3MkIKPiA+ID4gQnVzIDAwNSBEZXZpY2UgMDAxOiBJRCAxZDZiOjAwMDIgTGludXggRm91 bmRhdGlvbiAyLjAgcm9vdCBodWIKPiA+ID4gQnVzIDAwNCBEZXZpY2UgMDAxOiBJRCAxZDZiOjAw MDMgTGludXggRm91bmRhdGlvbiAzLjAgcm9vdCBodWIKPiA+ID4gQnVzIDAwMyBEZXZpY2UgMDAx OiBJRCAxZDZiOjAwMDIgTGludXggRm91bmRhdGlvbiAyLjAgcm9vdCBodWIKPiA+ID4gQnVzIDAw MiBEZXZpY2UgMDAxOiBJRCAxZDZiOjAwMDEgTGludXggRm91bmRhdGlvbiAxLjEgcm9vdCBodWIK PiA+ID4gQnVzIDAwMSBEZXZpY2UgMDAyOiBJRCAyMjMyOjEwNTYgU2lsaWNvbiBNb3Rpb24KPiA+ ID4gQnVzIDAwMSBEZXZpY2UgMDAxOiBJRCAxZDZiOjAwMDIgTGludXggRm91bmRhdGlvbiAyLjAg cm9vdCBodWIKPiA+ID4gCj4gPiA+ICMgbHN1c2IgLXQKPiA+ID4gLzrCoCBCdXMgMDYuUG9ydCAx OiBEZXYgMSwgQ2xhc3M9cm9vdF9odWIsIERyaXZlcj14aGNpLWhjZC8xcCwgNTAwME0KPiA+ID4g LzrCoCBCdXMgMDUuUG9ydCAxOiBEZXYgMSwgQ2xhc3M9cm9vdF9odWIsIERyaXZlcj14aGNpLWhj ZC8xcCwgNDgwTQo+ID4gPiAgIMKgwqDCoCB8X18gUG9ydCAxOiBEZXYgMiwgSWYgMCwgQ2xhc3M9 VmVuZG9yIFNwZWNpZmljIENsYXNzLCBEcml2ZXI9YXNpeCwgNDgwTQo+ID4gPiAvOsKgIEJ1cyAw NC5Qb3J0IDE6IERldiAxLCBDbGFzcz1yb290X2h1YiwgRHJpdmVyPXhoY2ktaGNkLzFwLCA1MDAw TQo+ID4gPiAvOsKgIEJ1cyAwMy5Qb3J0IDE6IERldiAxLCBDbGFzcz1yb290X2h1YiwgRHJpdmVy PXhoY2ktaGNkLzFwLCA0ODBNCj4gPiA+IC86wqAgQnVzIDAyLlBvcnQgMTogRGV2IDEsIENsYXNz PXJvb3RfaHViLCBEcml2ZXI9ZXh5bm9zLW9oY2kvM3AsIDEyTQo+ID4gPiAvOsKgIEJ1cyAwMS5Q b3J0IDE6IERldiAxLCBDbGFzcz1yb290X2h1YiwgRHJpdmVyPWV4eW5vcy1laGNpLzNwLCA0ODBN Cj4gPiA+ICAgwqDCoMKgIHxfXyBQb3J0IDE6IERldiAyLCBJZiAwLCBDbGFzcz1WaWRlbywgRHJp dmVyPSwgNDgwTQo+ID4gPiAgIMKgwqDCoCB8X18gUG9ydCAxOiBEZXYgMiwgSWYgMSwgQ2xhc3M9 VmlkZW8sIERyaXZlcj0sIDQ4ME0KPiA+ID4gCj4gPiA+IAo+ID4gPiBBbmQgdGhlIGxvZyB3aXRo IG1lbnRpb25lZCB3YXJuaW5nOgo+ID4gPiAKPiA+ID4gW8KgwqAgMTcuNzY4MDQwXSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiBbwqDCoCAxNy43NzIyMzldIFdBUk5JTkc6 IGluY29uc2lzdGVudCBsb2NrIHN0YXRlCj4gPiA+IFvCoMKgIDE3Ljc3NjUxMV0gNC4xNi4wLXJj My1uZXh0LTIwMTgwMjI3LTAwMDA3LWc4NzZjNTNhNzQ5M2MgIzQ1MyBOb3QgdGFpbnRlZAo+ID4g PiBbwqDCoCAxNy43ODMzMjldIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ IFvCoMKgIDE3Ljc4NzU4MF0gaW5jb25zaXN0ZW50IHtJTi1IQVJESVJRLVd9IC0+IHtIQVJESVJR LU9OLVd9IHVzYWdlLgo+ID4gPiBbwqDCoCAxNy43OTM2MDddIHN3YXBwZXIvMC8wIFtIQzBbMF06 U0MxWzFdOkhFMTpTRTBdIHRha2VzOgo+ID4gPiBbwqDCoCAxNy43OTg3NTFdwqAgKCZzeW5jcC0+ c2VxIzUpez8uLS59LCBhdDogWzw5YjIyZTVmMD5dCj4gPiA+IGFzaXhfcnhfZml4dXBfaW50ZXJu YWwrMHgxODgvMHgyODgKPiA+ID4gW8KgwqAgMTcuODA2NzkwXSB7SU4tSEFSRElSUS1XfSBzdGF0 ZSB3YXMgcmVnaXN0ZXJlZCBhdDoKPiA+ID4gW8KgwqAgMTcuODExNjc3XcKgwqAgdHhfY29tcGxl dGUrMHgxMDAvMHgyMDgKPiA+ID4gW8KgwqAgMTcuODE1MzE5XcKgwqAgX191c2JfaGNkX2dpdmVi YWNrX3VyYisweDYwLzB4ZjAKPiA+ID4gW8KgwqAgMTcuODE5NzcwXcKgwqAgeGhjaV9naXZlYmFj a191cmJfaW5faXJxKzB4YTgvMHgyNDAKPiA+ID4gW8KgwqAgMTcuODI0NDY5XcKgwqAgeGhjaV90 ZF9jbGVhbnVwKzB4ZjQvMHgxNmMKPiA+ID4gW8KgwqAgMTcuODI4MzY3XcKgwqAgeGhjaV9pcnEr MHhlNzQvMHgyMjQwCj4gPiA+IFvCoMKgIDE3LjgzMTgyN13CoMKgIHVzYl9oY2RfaXJxKzB4MjQv MHgzOAo+ID4gPiBbwqDCoCAxNy44MzUzNDNdwqDCoCBfX2hhbmRsZV9pcnFfZXZlbnRfcGVyY3B1 KzB4OTgvMHg1MTAKPiA+ID4gW8KgwqAgMTcuODQwMTExXcKgwqAgaGFuZGxlX2lycV9ldmVudF9w ZXJjcHUrMHgxYy8weDU4Cj4gPiA+IFvCoMKgIDE3Ljg0NDYyM13CoMKgIGhhbmRsZV9pcnFfZXZl bnQrMHgzOC8weDVjCj4gPiA+IFvCoMKgIDE3Ljg0ODUxOV3CoMKgIGhhbmRsZV9mYXN0ZW9pX2ly cSsweGE0LzB4MTM4Cj4gPiA+IFvCoMKgIDE3Ljg1MjY4MV3CoMKgIGdlbmVyaWNfaGFuZGxlX2ly cSsweDE4LzB4MjgKPiA+ID4gW8KgwqAgMTcuODU2NzYwXcKgwqAgX19oYW5kbGVfZG9tYWluX2ly cSsweDZjLzB4ZTQKPiA+ID4gW8KgwqAgMTcuODYwOTQxXcKgwqAgZ2ljX2hhbmRsZV9pcnErMHg1 NC8weGEwCj4gPiA+IFvCoMKgIDE3Ljg2NDY2Nl3CoMKgIF9faXJxX3N2YysweDcwLzB4YjAKPiA+ ID4gW8KgwqAgMTcuODY3OTY0XcKgwqAgYXJjaF9jcHVfaWRsZSsweDIwLzB4M2MKPiA+ID4gW8Kg wqAgMTcuODcxNTc4XcKgwqAgYXJjaF9jcHVfaWRsZSsweDIwLzB4M2MKPiA+ID4gW8KgwqAgMTcu ODc1MTkwXcKgwqAgZG9faWRsZSsweDE0NC8weDIxOAo+ID4gPiBbwqDCoCAxNy44Nzg0NjhdwqDC oCBjcHVfc3RhcnR1cF9lbnRyeSsweDE4LzB4MWMKPiA+ID4gW8KgwqAgMTcuODgyNDU0XcKgwqAg c3RhcnRfa2VybmVsKzB4Mzk0LzB4NDAwCj4gPiA+IFvCoMKgIDE3Ljg4NjE3N10gaXJxIGV2ZW50 IHN0YW1wOiAxNjE5MTIKPiA+ID4gW8KgwqAgMTcuODg5NjE2XSBoYXJkaXJxcyBsYXN0wqAgZW5h YmxlZCBhdCAoMTYxOTEyKTogWzw3YmVkZmFjZj5dCj4gPiA+IF9fbmV0ZGV2X2FsbG9jX3NrYisw eGNjLzB4MTQwCj4gPiA+IFvCoMKgIDE3Ljg5Nzg5M10gaGFyZGlycXMgbGFzdCBkaXNhYmxlZCBh dCAoMTYxOTExKTogWzxkNTgyNjFkMD5dCj4gPiA+IF9fbmV0ZGV2X2FsbG9jX3NrYisweDk0LzB4 MTQwCj4gPiA+IFvCoMKgIDE3LjkwNDkwM10gZXh5bm9zNS1oc2kyYyAxMmNhMDAwMC5pMmM6IHR4 IHRpbWVvdXQKPiA+ID4gW8KgwqAgMTcuOTA2MTE2XSBzb2Z0aXJxcyBsYXN0wqAgZW5hYmxlZCBh dCAoMTYxOTA0KTogWzwzODcxMDJmZj5dCj4gPiA+IGlycV9lbnRlcisweDc4LzB4ODAKPiA+ID4g W8KgwqAgMTcuOTA2MTIzXSBzb2Z0aXJxcyBsYXN0IGRpc2FibGVkIGF0ICgxNjE5MDUpOiBbPGNm NGM2MjhlPl0KPiA+ID4gaXJxX2V4aXQrMHgxMzQvMHgxNTgKPiA+ID4gW8KgwqAgMTcuOTI1NzIy XS4KPiA+ID4gW8KgwqAgMTcuOTI1NzIyXSBvdGhlciBpbmZvIHRoYXQgbWlnaHQgaGVscCB1cyBk ZWJ1ZyB0aGlzOgo+ID4gPiBbwqDCoCAxNy45MzM0MzVdwqAgUG9zc2libGUgdW5zYWZlIGxvY2tp bmcgc2NlbmFyaW86Cj4gPiA+IFvCoMKgIDE3LjkzMzQzNV0uCj4gPiA+IFvCoMKgIDE3Ljk0MDMz MV3CoMKgwqDCoMKgwqDCoCBDUFUwCj4gPiA+IFvCoMKgIDE3Ljk0MjQ4OF3CoMKgwqDCoMKgwqDC oCAtLS0tCj4gPiA+IFvCoMKgIDE3Ljk0NDg5NF3CoMKgIGxvY2soJnN5bmNwLT5zZXEjNSk7Cj4g PiA+IFvCoMKgIDE3Ljk0ODI3NF3CoMKgIDxJbnRlcnJ1cHQ+Cj4gPiA+IFvCoMKgIDE3Ljk1MDg0 N13CoMKgwqDCoCBsb2NrKCZzeW5jcC0+c2VxIzUpOwo+ID4gPiBbwqDCoCAxNy45NTQzODZdLgo+ ID4gPiBbwqDCoCAxNy45NTQzODZdwqAgKioqIERFQURMT0NLICoqKgo+ID4gPiBbwqDCoCAxNy45 NTQzODZdLgo+ID4gPiBbwqDCoCAxNy45NjI0MjJdIG5vIGxvY2tzIGhlbGQgYnkgc3dhcHBlci8w LzAuCj4gPiA+IFvCoMKgIDE3Ljk2NjAxMV0uCj4gPiA+IFvCoMKgIDE3Ljk2NjAxMV0gc3RhY2sg YmFja3RyYWNlOgo+ID4gPiBbwqDCoCAxNy45NzEzMzNdIENQVTogMCBQSUQ6IDAgQ29tbTogc3dh cHBlci8wIE5vdCB0YWludGVkCj4gPiA+IDQuMTYuMC1yYzMtbmV4dC0yMDE4MDIyNy0wMDAwNy1n ODc2YzUzYTc0OTNjICM0NTMKPiA+ID4gW8KgwqAgMTcuOTgwMzEyXSBIYXJkd2FyZSBuYW1lOiBT QU1TVU5HIEVYWU5PUyAoRmxhdHRlbmVkIERldmljZSBUcmVlKQo+ID4gPiBbwqDCoCAxNy45ODYz ODBdIFs8YzAxMTE1NDg+XSAodW53aW5kX2JhY2t0cmFjZSkgZnJvbSBbPGMwMTBkYmQ4Pl0KPiA+ ID4gKHNob3dfc3RhY2srMHgxMC8weDE0KQo+ID4gPiBbwqDCoCAxNy45OTQxMjhdIFs8YzAxMGRi ZDg+XSAoc2hvd19zdGFjaykgZnJvbSBbPGMwOWJkNDE4Pl0KPiA+ID4gKGR1bXBfc3RhY2srMHg5 MC8weGM4KQo+ID4gPiBbwqDCoCAxOC4wMDEzMzldIFs8YzA5YmQ0MTg+XSAoZHVtcF9zdGFjaykg ZnJvbSBbPGMwMTdmZGY4Pl0KPiA+ID4gKHByaW50X3VzYWdlX2J1ZysweDI1Yy8weDJjYykKPiA+ ID4gW8KgwqAgMTguMDA5MTYxXSBbPGMwMTdmZGY4Pl0gKHByaW50X3VzYWdlX2J1ZykgZnJvbSBb PGMwMTdjMTRjPl0KPiA+ID4gKG1hcmtfbG9jaysweDI5MC8weDY5OCkKPiA+ID4gW8KgwqAgMTgu MDE0OTUyXSBleHlub3M1LWhzaTJjIDEyY2EwMDAwLmkyYzogdHggdGltZW91dAo+ID4gPiBbwqDC oCAxOC4wMTY4OTldIFs8YzAxN2MxNGM+XSAobWFya19sb2NrKSBmcm9tIFs8YzAxN2M5YTg+XQo+ ID4gPiAoX19sb2NrX2FjcXVpcmUrMHg0NTQvMHgxODUwKQo+ID4gPiBbwqDCoCAxOC4wMjk0NDld IFs8YzAxN2M5YTg+XSAoX19sb2NrX2FjcXVpcmUpIGZyb20gWzxjMDE3ZTZlMD5dCj4gPiA+IChs b2NrX2FjcXVpcmUrMHhjOC8weDJiOCkKPiA+ID4gW8KgwqAgMTguMDM3MjcyXSBbPGMwMTdlNmUw Pl0gKGxvY2tfYWNxdWlyZSkgZnJvbSBbPGMwNWJlOThjPl0KPiA+ID4gKHVzYm5ldF9za2JfcmV0 dXJuKzB4N2MvMHgxYTApCj4gPiA+IFvCoMKgIDE4LjA0NTM1Nl0gWzxjMDViZTk4Yz5dICh1c2Ju ZXRfc2tiX3JldHVybikgZnJvbSBbPGMwNWIxODVjPl0KPiA+ID4gKGFzaXhfcnhfZml4dXBfaW50 ZXJuYWwrMHgxODgvMHgyODgpCj4gPiA+IFvCoMKgIDE4LjA1NDQyMF0gWzxjMDViMTg1Yz5dIChh c2l4X3J4X2ZpeHVwX2ludGVybmFsKSBmcm9tIFs8YzA1YmZlNDA+XQo+ID4gPiAodXNibmV0X2Jo KzB4ZjgvMHgyZTQpCj4gPiA+IFvCoMKgIDE4LjA2MjY5NF0gWzxjMDViZmU0MD5dICh1c2JuZXRf YmgpIGZyb20gWzxjMDEyZDZiND5dCj4gPiA+ICh0YXNrbGV0X2FjdGlvbisweDhjLzB4MTNjKQo+ ID4gPiBbwqDCoCAxOC4wNzAyNTldIFs8YzAxMmQ2YjQ+XSAodGFza2xldF9hY3Rpb24pIGZyb20g WzxjMDEwMjIxND5dCj4gPiA+IChfX2RvX3NvZnRpcnErMHhkNC8weDZkNCkKPiA+ID4gW8KgwqAg MTguMDc4MDg5XSBbPGMwMTAyMjE0Pl0gKF9fZG9fc29mdGlycSkgZnJvbSBbPGMwMTJjZjM0Pl0K PiA+ID4gKGlycV9leGl0KzB4MTM0LzB4MTU4KQo+ID4gPiBbwqDCoCAxOC4wODU0ODBdIFs8YzAx MmNmMzQ+XSAoaXJxX2V4aXQpIGZyb20gWzxjMDE4YzQ0ND5dCj4gPiA+IChfX2hhbmRsZV9kb21h aW5faXJxKzB4NzAvMHhlNCkKPiA+ID4gW8KgwqAgMTguMDkzMzE0XSBbPGMwMThjNDQ0Pl0gKF9f aGFuZGxlX2RvbWFpbl9pcnEpIGZyb20gWzxjMDQ2NDAwYz5dCj4gPiA+IChnaWNfaGFuZGxlX2ly cSsweDU0LzB4YTApCj4gPiA+IFvCoMKgIDE4LjEwMTY3MF0gWzxjMDQ2NDAwYz5dIChnaWNfaGFu ZGxlX2lycSkgZnJvbSBbPGMwMTAxOWYwPl0KPiA+ID4gKF9faXJxX3N2YysweDcwLzB4YjApCj4g PiA+IFvCoMKgIDE4LjEwOTE2M10gRXhjZXB0aW9uIHN0YWNrKDB4YzBmMDFlYjggdG8gMHhjMGYw MWYwMCkKPiA+ID4gW8KgwqAgMTguMTE0MjAyXSAxZWEwOiAwMDAwMDAwMSAwMDAwMDAwMQo+ID4g PiBbwqDCoCAxOC4xMjIzOTddIDFlYzA6IDAwMDAwMDAwIGMwZjBiYTgwIGVlZjNhNTQwIGVlZjNh NTQwIGVlOGQyNzAwCj4gPiA+IGMwZjA4OGI0IDAwMDAwNDAyIGMwOWQyM2UwCj4gPiA+IFvCoMKg IDE4LjEyNDk4MF0gZXh5bm9zNS1oc2kyYyAxMmNhMDAwMC5pMmM6IHR4IHRpbWVvdXQKPiA+ID4g W8KgwqAgMTguMTMwNjExXSAxZWUwOiBjMGYwYmE4MCBjMGYwMWY0YyAwMDAwMDAwMCBjMGYwMWYw OCBjMDE3ZWE1NAo+ID4gPiBjMDlkOTJkNCAyMDAwMDAxMyBmZmZmZmZmZgo+ID4gPiBbwqDCoCAx OC4xMzU1MDRdIGNwdSBjcHUwOiBfc2V0X29wcF92b2x0YWdlOiBmYWlsZWQgdG8gc2V0IHZvbHRh Z2UKPiA+ID4gKDEyNTAwMDAgMTI1MDAwMCAxMjUwMDAwIG1WKTogLTExMAo+ID4gPiBbwqDCoCAx OC4xNDM2OTBdIFs8YzAxMDE5ZjA+XSAoX19pcnFfc3ZjKSBmcm9tIFs8YzA5ZDkyZDQ+XQo+ID4g PiAoX3Jhd19zcGluX3VubG9ja19pcnErMHgyOC8weDVjKQo+ID4gPiBbwqDCoCAxOC4xNTI2NzFd IGNwdWZyZXE6IF9fdGFyZ2V0X2luZGV4OiBGYWlsZWQgdG8gY2hhbmdlIGNwdSBmcmVxdWVuY3k6 IC0xMTAKPiA+ID4gW8KgwqAgMTguMTYwNjgzXSBbPGMwOWQ5MmQ0Pl0gKF9yYXdfc3Bpbl91bmxv Y2tfaXJxKSBmcm9tIFs8YzAxNTI2ODQ+XQo+ID4gPiAoZmluaXNoX3Rhc2tfc3dpdGNoKzB4YjQv MHgyNTQpCj4gPiA+IFvCoMKgIDE4LjE2MDY5Nl0gWzxjMDE1MjY4ND5dIChmaW5pc2hfdGFza19z d2l0Y2gpIGZyb20gWzxjMDlkMjNlMD5dCj4gPiA+IChfX3NjaGVkdWxlKzB4MjkwLzB4YjEwKQo+ ID4gPiBbwqDCoCAxOC4xNjA3MDRdIFs8YzA5ZDIzZTA+XSAoX19zY2hlZHVsZSkgZnJvbSBbPGMw OWQzMTM0Pl0KPiA+ID4gKHNjaGVkdWxlX2lkbGUrMHgyYy8weDc4KQo+ID4gPiBbwqDCoCAxOC4x NjA3MTFdIFs8YzA5ZDMxMzQ+XSAoc2NoZWR1bGVfaWRsZSkgZnJvbSBbPGMwMTcwM2EwPl0KPiA+ ID4gKGNwdV9zdGFydHVwX2VudHJ5KzB4MTgvMHgxYykKPiA+ID4gW8KgwqAgMTguMjAwNzI2XSBb PGMwMTcwM2EwPl0gKGNwdV9zdGFydHVwX2VudHJ5KSBmcm9tIFs8YzBlMDBjNzQ+XQo+ID4gPiAo c3RhcnRfa2VybmVsKzB4Mzk0LzB4NDAwKQo+ID4gPiAKPiA+ID4gQmVzdCByZWdhcmRzCj4gPiAK PiA+IFBsZWFzZSB0cnkgdGhlIGF0dGFjaGVkIHBhdGNoLCB0aGFua3MuCj4gCj4gVGhhbmtzIGZv ciB0aGUgcGF0Y2guIEl0IGZpeGVzIHRoZSBkZXBsb2NrIHdhcm5pbmcuIEhvd2V2ZXIgSU1ITyB0 aGUgc2FtZQo+IGZpeCBzaG91bGQgYmUgYWxzbyBhcHBsaWVkIHRvIGNvbXBsZXRlX3R4IGZ1bmN0 aW9uIGZvciBtb2RpZnlpbmcgc3RhdHM2NAo+IHRoZXJlOgo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC91c2IvdXNibmV0LmMgYi9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMKPiBpbmRleCA3 ZjViZGEwZWM5ZTguLmQ5ZWVhOGNmZTZjYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL25ldC91c2Iv dXNibmV0LmMKPiArKysgYi9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMKPiBAQCAtMTI0OSwxMSAr MTI0OSwxMiBAQCBzdGF0aWMgdm9pZCB0eF9jb21wbGV0ZSAoc3RydWN0IHVyYiAqdXJiKQo+IAo+ ICDCoMKgwqDCoMKgwqDCoCBpZiAodXJiLT5zdGF0dXMgPT0gMCkgewo+ICDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHBjcHVfc3dfbmV0c3RhdHMgKnN0YXRzNjQgPSAKPiB0 aGlzX2NwdV9wdHIoZGV2LT5zdGF0czY0KTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB1bnNpZ25lZCBsb25nIGZsYWdzOwo+IAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnN0YXRzNjQtPnN5bmNwKTsKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBmbGFncyA9IHU2NF9zdGF0c191cGRhdGVfYmVnaW5faXJxc2F2ZSgm c3RhdHM2NC0+c3luY3ApOwo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RhdHM2 NC0+dHhfcGFja2V0cyArPSBlbnRyeS0+cGFja2V0czsKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHN0YXRzNjQtPnR4X2J5dGVzICs9IGVudHJ5LT5sZW5ndGg7Cj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJnN0YXRzNjQtPnN5bmNw KTsKPiArIHU2NF9zdGF0c191cGRhdGVfZW5kX2lycXJlc3RvcmUoJnN0YXRzNjQtPnN5bmNwLCBm bGFncyk7Cj4gIMKgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBkZXYtPm5ldC0+c3RhdHMudHhfZXJyb3JzKys7Cj4gCj4gCj4gSSd2ZSBkaWQg dGhhdCBhbmQgaXQgYWxzbyB3b3JrcyBmaW5lIHdpdGhvdXQgZGVwbG9jayB3YXJuaW5nLgoKTm90 ZSB0aGF0IGZvciB0aGlzIG9uZSwgaXQgc2VlbXMgd2UgYWxzbyBjb3VsZCBwZXJmb3JtIHN0YXRz IHVwZGF0ZXMgaW4KQkggY29udGV4dCwgc2luY2Ugc2tiIGlzIHF1ZXVlZCB2aWEgZGVmZXJfYmgo KQoKQnV0IHNpbXBsaWNpdHkgd2lucyBJIGd1ZXNzLgoKSSdsbCBzZW5kIGEgZm9ybWFsIHBhdGNo IGluY2x1ZGluZyB5b3VyIGNoYW5nZSBpbiB0eF9jb21wbGV0ZSgpLAp0aGFua3MgIQotLS0KVG8g dW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxp bnV4LXVzYiIgaW4KdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5l bC5vcmcKTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpv cmRvbW8taW5mby5odG1sCg==