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: Mass Storage Gadget Device Falls from SuperSpeed to High Speed From: Rob Weber Message-Id: <20190402074855.GA16196@coops> Date: Tue, 2 Apr 2019 00:48:55 -0700 To: Felipe Balbi Cc: linux-usb@vger.kernel.org, mathias.nyman@intel.com List-ID: SGkgRmVsaXBlLAoKT24gVHVlLCBBcHIgMDIsIDIwMTkgYXQgMDg6NDY6MTZBTSArMDMwMCwgRmVs aXBlIEJhbGJpIHdyb3RlOgo+IEZlbGlwZSBCYWxiaSA8ZmVsaXBlLmJhbGJpQGxpbnV4LmludGVs LmNvbT4gd3JpdGVzOgo+ID4+PiBtb2RwaHkgaXMgdGhlIFVTQiBQSFkgaW50ZWdyYXRlZCBpbiB5 b3VyIFNvQy4gVGhlcmUncyBubyBjb250cm9sIGZvcgo+ID4+PiB0aGF0IGZyb20gT1Mgc2lkZSwg b25seSBCSU9TIHVuZm9ydHVuYXRlbHkuIFRoZXJlIGlzLCBob3dldmVyLCBvbmUgdGhpbmcKPiA+ Pj4gd2UgY2FuIHRyeS4gRFdDMyBoYXMgc2V2ZXJhbCBxdWlyayBmbGFncyBmb3Iga25vd24gcXVp cmt5IFBIWXM7IHBlcmhhcHMKPiA+Pj4gQ0hUIG5lZWRzIG9uZSBvZiB0aG9zZS4gQ2FuIHlvdSB0 cnkgd2l0aCB0aGlzIHBhdGNoIGFuZCBsZXQgbWUga25vdwo+ID4+PiB3aGV0aGVyIGl0IGhlbHBz Pwo+ID4+Cj4gPj4gU3VyZSB0aGluZywgSSB3aWxsIHRyeSB0b21vcnJvdy4gQ291bGQgeW91IHBv c3NpYmx5IGV4cGxhaW4gd2hhdCBhIHF1aXJrCj4gPj4gaXMgYXMgaXQgcmVsYXRlcyB0byB0aGUg a2VybmVsPyBJIHNlZSB0aGlzIGFsbCBvdmVyIHRoZSBzb3VyY2UgdHJlZSBidXQKPiA+PiBuZXZl ciBrbmV3IGhvdyBpdCB3YXMgdXNlZC4gRG9lcyB0aGUgZHdjMyBhbHNvIGtub3cgYWJvdXQgInF1 aXJrcyIgYW5kCj4gPj4gdGhlc2UgcGFydGljdWxhciBmbGFncz8gb3IgYXJlIHRoZXNlIGZsYWdz IGp1c3Qgc3BlY2lmaWMgdG8gdGhlIGtlcm5lbAo+ID4+IGFuZCBpdHMgZnVuY3Rpb25hbGl0eT8K PiA+Pgo+ID4+PiBtb2RpZmllZCAgIGRyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYwo+ID4+PiBA QCAtMTA1LDYgKzEwNSw4IEBAIHN0YXRpYyBpbnQgZHdjM19ieXRfZW5hYmxlX3VscGlfcmVmY2xv Y2soc3RydWN0IHBjaV9kZXYgKnBjaSkKPiA+Pj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHJvcGVy dHlfZW50cnkgZHdjM19wY2lfaW50ZWxfcHJvcGVydGllc1tdID0gewo+ID4+PiAgCVBST1BFUlRZ X0VOVFJZX1NUUklORygiZHJfbW9kZSIsICJwZXJpcGhlcmFsIiksCj4gPj4+ICAJUFJPUEVSVFlf RU5UUllfQk9PTCgibGludXgsc3lzZGV2X2lzX3BhcmVudCIpLAo+ID4+PiArCVBST1BFUlRZX0VO VFJZX0JPT0woInNucHMsZGlzX3UzX3N1c3BoeV9xdWlyayIpLAo+ID4+PiArCVBST1BFUlRZX0VO VFJZX0JPT0woInNucHMsZGlzX3UyX3N1c3BoeV9xdWlyayIpLAo+ID4+PiAgCXt9Cj4gPj4+ICB9 Owo+ID4+PiAgCj4gPj4+IFRoZXNlIHR3byBxdWlya3Mgd2lsbCBQSFkgc3VzcGVuZC4gVGhlcmUg YXJlIG90aGVyIHJlbGV2YW50IHF1aXJrIGZsYWdzCj4gPiAgICAgICAgICAgICAgICAgICAgIF5e Xl5eXl5eCj4gPiAgICAgICAgICAgICAgICAgICAgIHdpbGwgRElTQUJMRSBwaHkgc3VzcGVuZCA6 LSkKPiA+Cj4gPj4gV2hhdCBkbyB5b3UgbWVhbiBieSBQSFkgc3VzcGVuZD8gV2lsbCBpdCBkaXNh YmxlIFUyL1UzIGZvciB0aGUgZHdjMz8gSQo+ID4KPiA+IE5vLCBuby4gRFdDMyBjYW4gc3RpbGwg ZW50ZXIgVTEvVTIvVTMsIGJ1dCB0aGUgUEhZIHdpbGwgbm90IGVudGVyIHRoZQo+ID4gbWF0Y2hp bmcgUDEvUDIvUDMgc3RhdGUuCj4gPgo+ID4+IHNlZSBpdCBtb2RpZmllZCB0aGUgRFdDM19HVVNC MlBIWUNGR19TVVNQSFkgYml0IGluIHRoZSBjb25maWd1cmF0aW9uCj4gPj4gcmVnaXN0ZXIsIGJ1 dCBJIGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBkd2MzIGRhdGFib29rIHRvIGRpZyBkZWVwZXIK PiA+PiBpbnRvIHRoaXMuCj4gPgo+ID4gVGhlIHNlY29uZCBxdWlyayBmbGFnIChzbnBzLGRpc191 Ml9zdXNwaHlfcXVpcmspIHdpbGwgdGVsbCBkd2MzIHRvICpOT1QqCj4gPiByZXF1ZXN0IFVTQjIg UEhZIHRvIGVudGVyIGxvdyBwb3dlciBzdGF0ZS4gV2hpbGUgdGhlIGZpcnN0IGZsYWcKPiA+IChz bnBzLGRpc191M19zdXNwaHlfcXVpcmspIHdpbGwgdGVsbCBkd2MzIHRvICpOT1QqIHJlcXVlc3Qg VVNCMyBQSFkgdG8KPiA+IGVudGVyIGxvdyBwb3dlciBzdGF0ZS4KPiA+Cj4gPiBJbiByZWFsaXR5 LCB0aGV5IGFyZSBhIHNpbmdsZSBibG9jayBvZiBIVyBidXQgdGhleSBfY2FuXyBiZSBkaWZmZXJl bnQKPiA+IGFuZCBldmVuIGlmIHRoZXkgYXJlIGEgc2luZ2xlIGJsb2NrLCB0aGV5IF9jYW5fIGhh dmUgc2VwYXJhdGUgY2xvY2sKPiA+IGRvbWFpbnMgYW5kIHdlIF9tYXlfIGJlIGFibGUgdG8gY29u dHJvbCB0aGVtIHNlcGFyYXRlbHkuIEkgaGF2ZW4ndCByZWFkCj4gPiBkb2N1bWVudGF0aW9uIGZv ciBtb2RwaHkgYmVjYXVzZSB0aGUgT1MgZG9lc24ndCB0b3VjaCB0aGF0LiBJZgo+ID4gbmVjZXNz YXJ5LCBJIGNhbiB0cnkgdG8gZmluZCBvdXQgbW9yZSBkZXRhaWxzIGFib3V0IGl0LCBidXQgSSB3 aWxsCj4gPiBwcm9iYWJseSB0YWtlIHNvbWUgdGltZSB0byBmaW5kIHRoZSBjb3JyZWN0IGRvY3Vt ZW50YXRpb24uCj4gPgo+ID4+PiB3aGljaCB3ZSBjYW4gdHJ5IGluIGNhc2UgdGhlc2UgdHdvIGRv bid0IGhlbHAuIEknZCBsaWtlIHRvIGZpZ3VyZSBvdXQKPiA+Pj4gZXhhY3RseSB3aGljaCBxdWly ayBmbGFnIGhlbHBzIChpZiBhbnkpLiBBZnRlciB0aGF0LCB3ZSB3b3VsZCBuZWVkIHRvCj4gPj4+ IGNoZWNrIGlmIGEgc2ltaWxhciBwcm9ibGVtIGhhcHBlbnMgb24gYW55IENIVCBzeXN0ZW0gb3Ig anVzdCB5b3VyCj4gPj4+IGRlc2lnbi4KPiA+Pj4gCj4gPj4+IElmIGl0IGhhcHBlbnMgb24gYW55 IG90aGVyIHN5c3RlbSwgdGhlbiBJIGNhbiBtYWtlIHN1cmUgd2UgYWRkIGEgcXVpcmsKPiA+Pj4g ZmxhZyB0byBhbGwgQ0hUcy4KPiA+Pgo+ID4+IFNvdW5kcyBnb29kIQo+ID4+Cj4gPj4gVGhhbmtz IGZvciB0YWtpbmcgdGhlIHRpbWUgdG8gYW5zd2VyIG15IHF1ZXN0aW9ucyEgSXQncyBkZWZpbml0 ZWx5Cj4gPj4gaGVscGZ1bCBmb3IgbXkgdW5kZXJzdGFuZGluZyBvZiBVU0IuIEknbSBsZWFybmlu ZyBxdWl0ZSBhIGJpdCBvZgo+ID4+IG5ldyBpbmZvcm1hdGlvbiB3aXRoIGVhY2ggZW1haWwgYW5k IGl0J3MgcHJldHR5IGF3ZXNvbWUuCj4gPgo+ID4gTm8gcHJvYmxlbXMgYXQgYWxsLCBoYXBweSB0 byBoZWxwLgo+IAo+IEFueSB1cGRhdGVzIGhlcmU/IEhvcGVmdWxseSB0aGUgcXVpcmsgZmxhZ3Mg YWJvdmUgaGVscGVkLgoKVGhhbmtzIGZvciBmb2xsb3dpbmcgdXAuIE15IHRlYW0gYW5kIEkgd2Vy ZSBkb2luZyBhIGJ1bmNoIG9mIHRlc3RpbmcKdG9kYXkgYXMgd2VsbCBhcyB0aGlzIHBhc3Qgd2Vl a2VuZC4gV2UgYXJlIHN0aWxsIHNlZWluZyBtaXhlZCByZXN1bHRzCndpdGggdGhlIHN1Z2dlc3Rp b24geW91IHByb3ZpZGVkIHRvIHVzIGVhcmxpZXIuIEkgdW5mb3J0dW5hdGVseSBkbyBub3QKaGF2 ZSBhbnkgbG9ncywgdHJhY2VzLCBvciBhbmFseXplciBjYXB0dXJlcyB0byBiYWNrIHRoaXMgdXAg eWV0LCBidXQgSQpob3BlIHRvIGdhdGhlciBtb3JlIGNvbmNyZXRlIGRhdGEgdG9tb3Jyb3cuCgpU aGVyZSB3ZXJlIHR3byBtYWluIGlzc3VlcyB3ZSBvYnNlcnZlZCB3aXRoIHRoZSBxdWlyayBmbGFn cyBhYm92ZToKCiogSG9zdCBtb2RlIG5vIGxvbmdlciB3b3JrZWQgd2l0aCB0aGVzZSBxdWlya3Mg YXBwbGllZC4gUGxlYXNlIGtlZXAgaW4KICBtaW5kIHRoYXQgd2UgYmFja3BvcnRlZCBwYXJ0IG9m IGEgcGF0Y2hzZXQgWzFdIHRvIHN1cHBvcnQgc3dpdGNoaW5nCiAgdGhlIGludGVybmFsIFNTIG11 eCBmcm9tIHRoZSB4SENJIGNvbnRyb2xsZXIgdG8gdGhlIHhEQ0kgY29udHJvbGxlci4KICBBdCBh IHF1aWNrIGdsYW5jZSwgZG8geW91IHNlZSBhbnl0aGluZyBpbiB0aGlzIHBhdGNoc2V0IHRoYXQg eW91IHRoaW5rCiAgbWlnaHQgY2F1c2UgYSBwcm9ibGVtIHdpdGggdGhlIHJvbGUgc3dpdGNoIGRy aXZlciBjb21tdW5pY2F0aW5nIHdpdGgKICB0aGUgeEhDSSBjb250cm9sbGVyIHdoZW4gdGhlIHF1 aXJrcyBhcmUgYXBwbGllZD8KCiogV2Ugc3RpbGwgc2F3IHRoZSBkcm9wIGZyb20gU1MgdG8gSFMg b24gYSBXaW5kb3dzIGxhcHRvcC4gTGludXggYW5kIE1hYwogIHNlZW1lZCB0byBiZSBmaW5lLCBi dXQgdGhlcmUncyBkZWZpbml0ZWx5IGEgY2hhbmNlIHdlIGRpZCBub3QgdGVzdAogIHdpdGggZW5v dWdoIHNhbXBsZXMgdG8gY29uZmlkZW50bHkgc2F5IHRoaXMgcXVpcmsgaXMgc3RhYmxlIHdpdGgg dGhvc2UKICBob3N0cy4KClNvIHRvbW9ycm93IEkgaG9wZSB0byBnYXRoZXIgbW9yZSBjb25jcmV0 ZSBkYXRhIHRvIGJhY2sgdXAgdGhlc2UKZmluZGluZ3MuIE91ciBVU0IgcHJvdG9jb2wgYW5hbHl6 ZXIgaXMgYWxzbyBvdXQtb2Ytb3JkZXIgYXQgdGhlIG1vbWVudCwKc28gd2UgbWlnaHQgbm90IGJl IGFibGUgdG8gZ2V0IGFuYWx5emVyIGRhdGEgZm9yIGEgZGF5IG9yIHR3byBlaXRoZXIuCgpBcmUg dGhlcmUgc29tZSBvdGhlciBxdWlya3MgeW91IHdvdWxkIGxpa2UgdXMgdG8gdHJ5IG91dD8KCk92 ZXIgdGhlIHdlZWtlbmQsIG9uZSBvZiBvdXIgdGVhbSBtZW1iZXJzIHdhcyBoYWNraW5nIGluIHRo ZSBkd2MzIGRyaXZlcgp0byB0cnkgYW5kIGRpc2FibGUgTFBNIGF0IHZhcmlvdXMgcG9pbnRzIGlu IHRoZSBjaGFpbiBvZiBldmVudHMuIEkndmUKYXR0YWNoZWQgYSBwYXRjaCB0aGF0IHdlIGJlbGll dmUgaXMgcHJldHR5IHN0YWJsZS4gV2UgaGF2ZSBuZXZlciBzZWVuIGl0CmRyb3AgZnJvbSBTUyB0 byBIUy4gVVNCIHR5cGUgQSB0byB0eXBlIEMgY29ubmVjdGlvbnMgZnJvbSBhbnkgaG9zdCB0bwpv dXIgZGV2aWNlIHNlZW0gcHJldHR5IHN0YWJsZS4gSSd2ZSBhdHRhY2hlZCBhbiBhcmNoaXZlIGNh bGxlZAoiZ25hcmJveC1zdWNjZXNzLWEtdG8tYy50YXIueHoiIFRoYXQgY29udGFpbnMgdGhlIHRy YWNlIGV2ZW50cyBmb3IgYQpzdWNjZXNzZnVsIHJ1biB3aGVyZSB3ZSBjb25uZWN0IHRoZSBkZXZp Y2UgdG8gYSBXaW5kb3dzIGhvc3QgYW5kIGl0CmVudW1lcmF0ZXMgYXQgU3VwZXJTcGVlZC4KClRo aXMgcGF0Y2ggaXNuJ3QgZW50aXJlbHkgc3RhYmxlIGFzIEkgaGF2ZW4ndCBiZWVuIGFibGUgdG8g Z2V0IGEKcmVsaWFibGUgVVNCIEMtdG8tQyBjb25uZWN0aW9uIG9uIGFueSBob3N0IHlldC4gSSBk byBub3QgaGF2ZSBhbnkgbG9ncwpvciB0cmFjZXMgZm9yIHRoaXMgcGFydGljdWxhciBjYXNlIGFu ZCBJIGhvcGUgdG8gZ2V0IHRoZW0gdG8geW91IHNvb24uCgpEbyB5b3UgcmVtZW1iZXIgdGhlICJm YWlsZWQgdG8gZW5hYmxlIGVwMG91dCIgZXJyb3IgSSBicmllZmx5Cm1lbnRpb25lZCBlYXJsaWVy PyBJIHdhcyBhYmxlIHRvIGNhcHR1cmUgc29tZSB0cmFjZSBldmVudHMgd2hpbGUgdGhpcwpvY2N1 cnMuIFRoaXMgaXNzdWUgb2NjYWlzb25hbGx5IG9jY3VycyB3aGVuIG1vZHByb2JpbmcgZ19tYXNz X3N0b3JhZ2UuClRoZSBleGFjdCBzdGVwcyBhcmUgYXMgZm9sbG93czoKCjEuIHN3aXRjaCBmcm9t IGhvc3QgbW9kZSB0byBkZXZpY2UgbW9kZSAoZWNobyBkZXZpY2UgPgovc3lzL2NsYXNzL3VzYl9y b2xlLy4uLi9yb2xlKQoyLiBtb2Rwcm9iZSBnX21hc3Nfc3RvcmFnZSAuLi4KMy4gVHJ5IGFuZCBy ZXN0IGRldmljZSBtb2RlIHdpdGggYSBob3N0IGNvbXB1dGVyLCBidXQgeW91J2xsIG9ic2VydmUK dGhhdCBkZXZpY2UgbW9kZSBpcyBub3Qgd29ya2luZy4KNC4gbW9kcHJvYmUgLXIgZ19tYXNzX3N0 b3JhZ2UgdG8gcmVtb3ZlIHRoZSBnYWRnZXQgZHJpdmVyLgo1LiBzd2l0Y2ggYmFjayB0byBob3N0 IG1vZGUgKGVjaG8gaG9zdCA+IC9zeXMvY2xhc3MvdXNiX3JvbGUvLi4uL3JvbGUpCjYuIHN3aXRj aCBiYWNrIHRvIGRldmljZSBtb2RlCjcuIG1vZHByb2JlIGdfbWFzc19zdG9yYWdlIC4uLgo4LiBP YnNlcnZlIHRoZSBlcnJvcgoKSSd2ZSBhdHRhY2hlZCB0aGUgdHJhY2VzIGFuZCBkbWVzZyBvdXRw dXQgaW4gYW4gYXJjaGl2ZSB0aXRsZWQKImduYXJib3gtZXAwb3V0LWZhaWx1cmUudGFyLnh6Ii4g UGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBuZWVkIG1vcmUKaW5mb3JtYXRpb24gYWJvdXQgdGhp cyBwYXJ0aWN1bGFyIGlzc3VlLgoKTGFzdGx5LCBJIHN0YXJ0ZWQgZGlnZ2luZyB0aHJvdWdoIHRo ZSBlcnJhdGEgYXZhaWxhYmxlIGZvciBvdXIgU29DCnNlcmllcyBbMl0gYW5kIHRoZXJlIGFyZSBh IGZldyB0aGF0IHN0YW5kIG91dCB0byBtZSwgaW5jbHVkaW5nIENIVDQwLApDSFQ0NywgQ0hUNDgs IGFuZCBDSFQ1MC4gQ0hUNDcgaXMgdGhlIG1vc3QgY29uY2VybmluZyBiZWNhdXNlIEkgcmVjYWxs CnNlZWluZyBhbiAiVW5rbm93biIgTEZQUyBzdGF0dXMgY29taW5nIGZyb20gdGhlIGRldmljZSBh cyBpdCBpcyB0cnlpbmcKdG8gbGVhdmUgVTIuIEkgYXNrZWQgdGhlIHN1cHBvcnQgc3BlY2lhbGlz dHMgb24gb3VyIElQUyB0aWNrZXQgYWJvdXQKdGhlc2UgZXJyYXRhIGFuZCBJJ20gaG9waW5nIHRv IGhlYXIgYmFjayBmcm9tIHRoZW0gd2l0aGluIHRoZSBkYXkuIERvCmFueSBvZiB0aGVzZSBlcnJh dGEgc3RhbmQgb3V0IHRvIHlvdSBhcyBwb3NzaWJsZSBjdWxwcml0cz8KCgpUaGFua3MgZm9yIHRh a2luZyBhIGxvb2sgYXQgYWxsIG9mIHRoaXMgYWdhaW4hCgpDaGVlcnMsClJvYiBXZWJlcgoKWzFd IGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDE4LzMvMjAvMzg3ClsyXSBodHRwczovL3d3dy5pbnRl bC5jb20vY29udGVudC9kYW0vd3d3L3B1YmxpYy91cy9lbi9kb2N1bWVudHMvc3BlY2lmaWNhdGlv bi11cGRhdGVzL2F0b20tejgwMDAtc3BlYy11cGRhdGUucGRmCgpGcm9tIGRlOGI5ZTYzZGYxZTI0 ZDFiOTQwMmFlMTMyMjRlZGJkYWU4MGNkNWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE1pa2UgTGVtbW9uIDxsZW1tb25AZ25hcmJveC5jb20+CkRhdGU6IFN1biwgMzEgTWFyIDIwMTkg MTM6MTg6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBkd2MzOiBEaXNhYmxlIFUxIGFuZCBVMiBs aW5rIHN0YXRlcwoKLS0tCiBkcml2ZXJzL3VzYi9kd2MzL2NvcmUuYyAgIHwgMTAgKysrKysrKysr KwogZHJpdmVycy91c2IvZHdjMy9kZWJ1Zy5oICB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysr KysrCiBkcml2ZXJzL3VzYi9kd2MzL2VwMC5jICAgIHwgMTAgKysrKysrKysrKwogZHJpdmVycy91 c2IvZHdjMy9nYWRnZXQuYyB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZHdjMy9jb3JlLmMgYi9kcml2ZXJzL3Vz Yi9kd2MzL2NvcmUuYwppbmRleCA1M2IyNmU5NzhkOTAuLmI4NjlmZjUzZWU4NiAxMDA2NDQKLS0t IGEvZHJpdmVycy91c2IvZHdjMy9jb3JlLmMKKysrIGIvZHJpdmVycy91c2IvZHdjMy9jb3JlLmMK QEAgLTY0MSw2ICs2NDEsMTYgQEAgc3RhdGljIGludCBkd2MzX2NvcmVfaW5pdChzdHJ1Y3QgZHdj MyAqZHdjKQogCQlnb3RvIGVycjA7CiAJfQogCisJcHJpbnRrKEtFUk5fSU5GTyAiR0JYOiAoZHdj MykgZHdjLT5yZXZpc2lvbj0leCBwYXRjaD0wMDM4LWRpc2FibGUtVTEtVTJcbiIsIGR3Yy0+cmV2 aXNpb24pOworCisJLyoKKwkvLyBUcmllZCBvdmVycmlkaW5nIHRvIG9sZCByZXZpc2lvbiBidXQg aXQganVzdCBodW5nIG9uIHRyYW5zaXRpb24KKwkvLyB0byBtYXNzLXN0b3JhZ2UgbW9kZS4uLgor CXByaW50ayhLRVJOX0lORk8gIkdCWDogKGR3YzMpIE92ZXJyaWRpbmcgZHdjMyByZXZpc2lvbiBm cm9tICV4IHRvICV4IiwKKwkJZHdjLT5yZXZpc2lvbiwgRFdDM19SRVZJU0lPTl8xNzNBKTsKKwlk d2MtPnJldmlzaW9uID0gRFdDM19SRVZJU0lPTl8xNzNBOworCSovCisKIAkvKgogCSAqIFdyaXRl IExpbnV4IFZlcnNpb24gQ29kZSB0byBvdXIgR1VJRCByZWdpc3RlciBzbyBpdCdzIGVhc3kgdG8g ZmlndXJlCiAJICogb3V0IHdoaWNoIGtlcm5lbCB2ZXJzaW9uIGEgYnVnIHdhcyBmb3VuZC4KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2R3YzMvZGVidWcuaCBiL2RyaXZlcnMvdXNiL2R3YzMvZGVi dWcuaAppbmRleCAzM2FiMmEyMDNjMWIuLjIzODVjMjIyMjEyMyAxMDA2NDQKLS0tIGEvZHJpdmVy cy91c2IvZHdjMy9kZWJ1Zy5oCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZGVidWcuaApAQCAtMTI0 LDYgKzEyNCwzNCBAQCBkd2MzX2dhZGdldF9saW5rX3N0cmluZyhlbnVtIGR3YzNfbGlua19zdGF0 ZSBsaW5rX3N0YXRlKQogCX0KIH0KIAorc3RhdGljIGlubGluZSBjb25zdCBjaGFyICoKK2R3YzNf ZHN0c19zcGVlZF9zdHJpbmcodTggc3BlZWQpCit7CisJc3RhdGljIGNoYXIgc3RyWzI1Nl07CisJ c3dpdGNoIChzcGVlZCkgeworCWNhc2UgRFdDM19EU1RTX1NVUEVSU1BFRURfUExVUzogc3ByaW50 ZihzdHIsICJTdXBlci1TcGVlZC1QbHVzIik7IGJyZWFrOworCWNhc2UgRFdDM19EU1RTX1NVUEVS U1BFRUQ6ICAgICAgc3ByaW50ZihzdHIsICJTdXBlci1TcGVlZCIpOyBicmVhazsKKwljYXNlIERX QzNfRFNUU19ISUdIU1BFRUQ6ICAgICAgIHNwcmludGYoc3RyLCAiSGlnaC1TcGVlZCIpOyBicmVh azsKKwljYXNlIERXQzNfRFNUU19GVUxMU1BFRUQ6ICAgICAgIHNwcmludGYoc3RyLCAiRnVsbC1T cGVlZCIpOyBicmVhazsKKwljYXNlIERXQzNfRFNUU19MT1dTUEVFRDogICAgICAgIHNwcmludGYo c3RyLCAiTG93LVNwZWVkIik7IGJyZWFrOworCWRlZmF1bHQ6IHNwcmludGYoc3RyLCAiVU5LTk9X TiIpOworCX0KKwlyZXR1cm4gc3RyOworfQorCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKgor ZHdjM19kcl9tb2RlX3N0cmluZyhlbnVtIHVzYl9kcl9tb2RlIG1vZGUpCit7CisJc3RhdGljIGNo YXIgc3RyWzI1Nl07CisJc3dpdGNoIChtb2RlKSB7CisJY2FzZSBVU0JfRFJfTU9ERV9QRVJJUEhF UkFMOiBzcHJpbnRmKHN0ciwgIkRldmljZS1Nb2RlIik7IGJyZWFrOworCWNhc2UgVVNCX0RSX01P REVfSE9TVDogICAgICAgc3ByaW50ZihzdHIsICJIb3N0LU1vZGUiKTsgYnJlYWs7CisJY2FzZSBV U0JfRFJfTU9ERV9PVEc6ICAgICAgICBzcHJpbnRmKHN0ciwgIk9URy1Nb2RlIik7IGJyZWFrOwor CWRlZmF1bHQ6IHNwcmludGYoc3RyLCAiVW5zdXBwb3J0ZWQgTW9kZSAoJWQpIiwgbW9kZSk7CisJ fQorCXJldHVybiBzdHI7Cit9CisKIC8qKgogICogZHdjM19nYWRnZXRfZXZlbnRfc3RyaW5nIC0g cmV0dXJucyBldmVudCBuYW1lCiAgKiBAZXZlbnQ6IHRoZSBldmVudCBjb2RlCmRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9kd2MzL2VwMC5jIGIvZHJpdmVycy91c2IvZHdjMy9lcDAuYwppbmRleCAy MzMxNDY5Zjk0M2QuLjhjOWJkZDIwZWFkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZHdjMy9l cDAuYworKysgYi9kcml2ZXJzL3VzYi9kd2MzL2VwMC5jCkBAIC00MjAsMTIgKzQyMCwxNCBAQCBz dGF0aWMgaW50IGR3YzNfZXAwX2hhbmRsZV9mZWF0dXJlKHN0cnVjdCBkd2MzICpkd2MsCiAKIAkJ c3dpdGNoICh3VmFsdWUpIHsKIAkJY2FzZSBVU0JfREVWSUNFX1JFTU9URV9XQUtFVVA6CisJCQlk d2MzX3RyYWNlKHRyYWNlX2R3YzNfZ2FkZ2V0LCAiR0JYOiBVU0JfUkVDSVBfREVWSUNFOiBVU0Jf REVWSUNFX1JFTU9URV9XQUtFVVAiKTsKIAkJCWJyZWFrOwogCQkvKgogCQkgKiA5LjQuMSBzYXlz IG9ubHkgb25seSBmb3IgU1MsIGluIEFkZHJlc3NTdGF0ZSBvbmx5IGZvcgogCQkgKiBkZWZhdWx0 IGNvbnRyb2wgcGlwZQogCQkgKi8KIAkJY2FzZSBVU0JfREVWSUNFX1UxX0VOQUJMRToKKwkJCWR3 YzNfdHJhY2UodHJhY2VfZHdjM19nYWRnZXQsICJHQlg6IFVTQl9SRUNJUF9ERVZJQ0U6IFVTQl9E RVZJQ0VfVTFfRU5BQkxFIik7CiAJCQlpZiAoc3RhdGUgIT0gVVNCX1NUQVRFX0NPTkZJR1VSRUQp CiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQlpZiAoKGR3Yy0+c3BlZWQgIT0gRFdDM19EU1RTX1NV UEVSU1BFRUQpICYmCkBAIC00NDEsNiArNDQzLDcgQEAgc3RhdGljIGludCBkd2MzX2VwMF9oYW5k bGVfZmVhdHVyZShzdHJ1Y3QgZHdjMyAqZHdjLAogCQkJYnJlYWs7CiAKIAkJY2FzZSBVU0JfREVW SUNFX1UyX0VOQUJMRToKKwkJCWR3YzNfdHJhY2UodHJhY2VfZHdjM19nYWRnZXQsICJHQlg6IFVT Ql9SRUNJUF9ERVZJQ0U6IFVTQl9ERVZJQ0VfVTJfRU5BQkxFIik7CiAJCQlpZiAoc3RhdGUgIT0g VVNCX1NUQVRFX0NPTkZJR1VSRUQpCiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQlpZiAoKGR3Yy0+ c3BlZWQgIT0gRFdDM19EU1RTX1NVUEVSU1BFRUQpICYmCkBAIC00NTYsOSArNDU5LDExIEBAIHN0 YXRpYyBpbnQgZHdjM19lcDBfaGFuZGxlX2ZlYXR1cmUoc3RydWN0IGR3YzMgKmR3YywKIAkJCWJy ZWFrOwogCiAJCWNhc2UgVVNCX0RFVklDRV9MVE1fRU5BQkxFOgorCQkJZHdjM190cmFjZSh0cmFj ZV9kd2MzX2dhZGdldCwgIkdCWDogVVNCX1JFQ0lQX0RFVklDRTogVVNCX0RFVklDRV9MVE1fRU5B QkxFIik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQljYXNlIFVTQl9ERVZJQ0VfVEVTVF9NT0RF OgorCQkJZHdjM190cmFjZSh0cmFjZV9kd2MzX2dhZGdldCwgIkdCWDogVVNCX1JFQ0lQX0RFVklD RTogVVNCX0RFVklDRV9URVNUX01PREUiKTsKIAkJCWlmICgod0luZGV4ICYgMHhmZikgIT0gMCkK IAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCWlmICghc2V0KQpAQCAtNDc4LDYgKzQ4Myw3IEBAIHN0 YXRpYyBpbnQgZHdjM19lcDBfaGFuZGxlX2ZlYXR1cmUoc3RydWN0IGR3YzMgKmR3YywKIAkJCX0K IAkJCWJyZWFrOwogCQlkZWZhdWx0OgorCQkJZHdjM190cmFjZSh0cmFjZV9kd2MzX2dhZGdldCwg IkdCWDogVVNCX1JFQ0lQX0RFVklDRTogVU5LTk9XTiBGRUFUVVJFIik7CiAJCQlyZXR1cm4gLUVJ TlZBTDsKIAkJfQogCQlicmVhazsKQEAgLTQ4NSw2ICs0OTEsNyBAQCBzdGF0aWMgaW50IGR3YzNf ZXAwX2hhbmRsZV9mZWF0dXJlKHN0cnVjdCBkd2MzICpkd2MsCiAJY2FzZSBVU0JfUkVDSVBfSU5U RVJGQUNFOgogCQlzd2l0Y2ggKHdWYWx1ZSkgewogCQljYXNlIFVTQl9JTlRSRl9GVU5DX1NVU1BF TkQ6CisJCQlkd2MzX3RyYWNlKHRyYWNlX2R3YzNfZ2FkZ2V0LCAiR0JYOiBVU0JfUkVDSVBfSU5U RVJGQUNFOiBVU0JfSU5UUkZfRlVOQ19TVVNQRU5EIik7CiAJCQlpZiAod0luZGV4ICYgVVNCX0lO VFJGX0ZVTkNfU1VTUEVORF9MUCkKIAkJCQkvKiBYWFggZW5hYmxlIExvdyBwb3dlciBzdXNwZW5k ICovCiAJCQkJOwpAQCAtNDkzLDYgKzUwMCw3IEBAIHN0YXRpYyBpbnQgZHdjM19lcDBfaGFuZGxl X2ZlYXR1cmUoc3RydWN0IGR3YzMgKmR3YywKIAkJCQk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoK KwkJCWR3YzNfdHJhY2UodHJhY2VfZHdjM19nYWRnZXQsICJHQlg6IFVTQl9SRUNJUF9JTlRFUkZB Q0U6IFVOS05PV04iKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAJCWJyZWFrOwpAQCAtNTAw LDYgKzUwOCw3IEBAIHN0YXRpYyBpbnQgZHdjM19lcDBfaGFuZGxlX2ZlYXR1cmUoc3RydWN0IGR3 YzMgKmR3YywKIAljYXNlIFVTQl9SRUNJUF9FTkRQT0lOVDoKIAkJc3dpdGNoICh3VmFsdWUpIHsK IAkJY2FzZSBVU0JfRU5EUE9JTlRfSEFMVDoKKwkJCWR3YzNfdHJhY2UodHJhY2VfZHdjM19nYWRn ZXQsICJHQlg6IFVTQl9SRUNJUF9FTkRQT0lOVDogVVNCX0VORFBPSU5UX0hBTFQiKTsKIAkJCWRl cCA9IGR3YzNfd0luZGV4X3RvX2RlcChkd2MsIGN0cmwtPndJbmRleCk7CiAJCQlpZiAoIWRlcCkK IAkJCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTUxMCw2ICs1MTksNyBAQCBzdGF0aWMgaW50IGR3YzNf ZXAwX2hhbmRsZV9mZWF0dXJlKHN0cnVjdCBkd2MzICpkd2MsCiAJCQkJcmV0dXJuIC1FSU5WQUw7 CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKKwkJCWR3YzNfdHJhY2UodHJhY2VfZHdjM19nYWRnZXQs ICJHQlg6IFVTQl9SRUNJUF9FTkRQT0lOVDogVU5LTk9XTiIpOwogCQkJcmV0dXJuIC1FSU5WQUw7 CiAJCX0KIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MzL2dhZGdldC5jIGIv ZHJpdmVycy91c2IvZHdjMy9nYWRnZXQuYwppbmRleCAyNmVmZThjNzUzNWYuLmJhZjg5NjdhZDAx NSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZHdjMy9nYWRnZXQuYworKysgYi9kcml2ZXJzL3Vz Yi9kd2MzL2dhZGdldC5jCkBAIC0xMTUsNiArMTE1LDEwIEBAIGludCBkd2MzX2dhZGdldF9zZXRf bGlua19zdGF0ZShzdHJ1Y3QgZHdjMyAqZHdjLCBlbnVtIGR3YzNfbGlua19zdGF0ZSBzdGF0ZSkK IAl9CiAKIAlyZWcgPSBkd2MzX3JlYWRsKGR3Yy0+cmVncywgRFdDM19EQ1RMKTsKKwlkd2MzX3Ry YWNlKHRyYWNlX2R3YzNfZ2FkZ2V0LCAiR0JYOiBsaW5rIHN0YXRlIGNoYW5nZSByZXF1ZXN0ZWQ6 IFslc10gPT4gWyVzXSIsCisJCWR3YzNfZ2FkZ2V0X2xpbmtfc3RyaW5nKERXQzNfRFNUU19VU0JM TktTVChyZWcpKSwKKwkJZHdjM19nYWRnZXRfbGlua19zdHJpbmcoc3RhdGUpCisJKTsKIAlyZWcg Jj0gfkRXQzNfRENUTF9VTFNUQ0hOR1JFUV9NQVNLOwogCiAJLyogc2V0IHJlcXVlc3RlZCBzdGF0 ZSAqLwpAQCAtMTc2LDYgKzE4MCw4IEBAIHZvaWQgZHdjM19nYWRnZXRfZ2l2ZWJhY2soc3RydWN0 IGR3YzNfZXAgKmRlcCwgc3RydWN0IGR3YzNfcmVxdWVzdCAqcmVxLAogCXN0cnVjdCBkd2MzCQkJ KmR3YyA9IGRlcC0+ZHdjOwogCXVuc2lnbmVkIGludAkJCXVubWFwX2FmdGVyX2NvbXBsZXRlID0g ZmFsc2U7CiAKKwlkd2MzX3RyYWNlKHRyYWNlX2R3YzNfZ2FkZ2V0LCAiR0JYOiBnYWRnZXRfZ2l2 ZWJhY2s6IHN0YXR1cz0lZCAtLT4gJWQiLCByZXEtPnJlcXVlc3Quc3RhdHVzLCBzdGF0dXMpOwor CiAJcmVxLT5zdGFydGVkID0gZmFsc2U7CiAJbGlzdF9kZWwoJnJlcS0+bGlzdCk7CiAJcmVxLT50 cmIgPSBOVUxMOwpAQCAtMTYzNiw2ICsxNjQyLDIxIEBAIHN0YXRpYyBpbnQgX19kd2MzX2dhZGdl dF9zdGFydChzdHJ1Y3QgZHdjMyAqZHdjKQogCXJlZyA9IGR3YzNfcmVhZGwoZHdjLT5yZWdzLCBE V0MzX0RDRkcpOwogCXJlZyAmPSB+KERXQzNfRENGR19TUEVFRF9NQVNLKTsKIAorCS8qIC8vIFRy aWVkIGRpc2FibGluZyBVMSBhbmQgVTIgaGVyZSBidXQgaXQgZGlkbid0IHdvcmsgOigKKwl7CisJ CXUzMgl1MXUyOworCQl1MzIJcmVnMjsKKwkJZHdjM190cmFjZSh0cmFjZV9kd2MzX2dhZGdldCwg IkdCWDogRGlzYWJsaW5nIFUxIGFuZCBVMiIpOworCQlyZWcyID0gZHdjM19yZWFkbChkd2MtPnJl Z3MsIERXQzNfRENUTCk7CisJCXUxdTIgPSByZWcyICYgKERXQzNfRENUTF9JTklUVTJFTkEKKwkJ CQl8IERXQzNfRENUTF9BQ0NFUFRVMkVOQQorCQkJCXwgRFdDM19EQ1RMX0lOSVRVMUVOQQorCQkJ CXwgRFdDM19EQ1RMX0FDQ0VQVFUxRU5BKTsKKwkJcmVnMiAmPSB+dTF1MjsKKwkJZHdjM193cml0 ZWwoZHdjLT5yZWdzLCBEV0MzX0RDVEwsIHJlZzIpOworCX0KKwkqLworCiAJLyoqCiAJICogV09S S0FST1VORDogRFdDMyByZXZpc2lvbiA8IDIuMjBhIGhhdmUgYW4gaXNzdWUKIAkgKiB3aGljaCB3 b3VsZCBjYXVzZSBtZXRhc3RhYmlsaXR5IHN0YXRlIG9uIFJ1bi9TdG9wCkBAIC0xODcxLDYgKzE4 OTIsOCBAQCBzdGF0aWMgaW50IGR3YzNfZ2FkZ2V0X2luaXRfZW5kcG9pbnRzKHN0cnVjdCBkd2Mz ICpkd2MpCiB7CiAJaW50CQkJCXJldDsKIAorCWR3YzNfdHJhY2UodHJhY2VfZHdjM19nYWRnZXQs ICJHQlg6IElOSVQgRU5EUE9JTlRTOiBCRUdJTiIpOworCiAJSU5JVF9MSVNUX0hFQUQoJmR3Yy0+ Z2FkZ2V0LmVwX2xpc3QpOwogCiAJcmV0ID0gZHdjM19nYWRnZXRfaW5pdF9od19lbmRwb2ludHMo ZHdjLCBkd2MtPm51bV9vdXRfZXBzLCAwKTsKQEAgLTE4ODcsNiArMTkxMCw4IEBAIHN0YXRpYyBp bnQgZHdjM19nYWRnZXRfaW5pdF9lbmRwb2ludHMoc3RydWN0IGR3YzMgKmR3YykKIAkJcmV0dXJu IHJldDsKIAl9CiAKKwlkd2MzX3RyYWNlKHRyYWNlX2R3YzNfZ2FkZ2V0LCAiR0JYOiBJTklUIEVO RFBPSU5UUzogRU5EIik7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjExMyw3ICsyMTM4LDkgQEAg c3RhdGljIHZvaWQgZHdjM19lbmRwb2ludF90cmFuc2Zlcl9jb21wbGV0ZShzdHJ1Y3QgZHdjMyAq ZHdjLAogCSAqIFdPUktBUk9VTkQ6IFRoaXMgaXMgdGhlIDJuZCBoYWxmIG9mIFUxL1UyIC0+IFUw IHdvcmthcm91bmQuCiAJICogU2VlIGR3YzNfZ2FkZ2V0X2xpbmtzdHNfY2hhbmdlX2ludGVycnVw dCgpIGZvciAxc3QgaGFsZi4KIAkgKi8KKwkvKiBHQlg6IE9ubHkgZW5hYmxpbmcgZmlyc3QgaGFs ZiBvZiB3b3JrYXJvdW5kIHNvIHRoYXQgd2Ugc3RheSBvdXQgb2YgVTEvVTIgKi8KIAlpZiAoZHdj LT5yZXZpc2lvbiA8IERXQzNfUkVWSVNJT05fMTgzQSkgeworCQlkd2MzX3RyYWNlKHRyYWNlX2R3 YzNfZ2FkZ2V0LCAiR0JYOiAybmQgaGFsZiBvZiBVMS9VMiAtPiBVMCB3b3JrYXJvdW5kIik7CiAJ CXUzMgkJcmVnOwogCQlpbnQJCWk7CiAKQEAgLTIzNzYsNiArMjQwMywxMCBAQCBzdGF0aWMgdm9p ZCBkd2MzX2dhZGdldF9kaXNjb25uZWN0X2ludGVycnVwdChzdHJ1Y3QgZHdjMyAqZHdjKQogewog CWludAkJCXJlZzsKIAorCS8qIC8vIFRyaWVkIHJlbW92aW5nIHRoZXNlIHdyaXRlcyB0byBhdm9p ZCBnb2luZyBpbnRvIFUxL1UyLCBidXQgaXQgZGlkbid0IHdvcmsgOigKKwlkd2MzX3RyYWNlKHRy YWNlX2R3YzNfZ2FkZ2V0LAorCQkiR0JYOiBkaXNjb25uZWN0X2ludGVycnVwdDogTm90IGVudGVy aW5nIFUxIGFuZCBVMiBldmVuIHRob3VnaCB3ZSBzaG91bGQiKTsKKwkqLwogCXJlZyA9IGR3YzNf cmVhZGwoZHdjLT5yZWdzLCBEV0MzX0RDVEwpOwogCXJlZyAmPSB+RFdDM19EQ1RMX0lOSVRVMUVO QTsKIAlkd2MzX3dyaXRlbChkd2MtPnJlZ3MsIERXQzNfRENUTCwgcmVnKTsKQEAgLTI0ODEsOSAr MjUxMiwxMiBAQCBzdGF0aWMgdm9pZCBkd2MzX2dhZGdldF9jb25uZG9uZV9pbnRlcnJ1cHQoc3Ry dWN0IGR3YzMgKmR3YykKIAlyZWcgPSBkd2MzX3JlYWRsKGR3Yy0+cmVncywgRFdDM19EU1RTKTsK IAlzcGVlZCA9IHJlZyAmIERXQzNfRFNUU19DT05ORUNUU1BEOwogCWR3Yy0+c3BlZWQgPSBzcGVl ZDsKLQogCWR3YzNfdXBkYXRlX3JhbV9jbGtfc2VsKGR3Yywgc3BlZWQpOwogCisJZHdjM190cmFj ZSh0cmFjZV9kd2MzX2dhZGdldCwgIkdCWDogY29ubmRvbmVfaW50ZXJydXB0IHNwZWVkPSVzIiwK KwkJZHdjM19kc3RzX3NwZWVkX3N0cmluZyhzcGVlZCksCisJCWR3Yy0+cmV2aXNpb24pOworCiAJ c3dpdGNoIChzcGVlZCkgewogCWNhc2UgRFdDM19EU1RTX1NVUEVSU1BFRURfUExVUzoKIAkJZHdj M19nYWRnZXRfZXAwX2Rlc2Mud01heFBhY2tldFNpemUgPSBjcHVfdG9fbGUxNig1MTIpOwpAQCAt MjYwOSw2ICsyNjQzLDExIEBAIHN0YXRpYyB2b2lkIGR3YzNfZ2FkZ2V0X2xpbmtzdHNfY2hhbmdl X2ludGVycnVwdChzdHJ1Y3QgZHdjMyAqZHdjLAogCWVudW0gZHdjM19saW5rX3N0YXRlCW5leHQg PSBldnRpbmZvICYgRFdDM19MSU5LX1NUQVRFX01BU0s7CiAJdW5zaWduZWQgaW50CQlwd3JvcHQ7 CiAKKwlkd2MzX3RyYWNlKHRyYWNlX2R3YzNfZ2FkZ2V0LCAiR0JYOiBQcm9jZXNzaW5nIExpbmsg Q2hhbmdlIGludGVycnVwdDogWyVzXSAtPiBbJXNdIiwKKwkJZHdjM19nYWRnZXRfbGlua19zdHJp bmcoZHdjLT5saW5rX3N0YXRlKSwKKwkJZHdjM19nYWRnZXRfbGlua19zdHJpbmcobmV4dCkKKwkp OworCiAJLyoKIAkgKiBXT1JLQVJPVU5EOiBEV0MzIDwgMi41MGEgaGF2ZSBhbiBpc3N1ZSB3aGVu IGNvbmZpZ3VyZWQgd2l0aG91dAogCSAqIEhpYmVybmF0aW9uIG1vZGUgZW5hYmxlZCB3aGljaCB3 b3VsZCBzaG93IHVwIHdoZW4gZGV2aWNlIGRldGVjdHMKQEAgLTI2NTUsOCArMjY5NCwxMCBAQCBz dGF0aWMgdm9pZCBkd2MzX2dhZGdldF9saW5rc3RzX2NoYW5nZV9pbnRlcnJ1cHQoc3RydWN0IGR3 YzMgKmR3YywKIAkgKiBTVEFSIzkwMDA0NDY5NTI6IFJUTDogRGV2aWNlIFNTIDogaWYgVTEvVTIg LT5VMCB0YWtlcyA+MTI4dXMKIAkgKiBjb3JlIHNlbmQgTEdPX1V4IGVudGVyaW5nIFUwCiAJICov Ci0JaWYgKGR3Yy0+cmV2aXNpb24gPCBEV0MzX1JFVklTSU9OXzE4M0EpIHsKKwkvLyBpZiAoZHdj LT5yZXZpc2lvbiA8IERXQzNfUkVWSVNJT05fMTgzQSkgeworCXsKIAkJaWYgKG5leHQgPT0gRFdD M19MSU5LX1NUQVRFX1UwKSB7CisJCQlkd2MzX3RyYWNlKHRyYWNlX2R3YzNfZ2FkZ2V0LCAiR0JY OiB1c2luZyB3b3JrYXJvdW5kIGZvciB0cmFuc2l0aW9uIHRvIFUwIik7CiAJCQl1MzIJdTF1MjsK IAkJCXUzMglyZWc7CiAKQEAgLTI3MDYsNiArMjc0Nyw5IEBAIHN0YXRpYyB2b2lkIGR3YzNfZ2Fk Z2V0X2xpbmtzdHNfY2hhbmdlX2ludGVycnVwdChzdHJ1Y3QgZHdjMyAqZHdjLAogc3RhdGljIHZv aWQgZHdjM19nYWRnZXRfc3VzcGVuZF9pbnRlcnJ1cHQoc3RydWN0IGR3YzMgKmR3YywKIAkJCQkJ ICB1bnNpZ25lZCBpbnQgZXZ0aW5mbykKIHsKKwlkd2MzX3RyYWNlKHRyYWNlX2R3YzNfZ2FkZ2V0 LCAiR0JYOiBzdXNwZW5kX2ludGVycnVwdDogc3BlZWQ9JXMiLAorCQlkd2MzX2RzdHNfc3BlZWRf c3RyaW5nKGR3Yy0+c3BlZWQpKTsKKwogCWVudW0gZHdjM19saW5rX3N0YXRlIG5leHQgPSBldnRp bmZvICYgRFdDM19MSU5LX1NUQVRFX01BU0s7CiAKIAlpZiAoZHdjLT5saW5rX3N0YXRlICE9IG5l eHQgJiYgbmV4dCA9PSBEV0MzX0xJTktfU1RBVEVfVTMpCkBAIC0yNzg3LDcgKzI4MzEsOCBAQCBz dGF0aWMgdm9pZCBkd2MzX2dhZGdldF9pbnRlcnJ1cHQoc3RydWN0IGR3YzMgKmR3YywKIAkJZHdj M190cmFjZSh0cmFjZV9kd2MzX2dhZGdldCwgIkVycmF0aWMgRXJyb3IiKTsKIAkJYnJlYWs7CiAJ Y2FzZSBEV0MzX0RFVklDRV9FVkVOVF9DTURfQ01QTDoKLQkJZHdjM190cmFjZSh0cmFjZV9kd2Mz X2dhZGdldCwgIkNvbW1hbmQgQ29tcGxldGUiKTsKKwkJZHdjM190cmFjZSh0cmFjZV9kd2MzX2dh ZGdldCwgIkdCWDogQ29tbWFuZCBDb21wbGV0ZS4gc3BlZWQ9JXMiLAorCQkJZHdjM19kc3RzX3Nw ZWVkX3N0cmluZyhkd2MtPnNwZWVkKSk7CiAJCWJyZWFrOwogCWNhc2UgRFdDM19ERVZJQ0VfRVZF TlRfT1ZFUkZMT1c6CiAJCWR3YzNfdHJhY2UodHJhY2VfZHdjM19nYWRnZXQsICJPdmVyZmxvdyIp OwotLSAKMi4xNC4xCgo=