From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bartlomiej Zolnierkiewicz Subject: Re: [PATCH] fb: fix lost console when the user unplugs a USB adapter Date: Wed, 25 Jul 2018 13:51:42 +0200 Message-ID: <1975707.vO8kdHz3oS@amdc3058> References: <6008699.T6Yd1fn3Dk@amdc3058> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2E11189D6C for ; Wed, 25 Jul 2018 11:51:46 +0000 (UTC) In-reply-to: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mikulas Patocka Cc: Dave Airlie , linux-fbdev@vger.kernel.org, Ladislav Michl , Bernie Thompson , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uZGF5LCBKdWx5IDA5LCAyMDE4IDEwOjI5OjQwIFBNIE1pa3VsYXMgUGF0b2NrYSB3cm90 ZToKPiAKPiBPbiBXZWQsIDQgSnVsIDIwMTgsIEJhcnRsb21pZWogWm9sbmllcmtpZXdpY3ogd3Jv dGU6Cj4gCj4gPiBPbiBUdWVzZGF5LCBKdWx5IDAzLCAyMDE4IDAxOjE4OjU3IFBNIE1pa3VsYXMg UGF0b2NrYSB3cm90ZToKPiA+ID4gCj4gPiA+IE9uIFR1ZSwgMyBKdWwgMjAxOCwgQmFydGxvbWll aiBab2xuaWVya2lld2ljeiB3cm90ZToKPiA+ID4gCj4gPiA+ID4gSGksCj4gPiA+ID4gCj4gPiA+ ID4gT24gU3VuZGF5LCBKdW5lIDAzLCAyMDE4IDExOjQ2OjI5IEFNIE1pa3VsYXMgUGF0b2NrYSB3 cm90ZToKPiA+ID4gPiA+IEkgaGF2ZSBhIFVTQiBkaXNwbGF5IGFkYXB0ZXIgdXNpbmcgdGhlIHVk bGZiIGRyaXZlciBhbmQgSSB1c2UgaXQgb24gYW4gQVJNCj4gPiA+ID4gPiBib2FyZCB0aGF0IGRv ZXNuJ3QgaGF2ZSBhbnkgZ3JhcGhpY3MgY2FyZC4gV2hlbiBJIHBsdWcgdGhlIGFkYXB0ZXIgaW4s IHRoZQo+ID4gPiA+ID4gY29uc29sZSBpcyBwcm9wZXJseSBkaXNwbGF5ZWQsIGhvd2V2ZXIgd2hl biBJIHVucGx1ZyBhbmQgcmUtcGx1ZyB0aGUKPiA+ID4gPiA+IGFkYXB0ZXIsIHRoZSBjb25zb2xl IGlzIG5vdCBkaXNwbGF5ZWQgYW5kIEkgY2FuJ3QgYWNjZXNzIGl0IHVudGlsIEkgcmVib290Cj4g PiA+ID4gPiB0aGUgYm9hcmQuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFRoZSByZWFzb24gaXMgdGhp czoKPiA+ID4gPiA+IFdoZW4gdGhlIGFkYXB0ZXIgaXMgdW5wbHVnZ2VkLCBkbGZiX3VzYl9kaXNj b25uZWN0IGNhbGxzCj4gPiA+ID4gPiB1bmxpbmtfZnJhbWVidWZmZXIsIHRoZW4gaXQgd2FpdHMg dW50aWwgdGhlIHJlZmVyZW5jZSBjb3VudCBkcm9wcyB0byB6ZXJvCj4gPiA+ID4gPiBhbmQgdGhl biBpdCBkZWFsbG9jYXRlcyB0aGUgZnJhbWVidWZmZXIuIEhvd2V2ZXIsIHRoZSBjb25zb2xlIHRo YXQgaXMKPiA+ID4gPiA+IGF0dGFjaGVkIHRvIHRoZSBmcmFtZWJ1ZmZlciBkZXZpY2Uga2VlcHMg dGhlIHJlZmVyZW5jZSBjb3VudCBub24temVybywgc28KPiA+ID4gPiA+IHRoZSBmcmFtZWJ1ZmZl ciBkZXZpY2UgaXMgbmV2ZXIgZGVzdHJveWVkLiBXaGVuIHRoZSBVU0IgYWRhcHRlciBpcyBwbHVn Z2VkCj4gPiA+ID4gPiBhZ2FpbiwgaXQgY3JlYXRlcyBhIG5ldyBkZXZpY2UgL2Rldi9mYjEgYW5k IHRoZSBjb25zb2xlIGlzIG5vdCBhdHRhY2hlZCB0bwo+ID4gPiA+ID4gaXQuCj4gPiA+ID4gPiAK PiA+ID4gPiA+IFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGJ1ZyBieSB1bmJpbmRpbmcgdGhlIGNvbnNv bGUgZnJvbSB1bmxpbmtfZnJhbWVidWZmZXIuCj4gPiA+ID4gPiBUaGUgY29kZSB0byB1bmJpbmQg dGhlIGNvbnNvbGUgaXMgbW92ZWQgZnJvbSBkb191bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyIHRvCj4g PiA+ID4gPiBhIGZ1bmN0aW9uIHVuYmluZF9jb25zb2xlLiBXaGVuIHRoZSBjb25zb2xlIGlzIHVu Ym91bmQsIHRoZSByZWZlcmVuY2UKPiA+ID4gPiA+IGNvdW50IGRyb3BzIHRvIHplcm8gYW5kIHRo ZSB1ZGxmYiBkcml2ZXIgZnJlZXMgdGhlIGZyYW1lYnVmZmVyLiBXaGVuIHRoZQo+ID4gPiA+ID4g YWRhcHRlciBpcyBwbHVnZ2VkIGJhY2ssIGEgbmV3IGZyYW1lYnVmZmVyIGlzIGNyZWF0ZWQgYW5k IHRoZSBjb25zb2xlIGlzCj4gPiA+ID4gPiBhdHRhY2hlZCB0byBpdC4KPiA+ID4gPiA+IAo+ID4g PiA+ID4gU2lnbmVkLW9mZi1ieTogTWlrdWxhcyBQYXRvY2thIDxtcGF0b2NrYUByZWRoYXQuY29t Pgo+ID4gPiA+ID4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiA+ID4gPiAKPiA+ID4gPiBB ZnRlciB0aGlzIGNoYW5nZSB1bmJpbmRfY29uc29sZSgpIHdpbGwgYmUgY2FsbGVkIHR3aWNlIGlu IHRoZSBzdGFuZGFyZAo+ID4gPiA+IGZyYW1lYnVmZmVyIHVucmVnaXN0ZXIgcGF0aDoKPiA+ID4g PiAKPiA+ID4gPiAtIGZpcnN0IHRpbWUsIGRpcmVjdGx5IGJ5IGRvX3VucmVnaXN0ZXJfZnJhbWVi dWZmZXIoKQo+ID4gPiA+IAo+ID4gPiA+IC0gc2Vjb25kIHRpbWUsIGluZGlyZWN0bHkgYnkgZG9f dW5yZWdpc3Rlcl9mcmFtZWJ1ZmZlcigpLT51bmxpbmtfZnJhbWVidWZmZXIoKQo+ID4gPiA+IAo+ ID4gPiA+IFRoaXMgZG9lc24ndCBsb29rIGNvcnJlY3RseS4KPiA+ID4gCj4gPiA+IHVuYmluZF9j b25zb2xlIGNhbGxzIHRoZSBGQl9FVkVOVF9GQl9VTkJJTkQgbm90aWZpZXIsIEZCX0VWRU5UX0ZC X1VOQklORCAKPiA+ID4gZ29lcyB0byB0aGUgZnVuY3Rpb24gZmJjb25fZmJfdW5iaW5kIGFuZCBm YmNvbl9mYl91bmJpbmQgY2hlY2tzIGlmIHRoZSAKPiA+ID4gY29uc29sZSBpcyBib3VuZCB0byB0 aGUgZnJhbWVidWZmZXIgZm9yIHdoaWNoIHVuYmluZCBpcyByZXF1ZXN0ZWQuIFNvIGEgCj4gPiA+ IGRvdWJsZSBjYWxsIHdvbid0IGNhdXNlIGFueSB0cm91YmxlLgo+ID4gCj4gPiBFdmVuIGlmIGl0 IHdvcmtzIG9rYXkgY3VycmVudGx5IGl0IGlzIG5vdCBhIGJlc3QgZGVzaWduIHRvIHNlbmQgZHVw bGljYXRlCj4gPiBldmVudHMgLSBlc3BlY2lhbGx5IHNpbmNlIHRoaXMgY2FuIGJlIGVhc2lseSBh dm9pZGVkIChmb3Igbm9uLXVkbGZiIHVzZXJzKQo+ID4gYnk6Cj4gPiAKPiA+IC0gcmVuYW1pbmcg InZhbmlsbGEiIHVubGlua19mcmFtZWJ1ZmZlcigpIHRvIF9fdW5saW5rX2ZyYW1lYnVmZmVyKCkK PiA+IAo+ID4gLSBjb252ZXJ0aW5nIGRvX3VucmVnaXN0ZXJfZnJhbWVidWZmZXIoKSB0byB1c2Ug X191bmxpbmtfZnJhbWVidWZmZXIoKQo+ID4gCj4gPiAtIGFkZGluZyAibmV3IiB1bmxpbmtfZnJh bWVidWZmZXIoKSB0aGF0IHdpbGwgYWxzbyBjYWxsIHVuYmluZF9jb25zb2xlKCkKPiA+IAo+ID4g PiA+IEFsc28gd2h5IGNhbid0IHVkbGZiIGp1c3QgdXNlIHVucmVnaXN0ZXJfZnJhbWVidWZmZXIo KSBsaWtlIGFsbCBvdGhlcgo+ID4gPiA+IGRyaXZlcnMgKGl0IHVzZXMgdW5saW5rX2ZyYW1lYnVm ZmVyKCkgYW5kIGl0IGlzIHRoZSBvbmx5IHVzZXIgb2YgdGhpcwo+ID4gPiA+IGhlbHBlcik/Cj4g PiA+IAo+ID4gPiBJdCB1c2VzIHVucmVnaXN0ZXJfZnJhbWVidWZmZXIoKSAtIGJ1dCAtIHVucmVn aXN0ZXJfZnJhbWVidWZmZXIoKSBtYXkgb25seSAKPiA+ID4gYmUgY2FsbGVkIHdoZW4gdGhlIG9w ZW4gY291bnQgb2YgdGhlIGZyYW1lYnVmZmVyIGlzIHplcm8uIFNvLCB0aGUgdWRsZmIgCj4gPiA+ IGRyaXZlciB3YWl0cyB1bnRpbCB0aGUgb3BlbiBjb3VudCBkcm9wcyB0byB6ZXJvIGFuZCB0aGVu IGNhbGxzIAo+ID4gPiB1bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyKCkuCj4gPiA+IAo+ID4gPiBCdXQg dGhlIGNvbnNvbGUgc3Vic3lzdGVtIGtlZXBzIHRoZSBmcmFtZWJ1ZmZlciBvcGVuIC0gd2hpY2gg bWVhbnMgdGhhdCBpZiAKPiA+ID4gdXNlciB1c2UgdW5wbHVncyB0aGUgVVNCIGFkYXB0ZXIsIHRo ZSBvcGVuIGNvdW50IHdvbid0IGRyb3AgdG8gemVybyAKPiA+ID4gKGJlY2F1c2UgdGhlIGNvbnNv bGUgaXMgYm91bmQgdG8gaXQpIC0gd2hpY2ggbWVhbnMgdGhhdCAKPiA+ID4gdW5yZWdpc3Rlcl9m cmFtZWJ1ZmZlcigpIHdpbGwgbm90IGJlIGNhbGxlZC4KPiA+IAo+ID4gSXMgaXQgYSByZWFsbHkg dGhlIGNvbnNvbGUgc3Vic3lzdGVtIGFuZCBub3QgdGhlIHVzZXItc3BhY2Uga2VlcGluZwo+ID4g L2Rldi9mYjAgKHdpdGggY29uc29sZSBiaW5kZWQgdG8gZmIwKSBvcGVuZWQgYWZ0ZXIgdGhlIFVT QiBkZXZpY2UKPiA+IHZhbmlzaGVzPwo+IAo+IFllcyAtIEkgdW5wbHVnZ2VkIHRoZSBhZGFwdGVy IHdpdGhvdXQgWHNlcnZlciBydW5uaW5nIGFuZCB3aXRob3V0IGFueSAKPiBvdGhlciBmcmFtZWJ1 ZmZlciBhcHBsaWNhdGlvbiBydW5uaW5nIC0gdGhlIGNvbnNvbGUga2VlcHMgaXQgb3Blbi4KPiAK PiA+IEFmdGVyIHJlLXBsdWdnaW5nIHRoZSBVU0IgZGV2aWNlIC9kZXYvZmIwIHN0YXlzIGFuZCAv ZGV2L2ZiMQo+ID4gYXBwZWFycywgcmlnaHQ/Cj4gCj4gVGhlIGZpbGUgL2Rldi9mYjAgaXMgZGVs ZXRlZCAoYmVjYXVzZSBkbGZiX3VzYl9kaXNjb25uZWN0IGNhbGxzIAo+IHVubGlua19mcmFtZWJ1 ZmZlciksIGJ1dCBpdCBpcyBrZXB0IGluIHRoZSBrZXJuZWwuIFdoZW4gSSByZS1wbHVnIHRoZSAK PiBhZGFwdGVyLCAvZGV2L2ZiMSBpcyBjcmVhdGVkIGJ1dCB0aGUgY29uc29sZSBpcyBzdGlsbCBi b3VuZCB0byAvZGV2L2ZiMC4gCj4gV2hlbiB0aGUgYWRhcHRlciBpcyByZS1wbHVnZ2VkLCBpdCBz aG93cyBqdXN0IGEgZ3JlZW4gc2NyZWVuLgo+IAo+ID4gSSBhbHNvIG1lYW4gdGhhdCB1bnJlZ2lz dGVyX2ZyYW1lYnVmZmVyKCkgc2hvdWxkIGJlIGNhbGxlZCBpbnN0ZWFkCj4gPiB1bmxpbmtfZnJh bWVidWZmZXIoKSwgbm90IGFkZGl0aW9uYWxseSBzb21lIHRpbWUgbGF0ZXIgYXMgaXQgaXMgZG9u ZQo+ID4gY3VycmVudGx5Lgo+IAo+IENhbiB1bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyKCkgYmUgY2Fs bGVkIHdoZW4gL2Rldi9mYjAgaXMgb3BlbiBhcyBhIGZpbGUgCj4gaGFuZGxlIGFuZC9vciBtYXBw ZWQgdG8gc29tZSBwcm9jZXNzPwoKSXQgc2hvdWxkIGJlIE9LLgoKPiA+IE1vcmVvdmVyIHRoZSBk bGZiIDwtPiBmYl9pbmZvIGxvY2tpbmcgc2NoZW1lIHNlZW1zIHRvIGJlIHJldmVyc2VkCj4gPiAo K3JhY3kpIGFzIGl0IGlzIGRsZmIgdGhhdCBzaG91bGQgY29udHJvbCBsaWZldGltZSBvZiBmYl9p bmZvLCB0aGVuCj4gPiBpbiBkbGZiX2ZyZWUoKSB3ZSBzaG91bGQganVzdCBjYWxsIGZyYW1lYnVm ZmVyX3JlbGVhc2UoKSBldGMuCj4gCj4gSG93IHNob3VsZCBpbiB5b3VyIG9waW5pb24gZnJhbWVi dWZmZXIgZGVzdHJ1Y3Rpb24gd29yaz8KPiAKPiBTaG91bGQgdGhlIGRyaXZlciBjb3VudCB0aGUg bnVtYmVyIG9mIHVzZXJzIGFuZCBjYWxsIAo+IHVucmVnaXN0ZXJfZnJhbWVidWZmZXIoKSB3aGVu IGl0IGRyb3BzIHRvIHplcm8/Cj4gCj4gT3Igc2hvdWxkIHRoZSBkcml2ZXIgY2FsbCB1bnJlZ2lz dGVyX2ZyYW1lYnVmZmVyKCkgdW5jb25kaXRpb25hbGx5IHdoZW4gCj4gdGhlIGRldmljZSBpcyB1 bnBsdWdnZWQgYW5kIGRlc3Ryb3kgdGhlIGRldmljZSBpbiB0aGUgImZiX2Rlc3Ryb3kiIAo+IGNh bGxiYWNrPyAoZmJfZGVzdHJveSBzZWVtcyB0byBiZSBjYWxsZWQgYnkgdGhlIGZyYW1lYnVmZmVy IHN1YnN5c3RlbSB3aGVuIAo+IHRoZSBvcGVuIGNvdW50IHJlYWNoZXMgemVybykKClRoZSBkcml2 ZXIgc2hvdWxkIGNhbGwgdW5yZWdpc3Rlcl9mcmFtZWJ1ZmZlcigpIHVuY29uZGl0aW9uYWxseSBp bgpkbGZiX3VzYl9kaXNjb25uZWN0KCkgKGluc3RlYWQgb2YgY2FsbGluZyB1bmxpbmtfZnJhbWVi dWZmZXIoKSkuCgpBbnl3YXkgaXQgc2VlbXMgdGhhdCB0aGlzIHdvdWxkIHJlcXVpcmUgbWFqb3Ig cmV3b3JraW5nIG9mIHRoZSBkcml2ZXIgYW5kCkkgdGhpbmsgdGhhdCBpdCB3b3VsZCBiZSBiZXR0 ZXIgdG8gcHV0IGVmZm9ydHMgaW50byBmaXhpbmcgdWRsLWttcyBkcml2ZXIKaW5zdGVhZC4gRm9y IG5vdyBJIGhhdmUgcXVldWVkIHlvdXIgcGF0Y2ggKHdpdGggX191bnJlZ2lzdGVyX2ZyYW1lYnVm ZmVyKCkKY2hhbmdlIHRvIGtlZXAgdGhlIG9sZCBiZWhhdmlvciBmb3Igbm9uLXVkbGZiIGRyaXZl cnMpIGZvciB2NC4xOSAocGF0Y2gKYXR0YWNoZWQgYXQgdGhlIGVuZCBvZiB0aGlzIG1haWwpLgoK PiBJZiBJIGdyZXAgdGhlIGtlcm5lbCBmb3IgZmJfZGVzdHJveSwgdmVyeSBmZXcgZnJhbWVidWZm ZXIgZHJpdmVycyB1c2UgaXQuCj4gCj4gPiBCVFcgY29tbWVudCBpbiBkbGZiX29wc19yZWxlYXNl KCk6Cj4gPiAKPiA+IC8qIFdlIGNhbid0IGZyZWUgZmJfaW5mbyBoZXJlIC0gZmJtZW0gd2lsbCB0 b3VjaCBpdCB3aGVuIHdlIHJldHVybiAqLwo+ID4gCj4gPiBzZWVtcyB0byBiZSB3cm9uZyBhcyBm Ym1lbSBrZWVwcyBhbiBleHRyYSByZWZlcmVuY2Ugb24gZmJfaW5mbwo+ID4gZHVyaW5nIC0+ZmJf cmVsZWFzZSgpLgo+ID4gCj4gPiA+IFlvdSBtdXN0IHVuYmluZCB0aGUgY29uc29sZSBiZWZvcmUg Y2FsbGluZyB1bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyKCkuIFRoZSAKPiA+IAo+ID4gSG1tPyBUaGUg Zmlyc3QgdGhpbmcgdGhhdCBbZG9fXXVucmVnaXN0ZXJfZnJhbWVidWZmZXIpIGRvZXMgc2VlbXMg dG8gYmUKPiA+IHVuYmluZGluZyB0aGUgY29uc29sZS4KPiA+IAo+ID4gPiBQQ0kgZnJhbWVidWZm ZXIgZHJpdmVycyBkb24ndCBoYXZlIHRoaXMgcHJvYmxlbSBiZWNhdXNlIHRoZSB1c2VyIGlzIG5v dCAKPiA+ID4gZXhwZWN0ZWQgdG8ganVzdCB1bnBsdWcgdGhlIFBDSSBjYXJkIHdoaWxlIGl0IGlz IGJlaW5nIHVzZWQgYnkgdGhlIAo+ID4gPiBjb25zb2xlLgo+ID4gCj4gPiBQQ0kgZnJhbWVidWZm ZXIgZHJpdmVycyBjdXJyZW50bHkgZG9uJ3QgdXNlIC5zdXBwcmVzc19iaW5kX2F0dHJzIGRyaXZl cgo+ID4gZmxhZyBzbyB0aGUgUENJIGRldmljZXMgY2FuIGJlIHVuYmluZGVkIGF0IGFueSB0aW1l IGJ5IHVzaW5nIHN5c2ZzICJ1bmJpbmQiCj4gPiBmdW5jdGlvbmFsaXR5IChJIGd1ZXNzIHdlIHNo b3VsZCBiZSB1c2luZyAuc3VwcHJlc3NfYmluZF9hdHRycyBmbGFnIGlmIGl0Cj4gPiBkb2Vzbid0 IHdvcmsgY3VycmVudGx5KS4KPiAKPiBJIHRlc3RlZCBtYXRyb3ggUENJIGZyYW1lYnVmZmVyIGRy aXZlciBvbiBhbiBvbGQgY29tcHV0ZXIgLSBhbmQgaXQgc3VmZmVycyAKPiBmcm9tIHRoZSBzYW1l IHByb2JsZW0gYXMgdWRsZmIuIFRoZSBtYXRyb3ggZHJpdmVyIGtlZXBzIHRoZSBvcGVuIGNvdW50 IGFuZCAKPiBkZXN0cm95cyBpdHNlbGYgd2hlbiB0aGUgb3BlbiBjb3VudCByZWFjaGVzIHplcm8g LSBidXQgdGhlIGNvbnNvbGUgdGhhdCBpcyAKPiBib3VuZCB0byB0aGUgZHJpdmVyIHByZXZlbnRz IHRoZSBvcGVuIGNvdW50IGZyb20gcmVhY2hpbmcgemVybyAtIHNvIGlmIEkgCj4gdW5iaW5kIHRo ZSBQQ0kgZGV2aWNlIGluIHN5c2ZzLCBpdCBkb2VzIG5vdGhpbmcgYW5kIHRoZSBjb25zb2xlIGlz IHN0aWxsIAo+IGFjdGl2ZSBhbmQgd29ya3MuCgptYXRyb3hmYiBpcyBhIG5vdCBhIGdvb2QgcmVm ZXJlbmNlIGRyaXZlciBhcyBpdCBhbHNvIGRlZmVycyB0aGUgY2FsbCB0bwp1bnJlZ2lzdGVyX2Zy YW1lYnVmZmVyKCkgd2hlbiB0aGUgZGV2aWNlIGlzIHVucGx1Z2dlZDoKCnN0YXRpYyB2b2lkIG1h dHJveGZiX3JlbW92ZShzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvLCBpbnQgZHVtbXkpCnsK Li4uCgltaW5mby0+ZGVhZCA9IDE7CglpZiAobWluZm8tPnVzZWNvdW50KSB7CgkJLyogZGVzdHJv eSBpdCBsYXRlciAqLwotLT4JCXJldHVybjsKCX0KCW1hdHJveGZiX3VucmVnaXN0ZXJfZGV2aWNl KG1pbmZvKTsKCXVucmVnaXN0ZXJfZnJhbWVidWZmZXIoJm1pbmZvLT5mYmNvbik7Ci4uLgp9CiAK QmVzdCByZWdhcmRzLAotLQpCYXJ0bG9taWVqIFpvbG5pZXJraWV3aWN6ClNhbXN1bmcgUiZEIElu c3RpdHV0ZSBQb2xhbmQKU2Ftc3VuZyBFbGVjdHJvbmljcwoKCkZyb206IE1pa3VsYXMgUGF0b2Nr YSA8bXBhdG9ja2FAcmVkaGF0LmNvbT4KU3ViamVjdDogW1BBVENIXSBmYjogZml4IGxvc3QgY29u c29sZSB3aGVuIHRoZSB1c2VyIHVucGx1Z3MgYSBVU0IgYWRhcHRlcgoKSSBoYXZlIGEgVVNCIGRp c3BsYXkgYWRhcHRlciB1c2luZyB0aGUgdWRsZmIgZHJpdmVyIGFuZCBJIHVzZSBpdCBvbiBhbiBB Uk0KYm9hcmQgdGhhdCBkb2Vzbid0IGhhdmUgYW55IGdyYXBoaWNzIGNhcmQuIFdoZW4gSSBwbHVn IHRoZSBhZGFwdGVyIGluLCB0aGUKY29uc29sZSBpcyBwcm9wZXJseSBkaXNwbGF5ZWQsIGhvd2V2 ZXIgd2hlbiBJIHVucGx1ZyBhbmQgcmUtcGx1ZyB0aGUKYWRhcHRlciwgdGhlIGNvbnNvbGUgaXMg bm90IGRpc3BsYXllZCBhbmQgSSBjYW4ndCBhY2Nlc3MgaXQgdW50aWwgSSByZWJvb3QKdGhlIGJv YXJkLgoKVGhlIHJlYXNvbiBpcyB0aGlzOgpXaGVuIHRoZSBhZGFwdGVyIGlzIHVucGx1Z2dlZCwg ZGxmYl91c2JfZGlzY29ubmVjdCBjYWxscwp1bmxpbmtfZnJhbWVidWZmZXIsIHRoZW4gaXQgd2Fp dHMgdW50aWwgdGhlIHJlZmVyZW5jZSBjb3VudCBkcm9wcyB0byB6ZXJvCmFuZCB0aGVuIGl0IGRl YWxsb2NhdGVzIHRoZSBmcmFtZWJ1ZmZlci4gSG93ZXZlciwgdGhlIGNvbnNvbGUgdGhhdCBpcwph dHRhY2hlZCB0byB0aGUgZnJhbWVidWZmZXIgZGV2aWNlIGtlZXBzIHRoZSByZWZlcmVuY2UgY291 bnQgbm9uLXplcm8sIHNvCnRoZSBmcmFtZWJ1ZmZlciBkZXZpY2UgaXMgbmV2ZXIgZGVzdHJveWVk LiBXaGVuIHRoZSBVU0IgYWRhcHRlciBpcyBwbHVnZ2VkCmFnYWluLCBpdCBjcmVhdGVzIGEgbmV3 IGRldmljZSAvZGV2L2ZiMSBhbmQgdGhlIGNvbnNvbGUgaXMgbm90IGF0dGFjaGVkIHRvCml0LgoK VGhpcyBwYXRjaCBmaXhlcyB0aGUgYnVnIGJ5IHVuYmluZGluZyB0aGUgY29uc29sZSBmcm9tIHVu bGlua19mcmFtZWJ1ZmZlci4KVGhlIGNvZGUgdG8gdW5iaW5kIHRoZSBjb25zb2xlIGlzIG1vdmVk IGZyb20gZG9fdW5yZWdpc3Rlcl9mcmFtZWJ1ZmZlciB0bwphIGZ1bmN0aW9uIHVuYmluZF9jb25z b2xlLiBXaGVuIHRoZSBjb25zb2xlIGlzIHVuYm91bmQsIHRoZSByZWZlcmVuY2UKY291bnQgZHJv cHMgdG8gemVybyBhbmQgdGhlIHVkbGZiIGRyaXZlciBmcmVlcyB0aGUgZnJhbWVidWZmZXIuIFdo ZW4gdGhlCmFkYXB0ZXIgaXMgcGx1Z2dlZCBiYWNrLCBhIG5ldyBmcmFtZWJ1ZmZlciBpcyBjcmVh dGVkIGFuZCB0aGUgY29uc29sZSBpcwphdHRhY2hlZCB0byBpdC4KClNpZ25lZC1vZmYtYnk6IE1p a3VsYXMgUGF0b2NrYSA8bXBhdG9ja2FAcmVkaGF0LmNvbT4KQ2M6IERhdmUgQWlybGllIDxhaXJs aWVkQHJlZGhhdC5jb20+CkNjOiBCZXJuaWUgVGhvbXBzb24gPGJlcm5pZUBwbHVnYWJsZS5jb20+ CkNjOiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CkNjOiBzdGFibGVAdmdl ci5rZXJuZWwub3JnCltiLnpvbG5pZXJraWU6IHByZXNlcnZlIG9sZCBiZWhhdmlvciBmb3IgZG9f dW5yZWdpc3Rlcl9mcmFtZWJ1ZmZlcigpXQpTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFpvbG5p ZXJraWV3aWN6IDxiLnpvbG5pZXJraWVAc2Ftc3VuZy5jb20+Ci0tLQogZHJpdmVycy92aWRlby9m YmRldi9jb3JlL2ZibWVtLmMgfCAgIDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK CkluZGV4OiBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9mYm1lbS5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZibWVtLmMJMjAxOC0wNy0yNSAxMjo0OToyMS42 Njg3NjM0MjkgKzAyMDAKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZibWVtLmMJMjAx OC0wNy0yNSAxMjo1MTo0Mi44MjQ3NjY5ODQgKzAyMDAKQEAgLTE3MDMsMTIgKzE3MDMsMTIgQEAg c3RhdGljIGludCBkb19yZWdpc3Rlcl9mcmFtZWJ1ZmZlcihzdHJ1YwogCXJldHVybiAwOwogfQog Ci1zdGF0aWMgaW50IGRvX3VucmVnaXN0ZXJfZnJhbWVidWZmZXIoc3RydWN0IGZiX2luZm8gKmZi X2luZm8pCitzdGF0aWMgaW50IHVuYmluZF9jb25zb2xlKHN0cnVjdCBmYl9pbmZvICpmYl9pbmZv KQogewogCXN0cnVjdCBmYl9ldmVudCBldmVudDsKLQlpbnQgaSwgcmV0ID0gMDsKKwlpbnQgcmV0 OworCWludCBpID0gZmJfaW5mby0+bm9kZTsKIAotCWkgPSBmYl9pbmZvLT5ub2RlOwogCWlmIChp IDwgMCB8fCBpID49IEZCX01BWCB8fCByZWdpc3RlcmVkX2ZiW2ldICE9IGZiX2luZm8pCiAJCXJl dHVybiAtRUlOVkFMOwogCkBAIC0xNzIzLDE3ICsxNzIzLDI5IEBAIHN0YXRpYyBpbnQgZG9fdW5y ZWdpc3Rlcl9mcmFtZWJ1ZmZlcihzdHIKIAl1bmxvY2tfZmJfaW5mbyhmYl9pbmZvKTsKIAljb25z b2xlX3VubG9jaygpOwogCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBfX3VubGlua19m cmFtZWJ1ZmZlcihzdHJ1Y3QgZmJfaW5mbyAqZmJfaW5mbyk7CisKK3N0YXRpYyBpbnQgZG9fdW5y ZWdpc3Rlcl9mcmFtZWJ1ZmZlcihzdHJ1Y3QgZmJfaW5mbyAqZmJfaW5mbykKK3sKKwlzdHJ1Y3Qg ZmJfZXZlbnQgZXZlbnQ7CisJaW50IHJldDsKKworCXJldCA9IHVuYmluZF9jb25zb2xlKGZiX2lu Zm8pOworCiAJaWYgKHJldCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlwbV92dF9zd2l0Y2hfdW5y ZWdpc3RlcihmYl9pbmZvLT5kZXYpOwogCi0JdW5saW5rX2ZyYW1lYnVmZmVyKGZiX2luZm8pOwor CV9fdW5saW5rX2ZyYW1lYnVmZmVyKGZiX2luZm8pOwogCWlmIChmYl9pbmZvLT5waXhtYXAuYWRk ciAmJgogCSAgICAoZmJfaW5mby0+cGl4bWFwLmZsYWdzICYgRkJfUElYTUFQX0RFRkFVTFQpKQog CQlrZnJlZShmYl9pbmZvLT5waXhtYXAuYWRkcik7CiAJZmJfZGVzdHJveV9tb2RlbGlzdCgmZmJf aW5mby0+bW9kZWxpc3QpOwotCXJlZ2lzdGVyZWRfZmJbaV0gPSBOVUxMOworCXJlZ2lzdGVyZWRf ZmJbZmJfaW5mby0+bm9kZV0gPSBOVUxMOwogCW51bV9yZWdpc3RlcmVkX2ZiLS07CiAJZmJfY2xl YW51cF9kZXZpY2UoZmJfaW5mbyk7CiAJZXZlbnQuaW5mbyA9IGZiX2luZm87CkBAIC0xNzQ2LDcg KzE3NTgsNyBAQCBzdGF0aWMgaW50IGRvX3VucmVnaXN0ZXJfZnJhbWVidWZmZXIoc3RyCiAJcmV0 dXJuIDA7CiB9CiAKLWludCB1bmxpbmtfZnJhbWVidWZmZXIoc3RydWN0IGZiX2luZm8gKmZiX2lu Zm8pCitzdGF0aWMgaW50IF9fdW5saW5rX2ZyYW1lYnVmZmVyKHN0cnVjdCBmYl9pbmZvICpmYl9p bmZvKQogewogCWludCBpOwogCkBAIC0xNzU4LDYgKzE3NzAsMjAgQEAgaW50IHVubGlua19mcmFt ZWJ1ZmZlcihzdHJ1Y3QgZmJfaW5mbyAqZgogCQlkZXZpY2VfZGVzdHJveShmYl9jbGFzcywgTUtE RVYoRkJfTUFKT1IsIGkpKTsKIAkJZmJfaW5mby0+ZGV2ID0gTlVMTDsKIAl9CisKKwlyZXR1cm4g MDsKK30KKworaW50IHVubGlua19mcmFtZWJ1ZmZlcihzdHJ1Y3QgZmJfaW5mbyAqZmJfaW5mbykK K3sKKwlpbnQgcmV0OworCisJcmV0ID0gX191bmxpbmtfZnJhbWVidWZmZXIoZmJfaW5mbyk7CisJ aWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXVuYmluZF9jb25zb2xlKGZiX2luZm8pOworCiAJ cmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKHVubGlua19mcmFtZWJ1ZmZlcik7CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK