From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Harrison Subject: Re: [PATCH v5 27/35] drm/i915: Added debug state dump facilities to scheduler Date: Fri, 11 Mar 2016 16:38:52 +0000 Message-ID: <56E2F49C.8010107@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id DCD566EB19 for ; Fri, 11 Mar 2016 16:38:54 +0000 (UTC) In-Reply-To: <1457353877.14727.24.camel@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Joonas Lahtinen , Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org VGhlIGludGVudGlvbiBvZiB0aGUgc3RhdGUgZHVtcCBjb2RlIGlzIG5vdCByZWFsbHkgZm9yIGl0 IHRvIGJlIGEgdXNlciAKYWNjZXNzaWJsZSBkZWJ1Z2ZzIGVudHJ5IChhbHRob3VnaCBvbmUgb2Yg dGhlIGxhdGVyIHBhdGNoZXMgZG9lcyBhZGQgYSAKZGVidWdmcyBpbnRlcmZhY2UpLiBJdCBpcyBt b3JlIGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgbG9jayB1cHMgYW5kIAp1bmV4cGVjdGVkIGJlaGF2 aW91ciBieSBhZGRpbmcgYSBkdW1wIGZ1bmN0aW9uIGNhbGwgdG8gd2hhdGV2ZXIgV0FSTl9PTiAK b3Igc2ltaWxhciBpcyBiZWluZyBoaXQuIFNvIGluIHRoZW9yeSwgdGhlIGNvZGUgc2hvdWxkIG5v dCBiZSBuZWNlc3NhcnkgCmFuZCB0aGVyZSBpcyBubyBwb2ludCB1cHN0cmVhbWluZyBpdC4gT24g dGhlIG90aGVyIGhhbmQsIGl0IGRvZXMgY29tZSBpbiAKdmVyeSBoYW5keSB3aGVuIGRlYnVnZ2lu ZyBzY2hlZHVsZXIgcmVsYXRlZCBpc3N1ZXMgYW5kIGl0IGlzIGNvbXBsaWNhdGVkIAplbm91Z2gg dGhhdCB5b3UgY2FuJ3QganVzdCBrbm9jayBpdCB1cCBpbiBmaXZlIG1pbnV0ZXMgd2hlbiBhIGJ1 ZyByZXBvcnQgCmlzIGxvZ2dlZC4KClRoZSBjb2RlIGNvdWxkIGNlcnRhaW5seSBiZSBtb3ZlZCBp bnRvIGEgc2VwYXJhdGUgZmlsZSwgZS5nLiAKaTkxNV9zY2hlZHVsZXJfZGVidWcuYy4gSSBkb24n dCB0aGluayBpdCB3b3VsZCBiZSBnb29kIHRvIG1vdmUgaXQgdG8gCmRlYnVnZnMgYW5kIG1ha2Ug aXQgYWxsICdzZXFfcHJpbnRmJyBzdHlsZSBvdXRwdXQgb25seS4gSXQgaXMgbXVjaCBtb3JlIAp1 c2UgYXMgb3JkaW5hcnkgcHJpbnRrIHN0eWxlIG91dHB1dCBzbyB5b3UgY2FuIGNhbGwgaXQgZGly ZWN0bHkgYXQgdGhlIApwb2ludCBvZiBkZXRlY3RpbmcgYW4gaW5jb25zaXN0ZW50IHN0YXRlIGFu ZCBnZXQgdGhlIGRtZXNnIG91dHB1dCBwcmlvciAKdG8gdGhlIGtlcm5lbCBwYW5pYy4KCgpPbiAw Ny8wMy8yMDE2IDEyOjMxLCBKb29uYXMgTGFodGluZW4gd3JvdGU6Cj4gSGksCj4KPiBPbiB0bywg MjAxNi0wMi0xOCBhdCAxNDoyNyArMDAwMCwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90 ZToKPj4gRnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPj4K Pj4gV2hlbiBkZWJ1Z2dpbmcgYmF0Y2ggYnVmZmVyIHN1Ym1pc3Npb24gaXNzdWVzLCBpdCBpcyB1 c2VmdWwgdG8gYmUgYWJsZQo+PiB0byBzZWUgd2hhdCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUg c2NoZWR1bGVyIGlzLiBUaGlzIGNoYW5nZSBhZGRzCj4+IGZ1bmN0aW9ucyBmb3IgZGVjb2Rpbmcg dGhlIGludGVybmFsIHNjaGVkdWxlciBzdGF0ZSBhbmQgcmVwb3J0aW5nIGl0Lgo+Pgo+PiB2Mzog VXBkYXRlZCBhIGRlYnVnIG1lc3NhZ2Ugd2l0aCB0aGUgbmV3IHN0YXRlX3N0cigpIGZ1bmN0aW9u Lgo+Pgo+PiB2NDogV3JhcHBlZCBzb21lIGxvbmcgbGluZXMgdG8ga2VlcCB0aGUgc3R5bGUgY2hl Y2tlciBoYXBweS4gUmVtb3ZlZAo+PiB0aGUgZmVuY2Uvc3luYyBjb2RlIGFzIHRoYXQgd2lsbCBu b3cgYmUgcGFydCBvZiBhIHNlcGFyYXRlIHBhdGNoIHNlcmllcy4KPj4KPj4gdjU6IFJlbW92ZWQg Zm9yd2FyZCBkZWNsYXJhdGlvbnMgYW5kIHdoaXRlIHNwYWNlLiBBZGRlZCBkb2N1bWVudGF0aW9u Lgo+PiBbSm9vbmFzIExhaHRpbmVuXQo+Pgo+PiBBbHNvIHNxdWFzaGVkIGluIGxhdGVyIHBhdGNo IHRvIGFkZCBzZXFubyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzdGFydC4KPj4gSXQgd2FzIG9ubHkg YmVpbmcgYWRkZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaCBkdWUgdG8gaGlzdG9yaWNhbCByZWFzb25z Cj4+IHdoaWNoIGhhdmUgc2luY2UgZ29uZSBhd2F5Lgo+Pgo+PiBGb3I6IFZJWi0xNTg3Cj4+IFNp Z25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4+ IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4+ IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgfCAzMDIgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfc2NoZWR1bGVyLmggfCAgMTUgKysKPj4gICAyIGZpbGVzIGNoYW5nZWQsIDMxNSBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2No ZWR1bGVyLmMKPj4gaW5kZXggZjdmMjlkNS4uZDBlZWQ1MiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3NjaGVkdWxlci5jCj4+IEBAIC00MCw2ICs0MCwxMTcgQEAgYm9vbCBpOTE1X3Nj aGVkdWxlcl9pc19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCXJldHVybiBk ZXZfcHJpdi0+c2NoZWR1bGVyICE9IE5VTEw7Cj4+ICAgfQo+Pgo+IFRoZXNlIHNvcnQgb2YgZnVu Y3Rpb25zIHNob3VsZCBiZSBpbiBpOTE1X2RlYnVnZnMuYywgc28gdGhhdCBub2JvZHkKPiBldmVu IHRoaW5rcyBvZiB1c2luZyB0aGVtIGZvciBvdGhlciBwdXJwb3Nlcy4KPgo+PiAgIAo+PiArY29u c3QgY2hhciAqaTkxNV9xZV9zdGF0ZV9zdHIoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2Vu dHJ5ICpub2RlKQo+PiArewo+PiArCXN0YXRpYyBjaGFyCXN0cls1MF07Cj4+ICsJY2hhcgkJKnB0 ciA9IHN0cjsKPj4gKwo+PiArCSoocHRyKyspID0gbm9kZS0+YnVtcGVkID8gJ0InIDogJy0nLAo+ PiArCSoocHRyKyspID0gaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQobm9kZS0+cGFyYW1zLnJl cXVlc3QpID8gJ0MnIDogJy0nOwo+PiArCj4gRXNwZWNpYWxseSB0aGlzIGtpbmQgb2YgY29kZSBu ZWVkcyB0byBiZSBpbiBpOTE1X2RlYnVnZnMuYy4gSSdkCj4gaW1wbGVtZW50IG5ldyBjb2RlIG1v cmUgYWxvbmcgbGluZXMgb2YgaTkxNV9zc2V1X3N0YXR1cygpLCBidXQgSSBzZWUKPiB0aGlzIGtp bmQgb2YgY29kZSB3YXMgcHJldmlvdXNseSBtZXJnZWQuCj4KPj4gKwkqcHRyID0gMDsKPj4gKwo+ PiArCXJldHVybiBzdHI7Cj4+ICt9Cj4+ICsKPj4gK2NoYXIgaTkxNV9zY2hlZHVsZXJfcXVldWVf c3RhdHVzX2NocihlbnVtIGk5MTVfc2NoZWR1bGVyX3F1ZXVlX3N0YXR1cyBzdGF0dXMpCj4+ICt7 Cj4+ICsJc3dpdGNoIChzdGF0dXMpIHsKPj4gKwljYXNlIGk5MTVfc3FzX25vbmU6Cj4+ICsJcmV0 dXJuICdOJzsKPj4gKwo+PiArCWNhc2UgaTkxNV9zcXNfcXVldWVkOgo+PiArCXJldHVybiAnUSc7 Cj4+ICsKPj4gKwljYXNlIGk5MTVfc3FzX3BvcHBlZDoKPj4gKwlyZXR1cm4gJ1gnOwo+PiArCj4+ ICsJY2FzZSBpOTE1X3Nxc19mbHlpbmc6Cj4+ICsJcmV0dXJuICdGJzsKPj4gKwo+PiArCWNhc2Ug aTkxNV9zcXNfY29tcGxldGU6Cj4+ICsJcmV0dXJuICdDJzsKPj4gKwo+PiArCWNhc2UgaTkxNV9z cXNfZGVhZDoKPj4gKwlyZXR1cm4gJ0QnOwo+PiArCj4+ICsJZGVmYXVsdDoKPj4gKwlicmVhazsK Pj4gKwl9Cj4+ICsKPiBCYWQgaW5kZW50Lgo+Cj4+ICsJcmV0dXJuICc/JzsKPj4gK30KPj4gKwo+ PiArY29uc3QgY2hhciAqaTkxNV9zY2hlZHVsZXJfcXVldWVfc3RhdHVzX3N0cigKPj4gKwkJCQll bnVtIGk5MTVfc2NoZWR1bGVyX3F1ZXVlX3N0YXR1cyBzdGF0dXMpCj4+ICt7Cj4+ICsJc3RhdGlj IGNoYXIJc3RyWzUwXTsKPj4gKwo+PiArCXN3aXRjaCAoc3RhdHVzKSB7Cj4+ICsJY2FzZSBpOTE1 X3Nxc19ub25lOgo+PiArCXJldHVybiAiTm9uZSI7Cj4+ICsKPj4gKwljYXNlIGk5MTVfc3FzX3F1 ZXVlZDoKPj4gKwlyZXR1cm4gIlF1ZXVlZCI7Cj4+ICsKPj4gKwljYXNlIGk5MTVfc3FzX3BvcHBl ZDoKPj4gKwlyZXR1cm4gIlBvcHBlZCI7Cj4+ICsKPj4gKwljYXNlIGk5MTVfc3FzX2ZseWluZzoK Pj4gKwlyZXR1cm4gIkZseWluZyI7Cj4+ICsKPj4gKwljYXNlIGk5MTVfc3FzX2NvbXBsZXRlOgo+ PiArCXJldHVybiAiQ29tcGxldGUiOwo+PiArCj4+ICsJY2FzZSBpOTE1X3Nxc19kZWFkOgo+PiAr CXJldHVybiAiRGVhZCI7Cj4+ICsKPj4gKwlkZWZhdWx0Ogo+PiArCWJyZWFrOwo+PiArCX0KPj4g Kwo+PiArCXNwcmludGYoc3RyLCAiW1Vua25vd25fJWQhXSIsIHN0YXR1cyk7Cj4+ICsJcmV0dXJu IHN0cjsKPj4gK30KPj4gKwo+PiArY29uc3QgY2hhciAqaTkxNV9zY2hlZHVsZXJfZmxhZ19zdHIo dWludDMyX3QgZmxhZ3MpCj4+ICt7Cj4+ICsJc3RhdGljIGNoYXIgc3RyWzEwMF07Cj4+ICsJY2hh ciAqcHRyID0gc3RyOwo+PiArCj4+ICsJKnB0ciA9IDA7Cj4+ICsKPj4gKyNkZWZpbmUgVEVTVF9G TEFHKGZsYWcsIG1zZykJCQkJCQlcCj4+ICsJZG8gewkJCQkJCQkJXAo+PiArCQlpZiAoZmxhZ3Mg JiAoZmxhZykpIHsJCQkJCVwKPj4gKwkJCXN0cmNweShwdHIsIG1zZyk7CQkJCVwKPj4gKwkJCXB0 ciArPSBzdHJsZW4ocHRyKTsJCQkJXAo+PiArCQkJZmxhZ3MgJj0gfihmbGFnKTsJCQkJXAo+PiAr CQl9CQkJCQkJCVwKPj4gKwl9IHdoaWxlICgwKQo+PiArCj4+ICsJVEVTVF9GTEFHKGk5MTVfc2Zf aW50ZXJydXB0c19lbmFibGVkLCAiSW50T258Iik7Cj4+ICsJVEVTVF9GTEFHKGk5MTVfc2Zfc3Vi bWl0dGluZywgICAgICAgICAiU3VibWl0dGluZ3wiKTsKPj4gKwlURVNUX0ZMQUcoaTkxNV9zZl9k dW1wX2ZvcmNlLCAgICAgICAgICJEdW1wRm9yY2V8Iik7Cj4+ICsJVEVTVF9GTEFHKGk5MTVfc2Zf ZHVtcF9kZXRhaWxzLCAgICAgICAiRHVtcERldGFpbHN8Iik7Cj4+ICsJVEVTVF9GTEFHKGk5MTVf c2ZfZHVtcF9kZXBlbmRlbmNpZXMsICAiRHVtcERlcHN8Iik7Cj4+ICsJVEVTVF9GTEFHKGk5MTVf c2ZfZHVtcF9zZXFubywgICAgICAgICAiRHVtcFNlcW5vfCIpOwo+PiArCj4+ICsjdW5kZWYgVEVT VF9GTEFHCj4+ICsKPj4gKwlpZiAoZmxhZ3MpIHsKPj4gKwkJc3ByaW50ZihwdHIsICJVbmtub3du XzB4JVghIiwgZmxhZ3MpOwo+PiArCQlwdHIgKz0gc3RybGVuKHB0cik7Cj4+ICsJfQo+PiArCj4+ ICsJaWYgKHB0ciA9PSBzdHIpCj4+ICsJCXN0cmNweShzdHIsICItIik7Cj4+ICsJZWxzZQo+PiAr CQlwdHJbLTFdID0gMDsKPj4gKwo+PiArCXJldHVybiBzdHI7Cj4+ICt9Owo+PiArCj4+ICAgLyoq Cj4+ICAgICogaTkxNV9zY2hlZHVsZXJfaW5pdCAtIEluaXRpYWxpc2UgdGhlIHNjaGVkdWxlci4K Pj4gICAgKiBAZGV2OiBEUk0gZGV2aWNlCj4+IEBAIC0xMDI0LDYgKzExMzUsMTkzIEBAIHZvaWQg aTkxNV9zY2hlZHVsZXJfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPj4g ICAJCWk5MTVfc2NoZWR1bGVyX3Byb2Nlc3Nfd29yayhyaW5nKTsKPj4gICB9Cj4+ICAgCj4+ICtz dGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX2R1bXBfbG9ja2VkKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCj4+ICsJCQkJICAgICAgY29uc3QgY2hhciAqbXNnKQo+PiArewo+PiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4+ ICsJc3RydWN0IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVy Owo+PiArCXN0cnVjdCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9lbnRyeSAqbm9kZTsKPj4gKwlpbnQg Zmx5aW5nID0gMCwgcXVldWVkID0gMCwgY29tcGxldGUgPSAwLCBvdGhlciA9IDA7Cj4+ICsJc3Rh dGljIGludCBvbGRfZmx5aW5nID0gLTEsIG9sZF9xdWV1ZWQgPSAtMSwgb2xkX2NvbXBsZXRlID0g LTE7Cj4+ICsJYm9vbCBiX2R1bXA7Cj4+ICsJY2hhciBicmt0WzJdID0geyAnPCcsICc+JyB9Owo+ PiArCj4+ICsJaWYgKCFyaW5nKQo+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiArCWxpc3Rf Zm9yX2VhY2hfZW50cnkobm9kZSwgJnNjaGVkdWxlci0+bm9kZV9xdWV1ZVtyaW5nLT5pZF0sIGxp bmspIHsKPj4gKwkJaWYgKEk5MTVfU1FTX0lTX1FVRVVFRChub2RlKSkKPj4gKwkJCXF1ZXVlZCsr Owo+PiArCQllbHNlIGlmIChJOTE1X1NRU19JU19GTFlJTkcobm9kZSkpCj4+ICsJCQlmbHlpbmcr KzsKPj4gKwkJZWxzZSBpZiAoSTkxNV9TUVNfSVNfQ09NUExFVEUobm9kZSkpCj4+ICsJCQljb21w bGV0ZSsrOwo+PiArCQllbHNlCj4+ICsJCQlvdGhlcisrOwo+PiArCX0KPj4gKwo+PiArCWJfZHVt cCA9IChmbHlpbmcgIT0gb2xkX2ZseWluZykgfHwKPj4gKwkJIChxdWV1ZWQgIT0gb2xkX3F1ZXVl ZCkgfHwKPj4gKwkJIChjb21wbGV0ZSAhPSBvbGRfY29tcGxldGUpOwo+PiArCWlmIChzY2hlZHVs ZXItPmZsYWdzW3JpbmctPmlkXSAmIGk5MTVfc2ZfZHVtcF9mb3JjZSkgewo+PiArCQlpZiAoIWJf ZHVtcCkgewo+PiArCQkJYl9kdW1wID0gdHJ1ZTsKPj4gKwkJCWJya3RbMF0gPSAneyc7Cj4+ICsJ CQlicmt0WzFdID0gJ30nOwo+PiArCQl9Cj4+ICsKPj4gKwkJc2NoZWR1bGVyLT5mbGFnc1tyaW5n LT5pZF0gJj0gfmk5MTVfc2ZfZHVtcF9mb3JjZTsKPj4gKwl9Cj4+ICsKPj4gKwlpZiAoYl9kdW1w KSB7Cj4+ICsJCW9sZF9mbHlpbmcgICA9IGZseWluZzsKPj4gKwkJb2xkX3F1ZXVlZCAgID0gcXVl dWVkOwo+PiArCQlvbGRfY29tcGxldGUgPSBjb21wbGV0ZTsKPj4gKwkJRFJNX0RFQlVHX0RSSVZF UigiPCVzPiBROiUwMmQsIEY6JTAyZCwgQzolMDJkLCBPOiUwMmQsICIKPj4gKwkJCQkgIkZsYWdz ID0gJXMsIE5leHQgPSAlZDolZCAlYyVzJWNcbiIsCj4+ICsJCQkJIHJpbmctPm5hbWUsIHF1ZXVl ZCwgZmx5aW5nLCBjb21wbGV0ZSwgb3RoZXIsCj4+ICsJCQkJIGk5MTVfc2NoZWR1bGVyX2ZsYWdf c3RyKHNjaGVkdWxlci0+ZmxhZ3NbcmluZy0+aWRdKSwKPj4gKwkJCQkgZGV2X3ByaXYtPnJlcXVl c3RfdW5pcSwgZGV2X3ByaXYtPm5leHRfc2Vxbm8sCj4+ICsJCQkJIGJya3RbMF0sIG1zZywgYnJr dFsxXSk7Cj4gQ29udmVydCB0byBkZWJ1Z2ZzLCBpdCdzIHRoZSBkZS1mYWN0by4KPgo+PiArCX0g ZWxzZSB7Cj4+ICsJCS8qRFJNX0RFQlVHX0RSSVZFUigiPCVzPiBROiUwMmQsIEY6JTAyZCwgQzol MDJkLCBPOiUwMmQiCj4+ICsJCQkJICIsIEZsYWdzID0gJXMsIE5leHQgPSAlZDolZCBbJXNdXG4i LAo+PiArCQkJCSByaW5nLT5uYW1lLAo+PiArCQkJCSBxdWV1ZWQsIGZseWluZywgY29tcGxldGUs IG90aGVyLAo+PiArCQkJCSBpOTE1X3NjaGVkdWxlcl9mbGFnX3N0cihzY2hlZHVsZXItPmZsYWdz W3JpbmctPmlkXSksCj4+ICsJCQkJIGRldl9wcml2LT5yZXF1ZXN0X3VuaXEsIGRldl9wcml2LT5u ZXh0X3NlcW5vLCBtc2cpOyAqLwo+PiArCj4gRGVhZCBjb2RlIHRvIGJlIHJlbW92ZWQgZnJvbSBw YXRjaGVzLgo+Cj4+ICsJCXJldHVybiAwOwo+PiArCX0KPj4gKwo+PiArCWlmIChzY2hlZHVsZXIt PmZsYWdzW3JpbmctPmlkXSAmIGk5MTVfc2ZfZHVtcF9zZXFubykgewo+PiArCQl1aW50MzJfdCBz ZXFubzsKPj4gKwo+PiArCQlzZXFubyA9IHJpbmctPmdldF9zZXFubyhyaW5nLCB0cnVlKTsKPj4g Kwo+PiArCQlEUk1fREVCVUdfRFJJVkVSKCI8JXM+IFNlcW5vID0gJWRcbiIsIHJpbmctPm5hbWUs IHNlcW5vKTsKPj4gKwl9Cj4+ICsKPj4gKwlpZiAoc2NoZWR1bGVyLT5mbGFnc1tyaW5nLT5pZF0g JiBpOTE1X3NmX2R1bXBfZGV0YWlscykgewo+PiArCQlpbnQgaSwgZGVwczsKPj4gKwkJdWludDMy X3QgY291bnQsIGNvdW50c1tpOTE1X3Nxc19NQVhdOwo+PiArCj4+ICsJCW1lbXNldChjb3VudHMs IDB4MDAsIHNpemVvZihjb3VudHMpKTsKPj4gKwo+PiArCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5v ZGUsICZzY2hlZHVsZXItPm5vZGVfcXVldWVbcmluZy0+aWRdLCBsaW5rKSB7Cj4+ICsJCQlpZiAo bm9kZS0+c3RhdHVzIDwgaTkxNV9zcXNfTUFYKSB7Cj4+ICsJCQkJY291bnQgPSBjb3VudHNbbm9k ZS0+c3RhdHVzXSsrOwo+PiArCQkJfSBlbHNlIHsKPj4gKwkJCQlEUk1fREVCVUdfRFJJVkVSKCI8 JXM+ICAgVW5rbm93biBzdGF0dXM6ICVkIVxuIiwKPj4gKwkJCQkJCSByaW5nLT5uYW1lLCBub2Rl LT5zdGF0dXMpOwo+PiArCQkJCWNvdW50ID0gLTE7Cj4+ICsJCQl9Cj4+ICsKPj4gKwkJCWRlcHMg PSAwOwo+PiArCQkJZm9yIChpID0gMDsgaSA8IG5vZGUtPm51bV9kZXBzOyBpKyspCj4+ICsJCQkJ aWYgKGk5MTVfc2NoZWR1bGVyX2lzX2RlcGVuZGVuY3lfdmFsaWQobm9kZSwgaSkpCj4+ICsJCQkJ CWRlcHMrKzsKPj4gKwo+PiArCQkJRFJNX0RFQlVHX0RSSVZFUigiPCVzPiAgICVjOiUwMmQ+IHVu aXEgPSAlZCwgc2Vxbm8iCj4+ICsJCQkJCSAiID0gJWQvJXMsIGRlcHMgPSAlZCAvICVkLCAlcyBb cHJpID0gIgo+PiArCQkJCQkgIiU0ZF1cbiIsIHJpbmctPm5hbWUsCj4+ICsJCQkJCSBpOTE1X3Nj aGVkdWxlcl9xdWV1ZV9zdGF0dXNfY2hyKG5vZGUtPnN0YXR1cyksCj4+ICsJCQkJCSBjb3VudCwK Pj4gKwkJCQkJIG5vZGUtPnBhcmFtcy5yZXF1ZXN0LT51bmlxLAo+PiArCQkJCQkgbm9kZS0+cGFy YW1zLnJlcXVlc3QtPnNlcW5vLAo+PiArCQkJCQkgbm9kZS0+cGFyYW1zLnJpbmctPm5hbWUsCj4+ ICsJCQkJCSBkZXBzLCBub2RlLT5udW1fZGVwcywKPj4gKwkJCQkJIGk5MTVfcWVfc3RhdGVfc3Ry KG5vZGUpLAo+PiArCQkJCQkgbm9kZS0+cHJpb3JpdHkpOwo+PiArCj4+ICsJCQlpZiAoKHNjaGVk dWxlci0+ZmxhZ3NbcmluZy0+aWRdICYgaTkxNV9zZl9kdW1wX2RlcGVuZGVuY2llcykKPj4gKwkJ CQk9PSAwKQo+PiArCQkJCWNvbnRpbnVlOwo+PiArCj4+ICsJCQlmb3IgKGkgPSAwOyBpIDwgbm9k ZS0+bnVtX2RlcHM7IGkrKykKPj4gKwkJCQlpZiAobm9kZS0+ZGVwX2xpc3RbaV0pCj4+ICsJCQkJ CURSTV9ERUJVR19EUklWRVIoIjwlcz4gICAgICAgfC0lYzoiCj4+ICsJCQkJCQkiJTAyZCVjIHVu aXEgPSAlZCwgc2Vxbm8gPSAlZC8lcywgJXMgW3ByaSA9ICU0ZF1cbiIsCj4+ICsJCQkJCQlyaW5n LT5uYW1lLAo+PiArCQkJCQkJaTkxNV9zY2hlZHVsZXJfcXVldWVfc3RhdHVzX2Nocihub2RlLT5k ZXBfbGlzdFtpXS0+c3RhdHVzKSwKPj4gKwkJCQkJCWksCj4+ICsJCQkJCQlpOTE1X3NjaGVkdWxl cl9pc19kZXBlbmRlbmN5X3ZhbGlkKG5vZGUsIGkpCj4+ICsJCQkJCQkJPyAnPicgOiAnIycsCj4+ ICsJCQkJCQlub2RlLT5kZXBfbGlzdFtpXS0+cGFyYW1zLnJlcXVlc3QtPnVuaXEsCj4+ICsJCQkJ CQlub2RlLT5kZXBfbGlzdFtpXS0+cGFyYW1zLnJlcXVlc3QtPnNlcW5vLAo+PiArCQkJCQkJbm9k ZS0+ZGVwX2xpc3RbaV0tPnBhcmFtcy5yaW5nLT5uYW1lLAo+PiArCQkJCQkJaTkxNV9xZV9zdGF0 ZV9zdHIobm9kZS0+ZGVwX2xpc3RbaV0pLAo+PiArCQkJCQkJbm9kZS0+ZGVwX2xpc3RbaV0tPnBy aW9yaXR5KTsKPj4gKwkJfQo+PiArCX0KPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ ICsvKioKPj4gKyAqIGk5MTVfc2NoZWR1bGVyX2R1bXAgLSBkdW1wIHRoZSBzY2hlZHVsZXIncyBp bnRlcm5hbCBzdGF0ZSB0byB0aGUgZGVidWcgbG9nLgo+PiArICogQHJpbmc6IFJpbmcgdG8gZHVt cCBpbmZvIGZvcgo+PiArICogQG1zZzogQSByZWFzb24gd2h5IGl0IGlzIGJlaW5nIGR1bXBlZAo+ PiArICogRm9yIGRlYnVnZ2luZyBwdXJwb3NlcywgaXQgY2FuIGJlIHZlcnkgdXNlZnVsIHRvIHNl ZSB0aGUgaW50ZXJuYWwgc3RhdGUgb2YKPj4gKyAqIHRoZSBzY2hlZHVsZXIgZm9yIGEgZ2l2ZW4g cmluZy4KPj4gKyAqLwo+PiAraW50IGk5MTVfc2NoZWR1bGVyX2R1bXAoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywgY29uc3QgY2hhciAqbXNnKQo+PiArewo+PiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4+ICsJc3RydWN0 IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOwo+PiArCXVu c2lnbmVkIGxvbmcgZmxhZ3M7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCXNwaW5fbG9ja19pcnFz YXZlKCZzY2hlZHVsZXItPmxvY2ssIGZsYWdzKTsKPj4gKwlyZXQgPSBpOTE1X3NjaGVkdWxlcl9k dW1wX2xvY2tlZChyaW5nLCBtc2cpOwo+PiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVk dWxlci0+bG9jaywgZmxhZ3MpOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+IFRo aXMga2luZCBvZiBzdHVmZiBlc3BlY2lhbGx5IHNob3VsZCBiZSBzdGF0aWMgZnVuY3Rpb25zIGlu Cj4gaTkxNV9kZWJ1Z2ZzLmMuIEFuZCB0aGVuIHRoZXkgZG9uJ3QgbmVlZCBrZXJuZWxkb2MgZWl0 aGVyLCBiZWNhdXNlIHdlCj4gZXhwZWN0IG5vIHNhbmUgaW52aWR1YWwgdG8gY2FsbCB0aGVtLgo+ Cj4+ICtzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX2R1bXBfYWxsX2xvY2tlZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+PiArCQkJCQkgIGNvbnN0IGNoYXIgKm1zZykKPj4gK3sKPj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiArCXN0 cnVjdCBpOTE1X3NjaGVkdWxlciAqc2NoZWR1bGVyID0gZGV2X3ByaXYtPnNjaGVkdWxlcjsKPj4g KwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwo+PiArCWludCBpLCByLCByZXQgPSAwOwo+ PiArCj4+ICsJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewo+PiArCQlzY2hlZHVs ZXItPmZsYWdzW3JpbmctPmlkXSB8PSBpOTE1X3NmX2R1bXBfZm9yY2UgICB8Cj4+ICsJCQkJCSAg ICAgIGk5MTVfc2ZfZHVtcF9kZXRhaWxzIHwKPj4gKwkJCQkJICAgICAgaTkxNV9zZl9kdW1wX3Nl cW5vICAgfAo+PiArCQkJCQkgICAgICBpOTE1X3NmX2R1bXBfZGVwZW5kZW5jaWVzOwo+IFRoaXMg bG9va3MgcmVhbGx5IGJhZCB0byBtZSwgaW52YXNpdmUgZGVidWdnaW5nLiBSYXRoZXIgdG8gYmUg Y2FycmllZAo+IGFzIGZ1bmN0aW9uIHBhcmFtZXRlcnMgaW4gdGhlIGRlYnVnIGZ1bmN0aW9ucywg YW5kIHRoZXkgc2hvdWxkIGJlCj4gdXBwZXJjYXNlIGVudW0gaW4gaTkxNV9kZWJ1Z2ZzLmMgdG9v Lgo+Cj4+ICsJCXIgPSBpOTE1X3NjaGVkdWxlcl9kdW1wX2xvY2tlZChyaW5nLCBtc2cpOwo+PiAr CQlpZiAocmV0ID09IDApCj4+ICsJCQlyZXQgPSByOwo+PiArCX0KPj4gKwo+PiArCXJldHVybiBy ZXQ7Cj4+ICt9Cj4+ICsKPj4gKy8qKgo+PiArICogaTkxNV9zY2hlZHVsZXJfZHVtcF9hbGwgLSBk dW1wIHRoZSBzY2hlZHVsZXIncyBpbnRlcm5hbCBzdGF0ZSB0byB0aGUgZGVidWcKPj4gKyAqIGxv Zy4KPj4gKyAqIEBkZXY6IERSTSBkZXZpY2UKPj4gKyAqIEBtc2c6IEEgcmVhc29uIHdoeSBpdCBp cyBiZWluZyBkdW1wZWQKPj4gKyAqIEZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIGl0IGNhbiBiZSB2 ZXJ5IHVzZWZ1bCB0byBzZWUgdGhlIGludGVybmFsIHN0YXRlIG9mCj4+ICsgKiB0aGUgc2NoZWR1 bGVyLgo+PiArICovCj4+ICtpbnQgaTkxNV9zY2hlZHVsZXJfZHVtcF9hbGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbXNnKQo+PiArewo+PiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ICsJc3RydWN0IGk5MTVfc2No ZWR1bGVyICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOwo+PiArCXVuc2lnbmVkIGxv bmcgZmxhZ3M7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hl ZHVsZXItPmxvY2ssIGZsYWdzKTsKPj4gKwlyZXQgPSBpOTE1X3NjaGVkdWxlcl9kdW1wX2FsbF9s b2NrZWQoZGV2LCBtc2cpOwo+PiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkdWxlci0+ bG9jaywgZmxhZ3MpOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiAgIHN0YXRp YyBpbnQgaTkxNV9zY2hlZHVsZXJfc3VibWl0X21heF9wcmlvcml0eShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLAo+PiAgIAkJCQkJICAgICAgYm9vbCBpc19sb2NrZWQpCj4+ICAgewo+PiBA QCAtMTI0NiwxMCArMTU0NCwxMCBAQCBpbnQgaTkxNV9zY2hlZHVsZXJfY2xvc2VmaWxlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPj4gICAJCQkJY29udGlu dWU7Cj4+ICAgCj4+ICAgCQkJaWYgKCFJOTE1X1NRU19JU19DT01QTEVURShub2RlKSkKPj4gLQkJ CQlEUk1fREVCVUdfRFJJVkVSKCJDbG9zaW5nIGZpbGUgaGFuZGxlIHdpdGggb3V0c3RhbmRpbmcg d29yazogJWQ6JWQvJWQgb24gJXNcbiIsCj4+ICsJCQkJRFJNX0RFQlVHX0RSSVZFUigiQ2xvc2lu ZyBmaWxlIGhhbmRsZSB3aXRoIG91dHN0YW5kaW5nIHdvcms6ICVkOiVkLyVzIG9uICVzXG4iLAo+ PiAgIAkJCQkJCSBub2RlLT5wYXJhbXMucmVxdWVzdC0+dW5pcSwKPj4gICAJCQkJCQkgbm9kZS0+ cGFyYW1zLnJlcXVlc3QtPnNlcW5vLAo+PiAtCQkJCQkJIG5vZGUtPnN0YXR1cywKPj4gKwkJCQkJ CSBpOTE1X3FlX3N0YXRlX3N0cihub2RlKSwKPiBJZiB0aGUgY29kZSBpcyB0byBiZSBjYWxsZWQg ZnJvbSBvdXRzaWRlIG9mIGk5MTVfZGVidWdmcy5jLCBpdCBzaG91bGQKPiByZWFsbHkgYmUgd3Jp dHRlbiBpbiBhIG1vcmUgc2FmZSBtYW5uZXIgdGhhbiBzdGF0aWMgY2hhciwgZXNwZWNpYWxseSBh cwo+IGl0IGlzIG5vdCBtdWNoIG9mIGFuIGVmZm9ydCB0byBtYWtlIGEgdGFibGUgdG8gaW5kZXgu Cj4KPiBSZWdhcmRzLCBKb29uYXMKPgo+PiAgIAkJCQkJCSByaW5nLT5uYW1lKTsKPj4gICAKPj4g ICAJCQlpOTE1X3NjaGVkdWxlcl9maWxlX3F1ZXVlX2RlYyhub2RlLT5wYXJhbXMuZmlsZSk7Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaAo+PiBpbmRleCBiNzhkZTEyLi5hMDcx ZWJiIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5o Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKPj4gQEAgLTQx LDYgKzQxLDkgQEAgZW51bSBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9zdGF0dXMgewo+PiAgIAkvKiBM aW1pdCB2YWx1ZSBmb3IgdXNlIHdpdGggYXJyYXlzL2xvb3BzICovCj4+ICAgCWk5MTVfc3FzX01B WAo+PiAgIH07Cj4+ICtjaGFyIGk5MTVfc2NoZWR1bGVyX3F1ZXVlX3N0YXR1c19jaHIoZW51bSBp OTE1X3NjaGVkdWxlcl9xdWV1ZV9zdGF0dXMgc3RhdHVzKTsKPj4gK2NvbnN0IGNoYXIgKmk5MTVf c2NoZWR1bGVyX3F1ZXVlX3N0YXR1c19zdHIoCj4+ICsJCQkJZW51bSBpOTE1X3NjaGVkdWxlcl9x dWV1ZV9zdGF0dXMgc3RhdHVzKTsKPj4gICAKPj4gICAjZGVmaW5lIEk5MTVfU1FTX0lTX1FVRVVF RChub2RlKQkoKChub2RlKS0+c3RhdHVzID09IGk5MTVfc3FzX3F1ZXVlZCkpCj4+ICAgI2RlZmlu ZSBJOTE1X1NRU19JU19GTFlJTkcobm9kZSkJKCgobm9kZSktPnN0YXR1cyA9PSBpOTE1X3Nxc19m bHlpbmcpKQo+PiBAQCAtNjUsNiArNjgsNyBAQCBzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVf ZW50cnkgewo+PiAgIAl1bnNpZ25lZCBsb25nICAgICAgICAgICAgICAgICAgICAgICBzdGFtcDsK Pj4gICAJc3RydWN0IGxpc3RfaGVhZCAgICAgICAgICAgICAgICAgICAgbGluazsKPj4gICB9Owo+ PiArY29uc3QgY2hhciAqaTkxNV9xZV9zdGF0ZV9zdHIoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1 ZXVlX2VudHJ5ICpub2RlKTsKPj4gICAKPj4gICBzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIgewo+PiAg IAlzdHJ1Y3QgbGlzdF9oZWFkICAgIG5vZGVfcXVldWVbSTkxNV9OVU1fUklOR1NdOwo+PiBAQCAt ODIsOSArODYsMTcgQEAgc3RydWN0IGk5MTVfc2NoZWR1bGVyIHsKPj4gICAKPj4gICAvKiBGbGFn IGJpdHMgZm9yIGk5MTVfc2NoZWR1bGVyOjpmbGFncyAqLwo+PiAgIGVudW0gewo+PiArCS8qIElu dGVybmFsIHN0YXRlICovCj4+ICAgCWk5MTVfc2ZfaW50ZXJydXB0c19lbmFibGVkICA9ICgxIDw8 IDApLAo+PiAgIAlpOTE1X3NmX3N1Ym1pdHRpbmcgICAgICAgICAgPSAoMSA8PCAxKSwKPj4gKwo+ PiArCS8qIER1bXAvZGVidWcgZmxhZ3MgKi8KPj4gKwlpOTE1X3NmX2R1bXBfZm9yY2UgICAgICAg ICAgPSAoMSA8PCA4KSwKPj4gKwlpOTE1X3NmX2R1bXBfZGV0YWlscyAgICAgICAgPSAoMSA8PCA5 KSwKPj4gKwlpOTE1X3NmX2R1bXBfZGVwZW5kZW5jaWVzICAgPSAoMSA8PCAxMCksCj4+ICsJaTkx NV9zZl9kdW1wX3NlcW5vICAgICAgICAgID0gKDEgPDwgMTEpLAo+PiAgIH07Cj4+ICtjb25zdCBj aGFyICppOTE1X3NjaGVkdWxlcl9mbGFnX3N0cih1aW50MzJfdCBmbGFncyk7Cj4+ICAgCj4+ICAg Ym9vbCBpOTE1X3NjaGVkdWxlcl9pc19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ PiAgIGludCBpOTE1X3NjaGVkdWxlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiBA QCAtOTksNiArMTExLDkgQEAgdm9pZCBpOTE1X3NjaGVkdWxlcl93b3JrX2hhbmRsZXIoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKTsKPj4gICBpbnQgaTkxNV9zY2hlZHVsZXJfZmx1c2goc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBpc19sb2NrZWQpOwo+PiAgIGludCBpOTE1X3Nj aGVkdWxlcl9mbHVzaF9zdGFtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+PiAgIAkJ CSAgICAgICB1bnNpZ25lZCBsb25nIHN0YW1wLCBib29sIGlzX2xvY2tlZCk7Cj4+ICtpbnQgaTkx NV9zY2hlZHVsZXJfZHVtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+PiArCQkJY29u c3QgY2hhciAqbXNnKTsKPj4gK2ludCBpOTE1X3NjaGVkdWxlcl9kdW1wX2FsbChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBjb25zdCBjaGFyICptc2cpOwo+PiAgIGJvb2wgaTkxNV9zY2hlZHVsZXJf aXNfcmVxdWVzdF90cmFja2VkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+PiAg IAkJCQkgICAgICAgYm9vbCAqY29tcGxldGVkLCBib29sICpidXN5KTsKPj4gICBib29sIGk5MTVf c2NoZWR1bGVyX2ZpbGVfcXVldWVfaXNfZnVsbChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==