From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH v5 27/35] drm/i915: Added debug state dump facilities to scheduler Date: Tue, 15 Mar 2016 12:53:17 +0200 Message-ID: <1458039197.9071.6.camel@linux.intel.com> References: <1455805644-6450-1-git-send-email-John.C.Harrison@Intel.com> <1455805644-6450-28-git-send-email-John.C.Harrison@Intel.com> <1457353877.14727.24.camel@linux.intel.com> <56E2F49C.8010107@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 2C7AD6E1FF for ; Tue, 15 Mar 2016 10:53:01 +0000 (UTC) In-Reply-To: <56E2F49C.8010107@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John Harrison , Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org SGksCgpPbiBwZSwgMjAxNi0wMy0xMSBhdCAxNjozOCArMDAwMCwgSm9obiBIYXJyaXNvbiB3cm90 ZToKPiBUaGUgaW50ZW50aW9uIG9mIHRoZSBzdGF0ZSBkdW1wIGNvZGUgaXMgbm90IHJlYWxseSBm b3IgaXQgdG8gYmUgYSB1c2VywqAKPiBhY2Nlc3NpYmxlIGRlYnVnZnMgZW50cnkgKGFsdGhvdWdo IG9uZSBvZiB0aGUgbGF0ZXIgcGF0Y2hlcyBkb2VzIGFkZCBhwqAKPiBkZWJ1Z2ZzIGludGVyZmFj ZSkuIEl0IGlzIG1vcmUgaW50ZW5kZWQgZm9yIGRlYnVnZ2luZyBsb2NrIHVwcyBhbmTCoAo+IHVu ZXhwZWN0ZWQgYmVoYXZpb3VyIGJ5IGFkZGluZyBhIGR1bXAgZnVuY3Rpb24gY2FsbCB0byB3aGF0 ZXZlciBXQVJOX09OwqAKPiBvciBzaW1pbGFyIGlzIGJlaW5nIGhpdC4gU28gaW4gdGhlb3J5LCB0 aGUgY29kZSBzaG91bGQgbm90IGJlIG5lY2Vzc2FyecKgCj4gYW5kIHRoZXJlIGlzIG5vIHBvaW50 IHVwc3RyZWFtaW5nIGl0LiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQgZG9lcyBjb21lIGluwqAKPiB2 ZXJ5IGhhbmR5IHdoZW4gZGVidWdnaW5nIHNjaGVkdWxlciByZWxhdGVkIGlzc3VlcyBhbmQgaXQg aXMgY29tcGxpY2F0ZWTCoAo+IGVub3VnaCB0aGF0IHlvdSBjYW4ndCBqdXN0IGtub2NrIGl0IHVw IGluIGZpdmUgbWludXRlcyB3aGVuIGEgYnVnIHJlcG9ydMKgCj4gaXMgbG9nZ2VkLgo+IAo+IFRo ZSBjb2RlIGNvdWxkIGNlcnRhaW5seSBiZSBtb3ZlZCBpbnRvIGEgc2VwYXJhdGUgZmlsZSwgZS5n LsKgCj4gaTkxNV9zY2hlZHVsZXJfZGVidWcuYy4gSSBkb24ndCB0aGluayBpdCB3b3VsZCBiZSBn b29kIHRvIG1vdmUgaXQgdG/CoAo+IGRlYnVnZnMgYW5kIG1ha2UgaXQgYWxsICdzZXFfcHJpbnRm JyBzdHlsZSBvdXRwdXQgb25seS4gSXQgaXMgbXVjaCBtb3JlwqAKPiB1c2UgYXMgb3JkaW5hcnkg cHJpbnRrIHN0eWxlIG91dHB1dCBzbyB5b3UgY2FuIGNhbGwgaXQgZGlyZWN0bHkgYXQgdGhlwqAK PiBwb2ludCBvZiBkZXRlY3RpbmcgYW4gaW5jb25zaXN0ZW50IHN0YXRlIGFuZCBnZXQgdGhlIGRt ZXNnIG91dHB1dCBwcmlvcsKgCj4gdG8gdGhlIGtlcm5lbCBwYW5pYy4KPiAKCkluIHRoYXQgY2Fz ZSwgaXQgY291bGQgYmUgbW92ZWQgdG8gaXQncyBvd24gZmlsZSBhbmQgZW5hYmxlZApjb25kaXRp b25hbGx5IHRocm91Z2ggYSBjb25maWcgcGFyYW1ldGVyPwoKSWYgd2Ugd2FudCB0byBrZWVwIGZl YXR1cmUgZGVidWdnaW5nIGNvZGUsIHRoZXJlIHNob3VsZCBiZSBhIGNvbmZpZ3VyZSBzd2l0Y2gg d2l0aGluIGk5MTUgY29uZmlndXJhdGlvbiB0byBlbmFibGUgdGhlIGJpdHMuCgpDQydkIERhbmll bCBhbmQgQ2hyaXMgYXMgdGhpcyByZWxhdGVzIHRvIHRoZSBmYXVsdCBpbmplY3Rpb24gY29kZSB0 b28uClNvbWV0aGluZyBhbG9uZyBDT05GSUdfSTkxNV9ERUJVR19TQ0hFRFVMRVIgYW5kIENPTkZJ R19JOTE1X0RFQlVHX0ZBVUxUX0lOSkVDVCBjb3VsZCBiZSBhZGRlZD8KClJlZ2FyZHMsIEpvb25h cwoKPiAKPiBPbiAwNy8wMy8yMDE2IDEyOjMxLCBKb29uYXMgTGFodGluZW4gd3JvdGU6Cj4gPiAK PiA+IEhpLAo+ID4gCj4gPiBPbiB0bywgMjAxNi0wMi0xOCBhdCAxNDoyNyArMDAwMCwgSm9obi5D LkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiA+ID4gCj4gPiA+IEZyb206IEpvaG4gSGFycmlz b24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4gPiA+IAo+ID4gPiBXaGVuIGRlYnVnZ2lu ZyBiYXRjaCBidWZmZXIgc3VibWlzc2lvbiBpc3N1ZXMsIGl0IGlzIHVzZWZ1bCB0byBiZSBhYmxl Cj4gPiA+IHRvIHNlZSB3aGF0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzY2hlZHVsZXIgaXMu IFRoaXMgY2hhbmdlIGFkZHMKPiA+ID4gZnVuY3Rpb25zIGZvciBkZWNvZGluZyB0aGUgaW50ZXJu YWwgc2NoZWR1bGVyIHN0YXRlIGFuZCByZXBvcnRpbmcgaXQuCj4gPiA+IAo+ID4gPiB2MzogVXBk YXRlZCBhIGRlYnVnIG1lc3NhZ2Ugd2l0aCB0aGUgbmV3IHN0YXRlX3N0cigpIGZ1bmN0aW9uLgo+ ID4gPiAKPiA+ID4gdjQ6IFdyYXBwZWQgc29tZSBsb25nIGxpbmVzIHRvIGtlZXAgdGhlIHN0eWxl IGNoZWNrZXIgaGFwcHkuIFJlbW92ZWQKPiA+ID4gdGhlIGZlbmNlL3N5bmMgY29kZSBhcyB0aGF0 IHdpbGwgbm93IGJlIHBhcnQgb2YgYSBzZXBhcmF0ZSBwYXRjaCBzZXJpZXMuCj4gPiA+IAo+ID4g PiB2NTogUmVtb3ZlZCBmb3J3YXJkIGRlY2xhcmF0aW9ucyBhbmQgd2hpdGUgc3BhY2UuIEFkZGVk IGRvY3VtZW50YXRpb24uCj4gPiA+IFtKb29uYXMgTGFodGluZW5dCj4gPiA+IAo+ID4gPiBBbHNv IHNxdWFzaGVkIGluIGxhdGVyIHBhdGNoIHRvIGFkZCBzZXFubyBpbmZvcm1hdGlvbiBmcm9tIHRo ZSBzdGFydC4KPiA+ID4gSXQgd2FzIG9ubHkgYmVpbmcgYWRkZWQgaW4gYSBzZXBhcmF0ZSBwYXRj aCBkdWUgdG8gaGlzdG9yaWNhbCByZWFzb25zCj4gPiA+IHdoaWNoIGhhdmUgc2luY2UgZ29uZSBh d2F5Lgo+ID4gPiAKPiA+ID4gRm9yOiBWSVotMTU4Nwo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb2hu IEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+ID4gPiBDYzogSm9vbmFzIExh aHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4g wqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYyB8IDMwMiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystCj4gPiA+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc2NoZWR1bGVyLmggfMKgwqAxNSArKwo+ID4gPiDCoCAyIGZpbGVzIGNoYW5nZWQsIDMxNSBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3NjaGVkdWxlci5jCj4gPiA+IGluZGV4IGY3ZjI5ZDUuLmQwZWVkNTIgMTAwNjQ0Cj4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwo+ID4gPiBAQCAtNDAsNiAr NDAsMTE3IEBAIGJvb2wgaTkxNV9zY2hlZHVsZXJfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ID4gPiDCoMKgCXJldHVybiBkZXZfcHJpdi0+c2NoZWR1bGVyICE9IE5VTEw7Cj4g PiA+IMKgIH0KPiA+ID4gCj4gPiBUaGVzZSBzb3J0IG9mIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW4g aTkxNV9kZWJ1Z2ZzLmMsIHNvIHRoYXQgbm9ib2R5Cj4gPiBldmVuIHRoaW5rcyBvZiB1c2luZyB0 aGVtIGZvciBvdGhlciBwdXJwb3Nlcy4KPiA+IAo+ID4gPiAKPiA+ID4gwqDCoAo+ID4gPiArY29u c3QgY2hhciAqaTkxNV9xZV9zdGF0ZV9zdHIoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2Vu dHJ5ICpub2RlKQo+ID4gPiArewo+ID4gPiArCXN0YXRpYyBjaGFyCXN0cls1MF07Cj4gPiA+ICsJ Y2hhcgkJKnB0ciA9IHN0cjsKPiA+ID4gKwo+ID4gPiArCSoocHRyKyspID0gbm9kZS0+YnVtcGVk ID8gJ0InIDogJy0nLAo+ID4gPiArCSoocHRyKyspID0gaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0 ZWQobm9kZS0+cGFyYW1zLnJlcXVlc3QpID8gJ0MnIDogJy0nOwo+ID4gPiArCj4gPiBFc3BlY2lh bGx5IHRoaXMga2luZCBvZiBjb2RlIG5lZWRzIHRvIGJlIGluIGk5MTVfZGVidWdmcy5jLiBJJ2QK PiA+IGltcGxlbWVudCBuZXcgY29kZSBtb3JlIGFsb25nIGxpbmVzIG9mIGk5MTVfc3NldV9zdGF0 dXMoKSwgYnV0IEkgc2VlCj4gPiB0aGlzIGtpbmQgb2YgY29kZSB3YXMgcHJldmlvdXNseSBtZXJn ZWQuCj4gPiAKPiA+ID4gCj4gPiA+ICsJKnB0ciA9IDA7Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4g c3RyOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtjaGFyIGk5MTVfc2NoZWR1bGVyX3F1ZXVlX3N0 YXR1c19jaHIoZW51bSBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9zdGF0dXMgc3RhdHVzKQo+ID4gPiAr ewo+ID4gPiArCXN3aXRjaCAoc3RhdHVzKSB7Cj4gPiA+ICsJY2FzZSBpOTE1X3Nxc19ub25lOgo+ ID4gPiArCXJldHVybiAnTic7Cj4gPiA+ICsKPiA+ID4gKwljYXNlIGk5MTVfc3FzX3F1ZXVlZDoK PiA+ID4gKwlyZXR1cm4gJ1EnOwo+ID4gPiArCj4gPiA+ICsJY2FzZSBpOTE1X3Nxc19wb3BwZWQ6 Cj4gPiA+ICsJcmV0dXJuICdYJzsKPiA+ID4gKwo+ID4gPiArCWNhc2UgaTkxNV9zcXNfZmx5aW5n Ogo+ID4gPiArCXJldHVybiAnRic7Cj4gPiA+ICsKPiA+ID4gKwljYXNlIGk5MTVfc3FzX2NvbXBs ZXRlOgo+ID4gPiArCXJldHVybiAnQyc7Cj4gPiA+ICsKPiA+ID4gKwljYXNlIGk5MTVfc3FzX2Rl YWQ6Cj4gPiA+ICsJcmV0dXJuICdEJzsKPiA+ID4gKwo+ID4gPiArCWRlZmF1bHQ6Cj4gPiA+ICsJ YnJlYWs7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiBCYWQgaW5kZW50Lgo+ID4gCj4gPiA+IAo+ID4g PiArCXJldHVybiAnPyc7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK2NvbnN0IGNoYXIgKmk5MTVf c2NoZWR1bGVyX3F1ZXVlX3N0YXR1c19zdHIoCj4gPiA+ICsJCQkJZW51bSBpOTE1X3NjaGVkdWxl cl9xdWV1ZV9zdGF0dXMgc3RhdHVzKQo+ID4gPiArewo+ID4gPiArCXN0YXRpYyBjaGFyCXN0cls1 MF07Cj4gPiA+ICsKPiA+ID4gKwlzd2l0Y2ggKHN0YXR1cykgewo+ID4gPiArCWNhc2UgaTkxNV9z cXNfbm9uZToKPiA+ID4gKwlyZXR1cm4gIk5vbmUiOwo+ID4gPiArCj4gPiA+ICsJY2FzZSBpOTE1 X3Nxc19xdWV1ZWQ6Cj4gPiA+ICsJcmV0dXJuICJRdWV1ZWQiOwo+ID4gPiArCj4gPiA+ICsJY2Fz ZSBpOTE1X3Nxc19wb3BwZWQ6Cj4gPiA+ICsJcmV0dXJuICJQb3BwZWQiOwo+ID4gPiArCj4gPiA+ ICsJY2FzZSBpOTE1X3Nxc19mbHlpbmc6Cj4gPiA+ICsJcmV0dXJuICJGbHlpbmciOwo+ID4gPiAr Cj4gPiA+ICsJY2FzZSBpOTE1X3Nxc19jb21wbGV0ZToKPiA+ID4gKwlyZXR1cm4gIkNvbXBsZXRl IjsKPiA+ID4gKwo+ID4gPiArCWNhc2UgaTkxNV9zcXNfZGVhZDoKPiA+ID4gKwlyZXR1cm4gIkRl YWQiOwo+ID4gPiArCj4gPiA+ICsJZGVmYXVsdDoKPiA+ID4gKwlicmVhazsKPiA+ID4gKwl9Cj4g PiA+ICsKPiA+ID4gKwlzcHJpbnRmKHN0ciwgIltVbmtub3duXyVkIV0iLCBzdGF0dXMpOwo+ID4g PiArCXJldHVybiBzdHI7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK2NvbnN0IGNoYXIgKmk5MTVf c2NoZWR1bGVyX2ZsYWdfc3RyKHVpbnQzMl90IGZsYWdzKQo+ID4gPiArewo+ID4gPiArCXN0YXRp YyBjaGFyIHN0clsxMDBdOwo+ID4gPiArCWNoYXIgKnB0ciA9IHN0cjsKPiA+ID4gKwo+ID4gPiAr CSpwdHIgPSAwOwo+ID4gPiArCj4gPiA+ICsjZGVmaW5lIFRFU1RfRkxBRyhmbGFnLCBtc2cpCQkJ CQkJXAo+ID4gPiArCWRvIHsJCQkJCQkJCVwKPiA+ID4gKwkJaWYgKGZsYWdzICYgKGZsYWcpKSB7 CQkJCQlcCj4gPiA+ICsJCQlzdHJjcHkocHRyLCBtc2cpOwkJCQlcCj4gPiA+ICsJCQlwdHIgKz0g c3RybGVuKHB0cik7CQkJCVwKPiA+ID4gKwkJCWZsYWdzICY9IH4oZmxhZyk7CQkJCVwKPiA+ID4g KwkJfQkJCQkJCQlcCj4gPiA+ICsJfSB3aGlsZSAoMCkKPiA+ID4gKwo+ID4gPiArCVRFU1RfRkxB RyhpOTE1X3NmX2ludGVycnVwdHNfZW5hYmxlZCwgIkludE9ufCIpOwo+ID4gPiArCVRFU1RfRkxB RyhpOTE1X3NmX3N1Ym1pdHRpbmcswqDCoMKgwqDCoMKgwqDCoMKgIlN1Ym1pdHRpbmd8Iik7Cj4g PiA+ICsJVEVTVF9GTEFHKGk5MTVfc2ZfZHVtcF9mb3JjZSzCoMKgwqDCoMKgwqDCoMKgwqAiRHVt cEZvcmNlfCIpOwo+ID4gPiArCVRFU1RfRkxBRyhpOTE1X3NmX2R1bXBfZGV0YWlscyzCoMKgwqDC oMKgwqDCoCJEdW1wRGV0YWlsc3wiKTsKPiA+ID4gKwlURVNUX0ZMQUcoaTkxNV9zZl9kdW1wX2Rl cGVuZGVuY2llcyzCoMKgIkR1bXBEZXBzfCIpOwo+ID4gPiArCVRFU1RfRkxBRyhpOTE1X3NmX2R1 bXBfc2Vxbm8swqDCoMKgwqDCoMKgwqDCoMKgIkR1bXBTZXFub3wiKTsKPiA+ID4gKwo+ID4gPiAr I3VuZGVmIFRFU1RfRkxBRwo+ID4gPiArCj4gPiA+ICsJaWYgKGZsYWdzKSB7Cj4gPiA+ICsJCXNw cmludGYocHRyLCAiVW5rbm93bl8weCVYISIsIGZsYWdzKTsKPiA+ID4gKwkJcHRyICs9IHN0cmxl bihwdHIpOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWlmIChwdHIgPT0gc3RyKQo+ID4gPiAr CQlzdHJjcHkoc3RyLCAiLSIpOwo+ID4gPiArCWVsc2UKPiA+ID4gKwkJcHRyWy0xXSA9IDA7Cj4g PiA+ICsKPiA+ID4gKwlyZXR1cm4gc3RyOwo+ID4gPiArfTsKPiA+ID4gKwo+ID4gPiDCoCAvKioK PiA+ID4gwqDCoMKgKiBpOTE1X3NjaGVkdWxlcl9pbml0IC0gSW5pdGlhbGlzZSB0aGUgc2NoZWR1 bGVyLgo+ID4gPiDCoMKgwqAqIEBkZXY6IERSTSBkZXZpY2UKPiA+ID4gQEAgLTEwMjQsNiArMTEz NSwxOTMgQEAgdm9pZCBpOTE1X3NjaGVkdWxlcl93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQo+ID4gPiDCoMKgCQlpOTE1X3NjaGVkdWxlcl9wcm9jZXNzX3dvcmsocmluZyk7 Cj4gPiA+IMKgIH0KPiA+ID4gwqDCoAo+ID4gPiArc3RhdGljIGludCBpOTE1X3NjaGVkdWxlcl9k dW1wX2xvY2tlZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ID4gPiArCQkJCcKgwqDC oMKgwqDCoGNvbnN0IGNoYXIgKm1zZykKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwo+ID4gPiArCXN0cnVj dCBpOTE1X3NjaGVkdWxlciAqc2NoZWR1bGVyID0gZGV2X3ByaXYtPnNjaGVkdWxlcjsKPiA+ID4g KwlzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgKm5vZGU7Cj4gPiA+ICsJaW50IGZs eWluZyA9IDAsIHF1ZXVlZCA9IDAsIGNvbXBsZXRlID0gMCwgb3RoZXIgPSAwOwo+ID4gPiArCXN0 YXRpYyBpbnQgb2xkX2ZseWluZyA9IC0xLCBvbGRfcXVldWVkID0gLTEsIG9sZF9jb21wbGV0ZSA9 IC0xOwo+ID4gPiArCWJvb2wgYl9kdW1wOwo+ID4gPiArCWNoYXIgYnJrdFsyXSA9IHsgJzwnLCAn PicgfTsKPiA+ID4gKwo+ID4gPiArCWlmICghcmluZykKPiA+ID4gKwkJcmV0dXJuIC1FSU5WQUw7 Cj4gPiA+ICsKPiA+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5vZGUsICZzY2hlZHVsZXItPm5v ZGVfcXVldWVbcmluZy0+aWRdLCBsaW5rKSB7Cj4gPiA+ICsJCWlmIChJOTE1X1NRU19JU19RVUVV RUQobm9kZSkpCj4gPiA+ICsJCQlxdWV1ZWQrKzsKPiA+ID4gKwkJZWxzZSBpZiAoSTkxNV9TUVNf SVNfRkxZSU5HKG5vZGUpKQo+ID4gPiArCQkJZmx5aW5nKys7Cj4gPiA+ICsJCWVsc2UgaWYgKEk5 MTVfU1FTX0lTX0NPTVBMRVRFKG5vZGUpKQo+ID4gPiArCQkJY29tcGxldGUrKzsKPiA+ID4gKwkJ ZWxzZQo+ID4gPiArCQkJb3RoZXIrKzsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwliX2R1bXAg PSAoZmx5aW5nICE9IG9sZF9mbHlpbmcpIHx8Cj4gPiA+ICsJCcKgKHF1ZXVlZCAhPSBvbGRfcXVl dWVkKSB8fAo+ID4gPiArCQnCoChjb21wbGV0ZSAhPSBvbGRfY29tcGxldGUpOwo+ID4gPiArCWlm IChzY2hlZHVsZXItPmZsYWdzW3JpbmctPmlkXSAmIGk5MTVfc2ZfZHVtcF9mb3JjZSkgewo+ID4g PiArCQlpZiAoIWJfZHVtcCkgewo+ID4gPiArCQkJYl9kdW1wID0gdHJ1ZTsKPiA+ID4gKwkJCWJy a3RbMF0gPSAneyc7Cj4gPiA+ICsJCQlicmt0WzFdID0gJ30nOwo+ID4gPiArCQl9Cj4gPiA+ICsK PiA+ID4gKwkJc2NoZWR1bGVyLT5mbGFnc1tyaW5nLT5pZF0gJj0gfmk5MTVfc2ZfZHVtcF9mb3Jj ZTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlpZiAoYl9kdW1wKSB7Cj4gPiA+ICsJCW9sZF9m bHlpbmfCoMKgwqA9IGZseWluZzsKPiA+ID4gKwkJb2xkX3F1ZXVlZMKgwqDCoD0gcXVldWVkOwo+ ID4gPiArCQlvbGRfY29tcGxldGUgPSBjb21wbGV0ZTsKPiA+ID4gKwkJRFJNX0RFQlVHX0RSSVZF UigiPCVzPiBROiUwMmQsIEY6JTAyZCwgQzolMDJkLCBPOiUwMmQsICIKPiA+ID4gKwkJCQnCoCJG bGFncyA9ICVzLCBOZXh0ID0gJWQ6JWQgJWMlcyVjXG4iLAo+ID4gPiArCQkJCcKgcmluZy0+bmFt ZSwgcXVldWVkLCBmbHlpbmcsIGNvbXBsZXRlLCBvdGhlciwKPiA+ID4gKwkJCQnCoGk5MTVfc2No ZWR1bGVyX2ZsYWdfc3RyKHNjaGVkdWxlci0+ZmxhZ3NbcmluZy0+aWRdKSwKPiA+ID4gKwkJCQnC oGRldl9wcml2LT5yZXF1ZXN0X3VuaXEsIGRldl9wcml2LT5uZXh0X3NlcW5vLAo+ID4gPiArCQkJ CcKgYnJrdFswXSwgbXNnLCBicmt0WzFdKTsKPiA+IENvbnZlcnQgdG8gZGVidWdmcywgaXQncyB0 aGUgZGUtZmFjdG8uCj4gPiAKPiA+ID4gCj4gPiA+ICsJfSBlbHNlIHsKPiA+ID4gKwkJLypEUk1f REVCVUdfRFJJVkVSKCI8JXM+IFE6JTAyZCwgRjolMDJkLCBDOiUwMmQsIE86JTAyZCIKPiA+ID4g KwkJCQnCoCIsIEZsYWdzID0gJXMsIE5leHQgPSAlZDolZCBbJXNdXG4iLAo+ID4gPiArCQkJCcKg cmluZy0+bmFtZSwKPiA+ID4gKwkJCQnCoHF1ZXVlZCwgZmx5aW5nLCBjb21wbGV0ZSwgb3RoZXIs Cj4gPiA+ICsJCQkJwqBpOTE1X3NjaGVkdWxlcl9mbGFnX3N0cihzY2hlZHVsZXItPmZsYWdzW3Jp bmctPmlkXSksCj4gPiA+ICsJCQkJwqBkZXZfcHJpdi0+cmVxdWVzdF91bmlxLCBkZXZfcHJpdi0+ bmV4dF9zZXFubywgbXNnKTsgKi8KPiA+ID4gKwo+ID4gRGVhZCBjb2RlIHRvIGJlIHJlbW92ZWQg ZnJvbSBwYXRjaGVzLgo+ID4gCj4gPiA+IAo+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gKwl9Cj4g PiA+ICsKPiA+ID4gKwlpZiAoc2NoZWR1bGVyLT5mbGFnc1tyaW5nLT5pZF0gJiBpOTE1X3NmX2R1 bXBfc2Vxbm8pIHsKPiA+ID4gKwkJdWludDMyX3Qgc2Vxbm87Cj4gPiA+ICsKPiA+ID4gKwkJc2Vx bm8gPSByaW5nLT5nZXRfc2Vxbm8ocmluZywgdHJ1ZSk7Cj4gPiA+ICsKPiA+ID4gKwkJRFJNX0RF QlVHX0RSSVZFUigiPCVzPiBTZXFubyA9ICVkXG4iLCByaW5nLT5uYW1lLCBzZXFubyk7Cj4gPiA+ ICsJfQo+ID4gPiArCj4gPiA+ICsJaWYgKHNjaGVkdWxlci0+ZmxhZ3NbcmluZy0+aWRdICYgaTkx NV9zZl9kdW1wX2RldGFpbHMpIHsKPiA+ID4gKwkJaW50IGksIGRlcHM7Cj4gPiA+ICsJCXVpbnQz Ml90IGNvdW50LCBjb3VudHNbaTkxNV9zcXNfTUFYXTsKPiA+ID4gKwo+ID4gPiArCQltZW1zZXQo Y291bnRzLCAweDAwLCBzaXplb2YoY291bnRzKSk7Cj4gPiA+ICsKPiA+ID4gKwkJbGlzdF9mb3Jf ZWFjaF9lbnRyeShub2RlLCAmc2NoZWR1bGVyLT5ub2RlX3F1ZXVlW3JpbmctPmlkXSwgbGluaykg ewo+ID4gPiArCQkJaWYgKG5vZGUtPnN0YXR1cyA8IGk5MTVfc3FzX01BWCkgewo+ID4gPiArCQkJ CWNvdW50ID0gY291bnRzW25vZGUtPnN0YXR1c10rKzsKPiA+ID4gKwkJCX0gZWxzZSB7Cj4gPiA+ ICsJCQkJRFJNX0RFQlVHX0RSSVZFUigiPCVzPsKgwqDCoFVua25vd24gc3RhdHVzOiAlZCFcbiIs Cj4gPiA+ICsJCQkJCQnCoHJpbmctPm5hbWUsIG5vZGUtPnN0YXR1cyk7Cj4gPiA+ICsJCQkJY291 bnQgPSAtMTsKPiA+ID4gKwkJCX0KPiA+ID4gKwo+ID4gPiArCQkJZGVwcyA9IDA7Cj4gPiA+ICsJ CQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtX2RlcHM7IGkrKykKPiA+ID4gKwkJCQlpZiAoaTkx NV9zY2hlZHVsZXJfaXNfZGVwZW5kZW5jeV92YWxpZChub2RlLCBpKSkKPiA+ID4gKwkJCQkJZGVw cysrOwo+ID4gPiArCj4gPiA+ICsJCQlEUk1fREVCVUdfRFJJVkVSKCI8JXM+wqDCoMKgJWM6JTAy ZD4gdW5pcSA9ICVkLCBzZXFubyIKPiA+ID4gKwkJCQkJwqAiID0gJWQvJXMsIGRlcHMgPSAlZCAv ICVkLCAlcyBbcHJpID0gIgo+ID4gPiArCQkJCQnCoCIlNGRdXG4iLCByaW5nLT5uYW1lLAo+ID4g PiArCQkJCQnCoGk5MTVfc2NoZWR1bGVyX3F1ZXVlX3N0YXR1c19jaHIobm9kZS0+c3RhdHVzKSwK PiA+ID4gKwkJCQkJwqBjb3VudCwKPiA+ID4gKwkJCQkJwqBub2RlLT5wYXJhbXMucmVxdWVzdC0+ dW5pcSwKPiA+ID4gKwkJCQkJwqBub2RlLT5wYXJhbXMucmVxdWVzdC0+c2Vxbm8sCj4gPiA+ICsJ CQkJCcKgbm9kZS0+cGFyYW1zLnJpbmctPm5hbWUsCj4gPiA+ICsJCQkJCcKgZGVwcywgbm9kZS0+ bnVtX2RlcHMsCj4gPiA+ICsJCQkJCcKgaTkxNV9xZV9zdGF0ZV9zdHIobm9kZSksCj4gPiA+ICsJ CQkJCcKgbm9kZS0+cHJpb3JpdHkpOwo+ID4gPiArCj4gPiA+ICsJCQlpZiAoKHNjaGVkdWxlci0+ ZmxhZ3NbcmluZy0+aWRdICYgaTkxNV9zZl9kdW1wX2RlcGVuZGVuY2llcykKPiA+ID4gKwkJCQk9 PSAwKQo+ID4gPiArCQkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJCQlmb3IgKGkgPSAwOyBp IDwgbm9kZS0+bnVtX2RlcHM7IGkrKykKPiA+ID4gKwkJCQlpZiAobm9kZS0+ZGVwX2xpc3RbaV0p Cj4gPiA+ICsJCQkJCURSTV9ERUJVR19EUklWRVIoIjwlcz7CoMKgwqDCoMKgwqDCoHwtJWM6Igo+ ID4gPiArCQkJCQkJIiUwMmQlYyB1bmlxID0gJWQsIHNlcW5vID0gJWQvJXMsICVzIFtwcmkgPSAl NGRdXG4iLAo+ID4gPiArCQkJCQkJcmluZy0+bmFtZSwKPiA+ID4gKwkJCQkJCWk5MTVfc2NoZWR1 bGVyX3F1ZXVlX3N0YXR1c19jaHIobm9kZS0+ZGVwX2xpc3RbaV0tPnN0YXR1cyksCj4gPiA+ICsJ CQkJCQlpLAo+ID4gPiArCQkJCQkJaTkxNV9zY2hlZHVsZXJfaXNfZGVwZW5kZW5jeV92YWxpZChu b2RlLCBpKQo+ID4gPiArCQkJCQkJCT8gJz4nIDogJyMnLAo+ID4gPiArCQkJCQkJbm9kZS0+ZGVw X2xpc3RbaV0tPnBhcmFtcy5yZXF1ZXN0LT51bmlxLAo+ID4gPiArCQkJCQkJbm9kZS0+ZGVwX2xp c3RbaV0tPnBhcmFtcy5yZXF1ZXN0LT5zZXFubywKPiA+ID4gKwkJCQkJCW5vZGUtPmRlcF9saXN0 W2ldLT5wYXJhbXMucmluZy0+bmFtZSwKPiA+ID4gKwkJCQkJCWk5MTVfcWVfc3RhdGVfc3RyKG5v ZGUtPmRlcF9saXN0W2ldKSwKPiA+ID4gKwkJCQkJCW5vZGUtPmRlcF9saXN0W2ldLT5wcmlvcml0 eSk7Cj4gPiA+ICsJCX0KPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4g K30KPiA+ID4gKwo+ID4gPiArLyoqCj4gPiA+ICsgKiBpOTE1X3NjaGVkdWxlcl9kdW1wIC0gZHVt cCB0aGUgc2NoZWR1bGVyJ3MgaW50ZXJuYWwgc3RhdGUgdG8gdGhlIGRlYnVnIGxvZy4KPiA+ID4g KyAqIEByaW5nOiBSaW5nIHRvIGR1bXAgaW5mbyBmb3IKPiA+ID4gKyAqIEBtc2c6IEEgcmVhc29u IHdoeSBpdCBpcyBiZWluZyBkdW1wZWQKPiA+ID4gKyAqIEZvciBkZWJ1Z2dpbmcgcHVycG9zZXMs IGl0IGNhbiBiZSB2ZXJ5IHVzZWZ1bCB0byBzZWUgdGhlIGludGVybmFsIHN0YXRlIG9mCj4gPiA+ ICsgKiB0aGUgc2NoZWR1bGVyIGZvciBhIGdpdmVuIHJpbmcuCj4gPiA+ICsgKi8KPiA+ID4gK2lu dCBpOTE1X3NjaGVkdWxlcl9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGNvbnN0 IGNoYXIgKm1zZykKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwo+ID4gPiArCXN0cnVjdCBpOTE1X3NjaGVk dWxlciAqc2NoZWR1bGVyID0gZGV2X3ByaXYtPnNjaGVkdWxlcjsKPiA+ID4gKwl1bnNpZ25lZCBs b25nIGZsYWdzOwo+ID4gPiArCWludCByZXQ7Cj4gPiA+ICsKPiA+ID4gKwlzcGluX2xvY2tfaXJx c2F2ZSgmc2NoZWR1bGVyLT5sb2NrLCBmbGFncyk7Cj4gPiA+ICsJcmV0ID0gaTkxNV9zY2hlZHVs ZXJfZHVtcF9sb2NrZWQocmluZywgbXNnKTsKPiA+ID4gKwlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZzY2hlZHVsZXItPmxvY2ssIGZsYWdzKTsKPiA+ID4gKwo+ID4gPiArCXJldHVybiByZXQ7Cj4g PiA+ICt9Cj4gPiA+ICsKPiA+IFRoaXMga2luZCBvZiBzdHVmZiBlc3BlY2lhbGx5IHNob3VsZCBi ZSBzdGF0aWMgZnVuY3Rpb25zIGluCj4gPiBpOTE1X2RlYnVnZnMuYy4gQW5kIHRoZW4gdGhleSBk b24ndCBuZWVkIGtlcm5lbGRvYyBlaXRoZXIsIGJlY2F1c2Ugd2UKPiA+IGV4cGVjdCBubyBzYW5l IGludmlkdWFsIHRvIGNhbGwgdGhlbS4KPiA+IAo+ID4gPiAKPiA+ID4gK3N0YXRpYyBpbnQgaTkx NV9zY2hlZHVsZXJfZHVtcF9hbGxfbG9ja2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ ICsJCQkJCcKgwqBjb25zdCBjaGFyICptc2cpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ID4gKwlzdHJ1Y3Qg aTkxNV9zY2hlZHVsZXIgKnNjaGVkdWxlciA9IGRldl9wcml2LT5zY2hlZHVsZXI7Cj4gPiA+ICsJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKPiA+ID4gKwlpbnQgaSwgciwgcmV0ID0gMDsK PiA+ID4gKwo+ID4gPiArCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKPiA+ID4g KwkJc2NoZWR1bGVyLT5mbGFnc1tyaW5nLT5pZF0gfD0gaTkxNV9zZl9kdW1wX2ZvcmNlwqDCoMKg fAo+ID4gPiArCQkJCQnCoMKgwqDCoMKgwqBpOTE1X3NmX2R1bXBfZGV0YWlscyB8Cj4gPiA+ICsJ CQkJCcKgwqDCoMKgwqDCoGk5MTVfc2ZfZHVtcF9zZXFub8KgwqDCoHwKPiA+ID4gKwkJCQkJwqDC oMKgwqDCoMKgaTkxNV9zZl9kdW1wX2RlcGVuZGVuY2llczsKPiA+IFRoaXMgbG9va3MgcmVhbGx5 IGJhZCB0byBtZSwgaW52YXNpdmUgZGVidWdnaW5nLiBSYXRoZXIgdG8gYmUgY2FycmllZAo+ID4g YXMgZnVuY3Rpb24gcGFyYW1ldGVycyBpbiB0aGUgZGVidWcgZnVuY3Rpb25zLCBhbmQgdGhleSBz aG91bGQgYmUKPiA+IHVwcGVyY2FzZSBlbnVtIGluIGk5MTVfZGVidWdmcy5jIHRvby4KPiA+IAo+ ID4gPiAKPiA+ID4gKwkJciA9IGk5MTVfc2NoZWR1bGVyX2R1bXBfbG9ja2VkKHJpbmcsIG1zZyk7 Cj4gPiA+ICsJCWlmIChyZXQgPT0gMCkKPiA+ID4gKwkJCXJldCA9IHI7Cj4gPiA+ICsJfQo+ID4g PiArCj4gPiA+ICsJcmV0dXJuIHJldDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArLyoqCj4gPiA+ ICsgKiBpOTE1X3NjaGVkdWxlcl9kdW1wX2FsbCAtIGR1bXAgdGhlIHNjaGVkdWxlcidzIGludGVy bmFsIHN0YXRlIHRvIHRoZSBkZWJ1Zwo+ID4gPiArICogbG9nLgo+ID4gPiArICogQGRldjogRFJN IGRldmljZQo+ID4gPiArICogQG1zZzogQSByZWFzb24gd2h5IGl0IGlzIGJlaW5nIGR1bXBlZAo+ ID4gPiArICogRm9yIGRlYnVnZ2luZyBwdXJwb3NlcywgaXQgY2FuIGJlIHZlcnkgdXNlZnVsIHRv IHNlZSB0aGUgaW50ZXJuYWwgc3RhdGUgb2YKPiA+ID4gKyAqIHRoZSBzY2hlZHVsZXIuCj4gPiA+ ICsgKi8KPiA+ID4gK2ludCBpOTE1X3NjaGVkdWxlcl9kdW1wX2FsbChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBjb25zdCBjaGFyICptc2cpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ID4gKwlzdHJ1Y3QgaTkx NV9zY2hlZHVsZXIgKnNjaGVkdWxlciA9IGRldl9wcml2LT5zY2hlZHVsZXI7Cj4gPiA+ICsJdW5z aWduZWQgbG9uZyBmbGFnczsKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsJc3Bpbl9s b2NrX2lycXNhdmUoJnNjaGVkdWxlci0+bG9jaywgZmxhZ3MpOwo+ID4gPiArCXJldCA9IGk5MTVf c2NoZWR1bGVyX2R1bXBfYWxsX2xvY2tlZChkZXYsIG1zZyk7Cj4gPiA+ICsJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmc2NoZWR1bGVyLT5sb2NrLCBmbGFncyk7Cj4gPiA+ICsKPiA+ID4gKwlyZXR1 cm4gcmV0Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+IMKgIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVs ZXJfc3VibWl0X21heF9wcmlvcml0eShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ID4g PiDCoMKgCQkJCQnCoMKgwqDCoMKgwqBib29sIGlzX2xvY2tlZCkKPiA+ID4gwqAgewo+ID4gPiBA QCAtMTI0NiwxMCArMTU0NCwxMCBAQCBpbnQgaTkxNV9zY2hlZHVsZXJfY2xvc2VmaWxlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiA+ID4gwqDCoAkJCQlj b250aW51ZTsKPiA+ID4gwqDCoAo+ID4gPiDCoMKgCQkJaWYgKCFJOTE1X1NRU19JU19DT01QTEVU RShub2RlKSkKPiA+ID4gLQkJCQlEUk1fREVCVUdfRFJJVkVSKCJDbG9zaW5nIGZpbGUgaGFuZGxl IHdpdGggb3V0c3RhbmRpbmcgd29yazogJWQ6JWQvJWQgb24gJXNcbiIsCj4gPiA+ICsJCQkJRFJN X0RFQlVHX0RSSVZFUigiQ2xvc2luZyBmaWxlIGhhbmRsZSB3aXRoIG91dHN0YW5kaW5nIHdvcms6 ICVkOiVkLyVzIG9uICVzXG4iLAo+ID4gPiDCoMKgCQkJCQkJwqBub2RlLT5wYXJhbXMucmVxdWVz dC0+dW5pcSwKPiA+ID4gwqDCoAkJCQkJCcKgbm9kZS0+cGFyYW1zLnJlcXVlc3QtPnNlcW5vLAo+ ID4gPiAtCQkJCQkJwqBub2RlLT5zdGF0dXMsCj4gPiA+ICsJCQkJCQnCoGk5MTVfcWVfc3RhdGVf c3RyKG5vZGUpLAo+ID4gSWYgdGhlIGNvZGUgaXMgdG8gYmUgY2FsbGVkIGZyb20gb3V0c2lkZSBv ZiBpOTE1X2RlYnVnZnMuYywgaXQgc2hvdWxkCj4gPiByZWFsbHkgYmUgd3JpdHRlbiBpbiBhIG1v cmUgc2FmZSBtYW5uZXIgdGhhbiBzdGF0aWMgY2hhciwgZXNwZWNpYWxseSBhcwo+ID4gaXQgaXMg bm90IG11Y2ggb2YgYW4gZWZmb3J0IHRvIG1ha2UgYSB0YWJsZSB0byBpbmRleC4KPiA+IAo+ID4g UmVnYXJkcywgSm9vbmFzCj4gPiAKPiA+ID4gCj4gPiA+IMKgwqAJCQkJCQnCoHJpbmctPm5hbWUp Owo+ID4gPiDCoMKgCj4gPiA+IMKgwqAJCQlpOTE1X3NjaGVkdWxlcl9maWxlX3F1ZXVlX2RlYyhu b2RlLT5wYXJhbXMuZmlsZSk7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3NjaGVkdWxlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIu aAo+ID4gPiBpbmRleCBiNzhkZTEyLi5hMDcxZWJiIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKPiA+ID4gQEAgLTQxLDYgKzQxLDkgQEAgZW51bSBpOTE1 X3NjaGVkdWxlcl9xdWV1ZV9zdGF0dXMgewo+ID4gPiDCoMKgCS8qIExpbWl0IHZhbHVlIGZvciB1 c2Ugd2l0aCBhcnJheXMvbG9vcHMgKi8KPiA+ID4gwqDCoAlpOTE1X3Nxc19NQVgKPiA+ID4gwqAg fTsKPiA+ID4gK2NoYXIgaTkxNV9zY2hlZHVsZXJfcXVldWVfc3RhdHVzX2NocihlbnVtIGk5MTVf c2NoZWR1bGVyX3F1ZXVlX3N0YXR1cyBzdGF0dXMpOwo+ID4gPiArY29uc3QgY2hhciAqaTkxNV9z Y2hlZHVsZXJfcXVldWVfc3RhdHVzX3N0cigKPiA+ID4gKwkJCQllbnVtIGk5MTVfc2NoZWR1bGVy X3F1ZXVlX3N0YXR1cyBzdGF0dXMpOwo+ID4gPiDCoMKgCj4gPiA+IMKgICNkZWZpbmUgSTkxNV9T UVNfSVNfUVVFVUVEKG5vZGUpCSgoKG5vZGUpLT5zdGF0dXMgPT0gaTkxNV9zcXNfcXVldWVkKSkK PiA+ID4gwqAgI2RlZmluZSBJOTE1X1NRU19JU19GTFlJTkcobm9kZSkJKCgobm9kZSktPnN0YXR1 cyA9PSBpOTE1X3Nxc19mbHlpbmcpKQo+ID4gPiBAQCAtNjUsNiArNjgsNyBAQCBzdHJ1Y3QgaTkx NV9zY2hlZHVsZXJfcXVldWVfZW50cnkgewo+ID4gPiDCoMKgCXVuc2lnbmVkIGxvbmfCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RhbXA7Cj4gPiA+IMKgwqAJ c3RydWN0IGxpc3RfaGVhZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBs aW5rOwo+ID4gPiDCoCB9Owo+ID4gPiArY29uc3QgY2hhciAqaTkxNV9xZV9zdGF0ZV9zdHIoc3Ry dWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpub2RlKTsKPiA+ID4gwqDCoAo+ID4gPiDC oCBzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIgewo+ID4gPiDCoMKgCXN0cnVjdCBsaXN0X2hlYWTCoMKg wqDCoG5vZGVfcXVldWVbSTkxNV9OVU1fUklOR1NdOwo+ID4gPiBAQCAtODIsOSArODYsMTcgQEAg c3RydWN0IGk5MTVfc2NoZWR1bGVyIHsKPiA+ID4gwqDCoAo+ID4gPiDCoCAvKiBGbGFnIGJpdHMg Zm9yIGk5MTVfc2NoZWR1bGVyOjpmbGFncyAqLwo+ID4gPiDCoCBlbnVtIHsKPiA+ID4gKwkvKiBJ bnRlcm5hbCBzdGF0ZSAqLwo+ID4gPiDCoMKgCWk5MTVfc2ZfaW50ZXJydXB0c19lbmFibGVkwqDC oD0gKDEgPDwgMCksCj4gPiA+IMKgwqAJaTkxNV9zZl9zdWJtaXR0aW5nwqDCoMKgwqDCoMKgwqDC oMKgwqA9ICgxIDw8IDEpLAo+ID4gPiArCj4gPiA+ICsJLyogRHVtcC9kZWJ1ZyBmbGFncyAqLwo+ ID4gPiArCWk5MTVfc2ZfZHVtcF9mb3JjZcKgwqDCoMKgwqDCoMKgwqDCoMKgPSAoMSA8PCA4KSwK PiA+ID4gKwlpOTE1X3NmX2R1bXBfZGV0YWlsc8KgwqDCoMKgwqDCoMKgwqA9ICgxIDw8IDkpLAo+ ID4gPiArCWk5MTVfc2ZfZHVtcF9kZXBlbmRlbmNpZXPCoMKgwqA9ICgxIDw8IDEwKSwKPiA+ID4g KwlpOTE1X3NmX2R1bXBfc2Vxbm/CoMKgwqDCoMKgwqDCoMKgwqDCoD0gKDEgPDwgMTEpLAo+ID4g PiDCoCB9Owo+ID4gPiArY29uc3QgY2hhciAqaTkxNV9zY2hlZHVsZXJfZmxhZ19zdHIodWludDMy X3QgZmxhZ3MpOwo+ID4gPiDCoMKgCj4gPiA+IMKgIGJvb2wgaTkxNV9zY2hlZHVsZXJfaXNfZW5h YmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ID4gwqAgaW50IGk5MTVfc2NoZWR1bGVy X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiA+IEBAIC05OSw2ICsxMTEsOSBAQCB2 b2lkIGk5MTVfc2NoZWR1bGVyX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmsp Owo+ID4gPiDCoCBpbnQgaTkxNV9zY2hlZHVsZXJfZmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZywgYm9vbCBpc19sb2NrZWQpOwo+ID4gPiDCoCBpbnQgaTkxNV9zY2hlZHVsZXJfZmx1 c2hfc3RhbXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiA+ID4gwqDCoAkJCcKgwqDC oMKgwqDCoMKgdW5zaWduZWQgbG9uZyBzdGFtcCwgYm9vbCBpc19sb2NrZWQpOwo+ID4gPiAraW50 IGk5MTVfc2NoZWR1bGVyX2R1bXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiA+ID4g KwkJCWNvbnN0IGNoYXIgKm1zZyk7Cj4gPiA+ICtpbnQgaTkxNV9zY2hlZHVsZXJfZHVtcF9hbGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbXNnKTsKPiA+ID4gwqAgYm9vbCBp OTE1X3NjaGVkdWxlcl9pc19yZXF1ZXN0X3RyYWNrZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCj4gPiA+IMKgwqAJCQkJwqDCoMKgwqDCoMKgwqBib29sICpjb21wbGV0ZWQsIGJv b2wgKmJ1c3kpOwo+ID4gPiDCoCBib29sIGk5MTVfc2NoZWR1bGVyX2ZpbGVfcXVldWVfaXNfZnVs bChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwotLSAKSm9vbmFzIExhaHRpbmVuCk9wZW4gU291cmNl IFRlY2hub2xvZ3kgQ2VudGVyCkludGVsIENvcnBvcmF0aW9uCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=