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: Mon, 07 Mar 2016 14:31:17 +0200 Message-ID: <1457353877.14727.24.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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 124176E36B for ; Mon, 7 Mar 2016 12:31:13 +0000 (UTC) In-Reply-To: <1455805644-6450-28-git-send-email-John.C.Harrison@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.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org SGksCgpPbiB0bywgMjAxNi0wMi0xOCBhdCAxNDoyNyArMDAwMCwgSm9obi5DLkhhcnJpc29uQElu dGVsLmNvbSB3cm90ZToKPiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50 ZWwuY29tPgo+IAo+IFdoZW4gZGVidWdnaW5nIGJhdGNoIGJ1ZmZlciBzdWJtaXNzaW9uIGlzc3Vl cywgaXQgaXMgdXNlZnVsIHRvIGJlIGFibGUKPiB0byBzZWUgd2hhdCB0aGUgY3VycmVudCBzdGF0 ZSBvZiB0aGUgc2NoZWR1bGVyIGlzLiBUaGlzIGNoYW5nZSBhZGRzCj4gZnVuY3Rpb25zIGZvciBk ZWNvZGluZyB0aGUgaW50ZXJuYWwgc2NoZWR1bGVyIHN0YXRlIGFuZCByZXBvcnRpbmcgaXQuCj4g Cj4gdjM6IFVwZGF0ZWQgYSBkZWJ1ZyBtZXNzYWdlIHdpdGggdGhlIG5ldyBzdGF0ZV9zdHIoKSBm dW5jdGlvbi4KPiAKPiB2NDogV3JhcHBlZCBzb21lIGxvbmcgbGluZXMgdG8ga2VlcCB0aGUgc3R5 bGUgY2hlY2tlciBoYXBweS4gUmVtb3ZlZAo+IHRoZSBmZW5jZS9zeW5jIGNvZGUgYXMgdGhhdCB3 aWxsIG5vdyBiZSBwYXJ0IG9mIGEgc2VwYXJhdGUgcGF0Y2ggc2VyaWVzLgo+IAo+IHY1OiBSZW1v dmVkIGZvcndhcmQgZGVjbGFyYXRpb25zIGFuZCB3aGl0ZSBzcGFjZS4gQWRkZWQgZG9jdW1lbnRh dGlvbi4KPiBbSm9vbmFzIExhaHRpbmVuXQo+IAo+IEFsc28gc3F1YXNoZWQgaW4gbGF0ZXIgcGF0 Y2ggdG8gYWRkIHNlcW5vIGluZm9ybWF0aW9uIGZyb20gdGhlIHN0YXJ0Lgo+IEl0IHdhcyBvbmx5 IGJlaW5nIGFkZGVkIGluIGEgc2VwYXJhdGUgcGF0Y2ggZHVlIHRvIGhpc3RvcmljYWwgcmVhc29u cwo+IHdoaWNoIGhhdmUgc2luY2UgZ29uZSBhd2F5Lgo+IAo+IEZvcjogVklaLTE1ODcKPiBTaWdu ZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+IENj OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gLS0t Cj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jIHwgMzAyICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf c2NoZWR1bGVyLmggfMKgwqAxNSArKwo+IMKgMiBmaWxlcyBjaGFuZ2VkLCAzMTUgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9zY2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVy LmMKPiBpbmRleCBmN2YyOWQ1Li5kMGVlZDUyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3NjaGVkdWxlci5jCj4gQEAgLTQwLDYgKzQwLDExNyBAQCBib29sIGk5MTVfc2NoZWR1bGVyX2lz X2VuYWJsZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiDCoAlyZXR1cm4gZGV2X3ByaXYtPnNj aGVkdWxlciAhPSBOVUxMOwo+IMKgfQo+IAoKVGhlc2Ugc29ydCBvZiBmdW5jdGlvbnMgc2hvdWxk IGJlIGluIGk5MTVfZGVidWdmcy5jLCBzbyB0aGF0IG5vYm9keQpldmVuIHRoaW5rcyBvZiB1c2lu ZyB0aGVtIGZvciBvdGhlciBwdXJwb3Nlcy4KCj4gwqAKPiArY29uc3QgY2hhciAqaTkxNV9xZV9z dGF0ZV9zdHIoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpub2RlKQo+ICt7Cj4g KwlzdGF0aWMgY2hhcglzdHJbNTBdOwo+ICsJY2hhcgkJKnB0ciA9IHN0cjsKPiArCj4gKwkqKHB0 cisrKSA9IG5vZGUtPmJ1bXBlZCA/ICdCJyA6ICctJywKPiArCSoocHRyKyspID0gaTkxNV9nZW1f cmVxdWVzdF9jb21wbGV0ZWQobm9kZS0+cGFyYW1zLnJlcXVlc3QpID8gJ0MnIDogJy0nOwo+ICsK CkVzcGVjaWFsbHkgdGhpcyBraW5kIG9mIGNvZGUgbmVlZHMgdG8gYmUgaW4gaTkxNV9kZWJ1Z2Zz LmMuIEknZAppbXBsZW1lbnQgbmV3IGNvZGUgbW9yZSBhbG9uZyBsaW5lcyBvZsKgaTkxNV9zc2V1 X3N0YXR1cygpLCBidXQgSSBzZWUKdGhpcyBraW5kIG9mIGNvZGUgd2FzIHByZXZpb3VzbHkgbWVy Z2VkLgoKPiArCSpwdHIgPSAwOwo+ICsKPiArCXJldHVybiBzdHI7Cj4gK30KPiArCj4gK2NoYXIg aTkxNV9zY2hlZHVsZXJfcXVldWVfc3RhdHVzX2NocihlbnVtIGk5MTVfc2NoZWR1bGVyX3F1ZXVl X3N0YXR1cyBzdGF0dXMpCj4gK3sKPiArCXN3aXRjaCAoc3RhdHVzKSB7Cj4gKwljYXNlIGk5MTVf c3FzX25vbmU6Cj4gKwlyZXR1cm4gJ04nOwo+ICsKPiArCWNhc2UgaTkxNV9zcXNfcXVldWVkOgo+ ICsJcmV0dXJuICdRJzsKPiArCj4gKwljYXNlIGk5MTVfc3FzX3BvcHBlZDoKPiArCXJldHVybiAn WCc7Cj4gKwo+ICsJY2FzZSBpOTE1X3Nxc19mbHlpbmc6Cj4gKwlyZXR1cm4gJ0YnOwo+ICsKPiAr CWNhc2UgaTkxNV9zcXNfY29tcGxldGU6Cj4gKwlyZXR1cm4gJ0MnOwo+ICsKPiArCWNhc2UgaTkx NV9zcXNfZGVhZDoKPiArCXJldHVybiAnRCc7Cj4gKwo+ICsJZGVmYXVsdDoKPiArCWJyZWFrOwo+ ICsJfQo+ICsKCkJhZCBpbmRlbnQuCgo+ICsJcmV0dXJuICc/JzsKPiArfQo+ICsKPiArY29uc3Qg Y2hhciAqaTkxNV9zY2hlZHVsZXJfcXVldWVfc3RhdHVzX3N0cigKPiArCQkJCWVudW0gaTkxNV9z Y2hlZHVsZXJfcXVldWVfc3RhdHVzIHN0YXR1cykKPiArewo+ICsJc3RhdGljIGNoYXIJc3RyWzUw XTsKPiArCj4gKwlzd2l0Y2ggKHN0YXR1cykgewo+ICsJY2FzZSBpOTE1X3Nxc19ub25lOgo+ICsJ cmV0dXJuICJOb25lIjsKPiArCj4gKwljYXNlIGk5MTVfc3FzX3F1ZXVlZDoKPiArCXJldHVybiAi UXVldWVkIjsKPiArCj4gKwljYXNlIGk5MTVfc3FzX3BvcHBlZDoKPiArCXJldHVybiAiUG9wcGVk IjsKPiArCj4gKwljYXNlIGk5MTVfc3FzX2ZseWluZzoKPiArCXJldHVybiAiRmx5aW5nIjsKPiAr Cj4gKwljYXNlIGk5MTVfc3FzX2NvbXBsZXRlOgo+ICsJcmV0dXJuICJDb21wbGV0ZSI7Cj4gKwo+ ICsJY2FzZSBpOTE1X3Nxc19kZWFkOgo+ICsJcmV0dXJuICJEZWFkIjsKPiArCj4gKwlkZWZhdWx0 Ogo+ICsJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJc3ByaW50ZihzdHIsICJbVW5rbm93bl8lZCFdIiwg c3RhdHVzKTsKPiArCXJldHVybiBzdHI7Cj4gK30KPiArCj4gK2NvbnN0IGNoYXIgKmk5MTVfc2No ZWR1bGVyX2ZsYWdfc3RyKHVpbnQzMl90IGZsYWdzKQo+ICt7Cj4gKwlzdGF0aWMgY2hhciBzdHJb MTAwXTsKPiArCWNoYXIgKnB0ciA9IHN0cjsKPiArCj4gKwkqcHRyID0gMDsKPiArCj4gKyNkZWZp bmUgVEVTVF9GTEFHKGZsYWcsIG1zZykJCQkJCQlcCj4gKwlkbyB7CQkJCQkJCQlcCj4gKwkJaWYg KGZsYWdzICYgKGZsYWcpKSB7CQkJCQlcCj4gKwkJCXN0cmNweShwdHIsIG1zZyk7CQkJCVwKPiAr CQkJcHRyICs9IHN0cmxlbihwdHIpOwkJCQlcCj4gKwkJCWZsYWdzICY9IH4oZmxhZyk7CQkJCVwK PiArCQl9CQkJCQkJCVwKPiArCX0gd2hpbGUgKDApCj4gKwo+ICsJVEVTVF9GTEFHKGk5MTVfc2Zf aW50ZXJydXB0c19lbmFibGVkLCAiSW50T258Iik7Cj4gKwlURVNUX0ZMQUcoaTkxNV9zZl9zdWJt aXR0aW5nLMKgwqDCoMKgwqDCoMKgwqDCoCJTdWJtaXR0aW5nfCIpOwo+ICsJVEVTVF9GTEFHKGk5 MTVfc2ZfZHVtcF9mb3JjZSzCoMKgwqDCoMKgwqDCoMKgwqAiRHVtcEZvcmNlfCIpOwo+ICsJVEVT VF9GTEFHKGk5MTVfc2ZfZHVtcF9kZXRhaWxzLMKgwqDCoMKgwqDCoMKgIkR1bXBEZXRhaWxzfCIp Owo+ICsJVEVTVF9GTEFHKGk5MTVfc2ZfZHVtcF9kZXBlbmRlbmNpZXMswqDCoCJEdW1wRGVwc3wi KTsKPiArCVRFU1RfRkxBRyhpOTE1X3NmX2R1bXBfc2Vxbm8swqDCoMKgwqDCoMKgwqDCoMKgIkR1 bXBTZXFub3wiKTsKPiArCj4gKyN1bmRlZiBURVNUX0ZMQUcKPiArCj4gKwlpZiAoZmxhZ3MpIHsK PiArCQlzcHJpbnRmKHB0ciwgIlVua25vd25fMHglWCEiLCBmbGFncyk7Cj4gKwkJcHRyICs9IHN0 cmxlbihwdHIpOwo+ICsJfQo+ICsKPiArCWlmIChwdHIgPT0gc3RyKQo+ICsJCXN0cmNweShzdHIs ICItIik7Cj4gKwllbHNlCj4gKwkJcHRyWy0xXSA9IDA7Cj4gKwo+ICsJcmV0dXJuIHN0cjsKPiAr fTsKPiArCj4gwqAvKioKPiDCoCAqIGk5MTVfc2NoZWR1bGVyX2luaXQgLSBJbml0aWFsaXNlIHRo ZSBzY2hlZHVsZXIuCj4gwqAgKiBAZGV2OiBEUk0gZGV2aWNlCj4gQEAgLTEwMjQsNiArMTEzNSwx OTMgQEAgdm9pZCBpOTE1X3NjaGVkdWxlcl93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQo+IMKgCQlpOTE1X3NjaGVkdWxlcl9wcm9jZXNzX3dvcmsocmluZyk7Cj4gwqB9Cj4g wqAKPiArc3RhdGljIGludCBpOTE1X3NjaGVkdWxlcl9kdW1wX2xvY2tlZChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLAo+ICsJCQkJwqDCoMKgwqDCoMKgY29uc3QgY2hhciAqbXNnKQo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9w cml2YXRlOwo+ICsJc3RydWN0IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+ c2NoZWR1bGVyOwo+ICsJc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpub2RlOwo+ ICsJaW50IGZseWluZyA9IDAsIHF1ZXVlZCA9IDAsIGNvbXBsZXRlID0gMCwgb3RoZXIgPSAwOwo+ ICsJc3RhdGljIGludCBvbGRfZmx5aW5nID0gLTEsIG9sZF9xdWV1ZWQgPSAtMSwgb2xkX2NvbXBs ZXRlID0gLTE7Cj4gKwlib29sIGJfZHVtcDsKPiArCWNoYXIgYnJrdFsyXSA9IHsgJzwnLCAnPicg fTsKPiArCj4gKwlpZiAoIXJpbmcpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJbGlzdF9m b3JfZWFjaF9lbnRyeShub2RlLCAmc2NoZWR1bGVyLT5ub2RlX3F1ZXVlW3JpbmctPmlkXSwgbGlu aykgewo+ICsJCWlmIChJOTE1X1NRU19JU19RVUVVRUQobm9kZSkpCj4gKwkJCXF1ZXVlZCsrOwo+ ICsJCWVsc2UgaWYgKEk5MTVfU1FTX0lTX0ZMWUlORyhub2RlKSkKPiArCQkJZmx5aW5nKys7Cj4g KwkJZWxzZSBpZiAoSTkxNV9TUVNfSVNfQ09NUExFVEUobm9kZSkpCj4gKwkJCWNvbXBsZXRlKys7 Cj4gKwkJZWxzZQo+ICsJCQlvdGhlcisrOwo+ICsJfQo+ICsKPiArCWJfZHVtcCA9IChmbHlpbmcg IT0gb2xkX2ZseWluZykgfHwKPiArCQnCoChxdWV1ZWQgIT0gb2xkX3F1ZXVlZCkgfHwKPiArCQnC oChjb21wbGV0ZSAhPSBvbGRfY29tcGxldGUpOwo+ICsJaWYgKHNjaGVkdWxlci0+ZmxhZ3Nbcmlu Zy0+aWRdICYgaTkxNV9zZl9kdW1wX2ZvcmNlKSB7Cj4gKwkJaWYgKCFiX2R1bXApIHsKPiArCQkJ Yl9kdW1wID0gdHJ1ZTsKPiArCQkJYnJrdFswXSA9ICd7JzsKPiArCQkJYnJrdFsxXSA9ICd9JzsK PiArCQl9Cj4gKwo+ICsJCXNjaGVkdWxlci0+ZmxhZ3NbcmluZy0+aWRdICY9IH5pOTE1X3NmX2R1 bXBfZm9yY2U7Cj4gKwl9Cj4gKwo+ICsJaWYgKGJfZHVtcCkgewo+ICsJCW9sZF9mbHlpbmfCoMKg wqA9IGZseWluZzsKPiArCQlvbGRfcXVldWVkwqDCoMKgPSBxdWV1ZWQ7Cj4gKwkJb2xkX2NvbXBs ZXRlID0gY29tcGxldGU7Cj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiPCVzPiBROiUwMmQsIEY6JTAy ZCwgQzolMDJkLCBPOiUwMmQsICIKPiArCQkJCcKgIkZsYWdzID0gJXMsIE5leHQgPSAlZDolZCAl YyVzJWNcbiIsCj4gKwkJCQnCoHJpbmctPm5hbWUsIHF1ZXVlZCwgZmx5aW5nLCBjb21wbGV0ZSwg b3RoZXIsCj4gKwkJCQnCoGk5MTVfc2NoZWR1bGVyX2ZsYWdfc3RyKHNjaGVkdWxlci0+ZmxhZ3Nb cmluZy0+aWRdKSwKPiArCQkJCcKgZGV2X3ByaXYtPnJlcXVlc3RfdW5pcSwgZGV2X3ByaXYtPm5l eHRfc2Vxbm8sCj4gKwkJCQnCoGJya3RbMF0sIG1zZywgYnJrdFsxXSk7CgpDb252ZXJ0IHRvIGRl YnVnZnMsIGl0J3MgdGhlIGRlLWZhY3RvLgoKPiArCX0gZWxzZSB7Cj4gKwkJLypEUk1fREVCVUdf RFJJVkVSKCI8JXM+IFE6JTAyZCwgRjolMDJkLCBDOiUwMmQsIE86JTAyZCIKPiArCQkJCcKgIiwg RmxhZ3MgPSAlcywgTmV4dCA9ICVkOiVkIFslc11cbiIsCj4gKwkJCQnCoHJpbmctPm5hbWUsCj4g KwkJCQnCoHF1ZXVlZCwgZmx5aW5nLCBjb21wbGV0ZSwgb3RoZXIsCj4gKwkJCQnCoGk5MTVfc2No ZWR1bGVyX2ZsYWdfc3RyKHNjaGVkdWxlci0+ZmxhZ3NbcmluZy0+aWRdKSwKPiArCQkJCcKgZGV2 X3ByaXYtPnJlcXVlc3RfdW5pcSwgZGV2X3ByaXYtPm5leHRfc2Vxbm8sIG1zZyk7ICovCj4gKwoK RGVhZCBjb2RlIHRvIGJlIHJlbW92ZWQgZnJvbSBwYXRjaGVzLgoKPiArCQlyZXR1cm4gMDsKPiAr CX0KPiArCj4gKwlpZiAoc2NoZWR1bGVyLT5mbGFnc1tyaW5nLT5pZF0gJiBpOTE1X3NmX2R1bXBf c2Vxbm8pIHsKPiArCQl1aW50MzJfdCBzZXFubzsKPiArCj4gKwkJc2Vxbm8gPSByaW5nLT5nZXRf c2Vxbm8ocmluZywgdHJ1ZSk7Cj4gKwo+ICsJCURSTV9ERUJVR19EUklWRVIoIjwlcz4gU2Vxbm8g PSAlZFxuIiwgcmluZy0+bmFtZSwgc2Vxbm8pOwo+ICsJfQo+ICsKPiArCWlmIChzY2hlZHVsZXIt PmZsYWdzW3JpbmctPmlkXSAmIGk5MTVfc2ZfZHVtcF9kZXRhaWxzKSB7Cj4gKwkJaW50IGksIGRl cHM7Cj4gKwkJdWludDMyX3QgY291bnQsIGNvdW50c1tpOTE1X3Nxc19NQVhdOwo+ICsKPiArCQlt ZW1zZXQoY291bnRzLCAweDAwLCBzaXplb2YoY291bnRzKSk7Cj4gKwo+ICsJCWxpc3RfZm9yX2Vh Y2hfZW50cnkobm9kZSwgJnNjaGVkdWxlci0+bm9kZV9xdWV1ZVtyaW5nLT5pZF0sIGxpbmspIHsK PiArCQkJaWYgKG5vZGUtPnN0YXR1cyA8IGk5MTVfc3FzX01BWCkgewo+ICsJCQkJY291bnQgPSBj b3VudHNbbm9kZS0+c3RhdHVzXSsrOwo+ICsJCQl9IGVsc2Ugewo+ICsJCQkJRFJNX0RFQlVHX0RS SVZFUigiPCVzPsKgwqDCoFVua25vd24gc3RhdHVzOiAlZCFcbiIsCj4gKwkJCQkJCcKgcmluZy0+ bmFtZSwgbm9kZS0+c3RhdHVzKTsKPiArCQkJCWNvdW50ID0gLTE7Cj4gKwkJCX0KPiArCj4gKwkJ CWRlcHMgPSAwOwo+ICsJCQlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtX2RlcHM7IGkrKykKPiAr CQkJCWlmIChpOTE1X3NjaGVkdWxlcl9pc19kZXBlbmRlbmN5X3ZhbGlkKG5vZGUsIGkpKQo+ICsJ CQkJCWRlcHMrKzsKPiArCj4gKwkJCURSTV9ERUJVR19EUklWRVIoIjwlcz7CoMKgwqAlYzolMDJk PiB1bmlxID0gJWQsIHNlcW5vIgo+ICsJCQkJCcKgIiA9ICVkLyVzLCBkZXBzID0gJWQgLyAlZCwg JXMgW3ByaSA9ICIKPiArCQkJCQnCoCIlNGRdXG4iLCByaW5nLT5uYW1lLAo+ICsJCQkJCcKgaTkx NV9zY2hlZHVsZXJfcXVldWVfc3RhdHVzX2Nocihub2RlLT5zdGF0dXMpLAo+ICsJCQkJCcKgY291 bnQsCj4gKwkJCQkJwqBub2RlLT5wYXJhbXMucmVxdWVzdC0+dW5pcSwKPiArCQkJCQnCoG5vZGUt PnBhcmFtcy5yZXF1ZXN0LT5zZXFubywKPiArCQkJCQnCoG5vZGUtPnBhcmFtcy5yaW5nLT5uYW1l LAo+ICsJCQkJCcKgZGVwcywgbm9kZS0+bnVtX2RlcHMsCj4gKwkJCQkJwqBpOTE1X3FlX3N0YXRl X3N0cihub2RlKSwKPiArCQkJCQnCoG5vZGUtPnByaW9yaXR5KTsKPiArCj4gKwkJCWlmICgoc2No ZWR1bGVyLT5mbGFnc1tyaW5nLT5pZF0gJiBpOTE1X3NmX2R1bXBfZGVwZW5kZW5jaWVzKQo+ICsJ CQkJPT0gMCkKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiArCQkJZm9yIChpID0gMDsgaSA8IG5vZGUt Pm51bV9kZXBzOyBpKyspCj4gKwkJCQlpZiAobm9kZS0+ZGVwX2xpc3RbaV0pCj4gKwkJCQkJRFJN X0RFQlVHX0RSSVZFUigiPCVzPsKgwqDCoMKgwqDCoMKgfC0lYzoiCj4gKwkJCQkJCSIlMDJkJWMg dW5pcSA9ICVkLCBzZXFubyA9ICVkLyVzLCAlcyBbcHJpID0gJTRkXVxuIiwKPiArCQkJCQkJcmlu Zy0+bmFtZSwKPiArCQkJCQkJaTkxNV9zY2hlZHVsZXJfcXVldWVfc3RhdHVzX2Nocihub2RlLT5k ZXBfbGlzdFtpXS0+c3RhdHVzKSwKPiArCQkJCQkJaSwKPiArCQkJCQkJaTkxNV9zY2hlZHVsZXJf aXNfZGVwZW5kZW5jeV92YWxpZChub2RlLCBpKQo+ICsJCQkJCQkJPyAnPicgOiAnIycsCj4gKwkJ CQkJCW5vZGUtPmRlcF9saXN0W2ldLT5wYXJhbXMucmVxdWVzdC0+dW5pcSwKPiArCQkJCQkJbm9k ZS0+ZGVwX2xpc3RbaV0tPnBhcmFtcy5yZXF1ZXN0LT5zZXFubywKPiArCQkJCQkJbm9kZS0+ZGVw X2xpc3RbaV0tPnBhcmFtcy5yaW5nLT5uYW1lLAo+ICsJCQkJCQlpOTE1X3FlX3N0YXRlX3N0cihu b2RlLT5kZXBfbGlzdFtpXSksCj4gKwkJCQkJCW5vZGUtPmRlcF9saXN0W2ldLT5wcmlvcml0eSk7 Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICsvKioKPiArICogaTkx NV9zY2hlZHVsZXJfZHVtcCAtIGR1bXAgdGhlIHNjaGVkdWxlcidzIGludGVybmFsIHN0YXRlIHRv IHRoZSBkZWJ1ZyBsb2cuCj4gKyAqIEByaW5nOiBSaW5nIHRvIGR1bXAgaW5mbyBmb3IKPiArICog QG1zZzogQSByZWFzb24gd2h5IGl0IGlzIGJlaW5nIGR1bXBlZAo+ICsgKiBGb3IgZGVidWdnaW5n IHB1cnBvc2VzLCBpdCBjYW4gYmUgdmVyeSB1c2VmdWwgdG8gc2VlIHRoZSBpbnRlcm5hbCBzdGF0 ZSBvZgo+ICsgKiB0aGUgc2NoZWR1bGVyIGZvciBhIGdpdmVuIHJpbmcuCj4gKyAqLwo+ICtpbnQg aTkxNV9zY2hlZHVsZXJfZHVtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBjb25zdCBj aGFyICptc2cpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJp bmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIgKnNjaGVkdWxl ciA9IGRldl9wcml2LT5zY2hlZHVsZXI7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsJaW50 IHJldDsKPiArCj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWR1bGVyLT5sb2NrLCBmbGFncyk7 Cj4gKwlyZXQgPSBpOTE1X3NjaGVkdWxlcl9kdW1wX2xvY2tlZChyaW5nLCBtc2cpOwo+ICsJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWR1bGVyLT5sb2NrLCBmbGFncyk7Cj4gKwo+ICsJcmV0 dXJuIHJldDsKPiArfQo+ICsKClRoaXMga2luZCBvZiBzdHVmZiBlc3BlY2lhbGx5IHNob3VsZCBi ZSBzdGF0aWMgZnVuY3Rpb25zIGluCmk5MTVfZGVidWdmcy5jLiBBbmQgdGhlbiB0aGV5IGRvbid0 IG5lZWQga2VybmVsZG9jIGVpdGhlciwgYmVjYXVzZSB3ZQpleHBlY3Qgbm8gc2FuZSBpbnZpZHVh bCB0byBjYWxsIHRoZW0uCgo+ICtzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX2R1bXBfYWxsX2xv Y2tlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJCcKgwqBjb25zdCBjaGFyICptc2cp Cj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gKwlzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIgKnNjaGVkdWxlciA9IGRldl9wcml2LT5z Y2hlZHVsZXI7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwo+ICsJaW50IGksIHIs IHJldCA9IDA7Cj4gKwo+ICsJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewo+ICsJ CXNjaGVkdWxlci0+ZmxhZ3NbcmluZy0+aWRdIHw9IGk5MTVfc2ZfZHVtcF9mb3JjZcKgwqDCoHwK PiArCQkJCQnCoMKgwqDCoMKgwqBpOTE1X3NmX2R1bXBfZGV0YWlscyB8Cj4gKwkJCQkJwqDCoMKg wqDCoMKgaTkxNV9zZl9kdW1wX3NlcW5vwqDCoMKgfAo+ICsJCQkJCcKgwqDCoMKgwqDCoGk5MTVf c2ZfZHVtcF9kZXBlbmRlbmNpZXM7CgpUaGlzIGxvb2tzIHJlYWxseSBiYWQgdG8gbWUsIGludmFz aXZlIGRlYnVnZ2luZy4gUmF0aGVyIHRvIGJlIGNhcnJpZWQKYXMgZnVuY3Rpb24gcGFyYW1ldGVy cyBpbiB0aGUgZGVidWcgZnVuY3Rpb25zLCBhbmQgdGhleSBzaG91bGQgYmUKdXBwZXJjYXNlIGVu dW0gaW4gaTkxNV9kZWJ1Z2ZzLmMgdG9vLgoKPiArCQlyID0gaTkxNV9zY2hlZHVsZXJfZHVtcF9s b2NrZWQocmluZywgbXNnKTsKPiArCQlpZiAocmV0ID09IDApCj4gKwkJCXJldCA9IHI7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGk5MTVfc2NoZWR1bGVy X2R1bXBfYWxsIC0gZHVtcCB0aGUgc2NoZWR1bGVyJ3MgaW50ZXJuYWwgc3RhdGUgdG8gdGhlIGRl YnVnCj4gKyAqIGxvZy4KPiArICogQGRldjogRFJNIGRldmljZQo+ICsgKiBAbXNnOiBBIHJlYXNv biB3aHkgaXQgaXMgYmVpbmcgZHVtcGVkCj4gKyAqIEZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIGl0 IGNhbiBiZSB2ZXJ5IHVzZWZ1bCB0byBzZWUgdGhlIGludGVybmFsIHN0YXRlIG9mCj4gKyAqIHRo ZSBzY2hlZHVsZXIuCj4gKyAqLwo+ICtpbnQgaTkxNV9zY2hlZHVsZXJfZHVtcF9hbGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbXNnKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGk5MTVf c2NoZWR1bGVyICpzY2hlZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOwo+ICsJdW5zaWduZWQg bG9uZyBmbGFnczsKPiArCWludCByZXQ7Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVk dWxlci0+bG9jaywgZmxhZ3MpOwo+ICsJcmV0ID0gaTkxNV9zY2hlZHVsZXJfZHVtcF9hbGxfbG9j a2VkKGRldiwgbXNnKTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkdWxlci0+bG9j aywgZmxhZ3MpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gwqBzdGF0aWMgaW50IGk5 MTVfc2NoZWR1bGVyX3N1Ym1pdF9tYXhfcHJpb3JpdHkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKPiDCoAkJCQkJwqDCoMKgwqDCoMKgYm9vbCBpc19sb2NrZWQpCj4gwqB7Cj4gQEAgLTEy NDYsMTAgKzE1NDQsMTAgQEAgaW50IGk5MTVfc2NoZWR1bGVyX2Nsb3NlZmlsZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4gwqAJCQkJY29udGludWU7Cj4g wqAKPiDCoAkJCWlmICghSTkxNV9TUVNfSVNfQ09NUExFVEUobm9kZSkpCj4gLQkJCQlEUk1fREVC VUdfRFJJVkVSKCJDbG9zaW5nIGZpbGUgaGFuZGxlIHdpdGggb3V0c3RhbmRpbmcgd29yazogJWQ6 JWQvJWQgb24gJXNcbiIsCj4gKwkJCQlEUk1fREVCVUdfRFJJVkVSKCJDbG9zaW5nIGZpbGUgaGFu ZGxlIHdpdGggb3V0c3RhbmRpbmcgd29yazogJWQ6JWQvJXMgb24gJXNcbiIsCj4gwqAJCQkJCQnC oG5vZGUtPnBhcmFtcy5yZXF1ZXN0LT51bmlxLAo+IMKgCQkJCQkJwqBub2RlLT5wYXJhbXMucmVx dWVzdC0+c2Vxbm8sCj4gLQkJCQkJCcKgbm9kZS0+c3RhdHVzLAo+ICsJCQkJCQnCoGk5MTVfcWVf c3RhdGVfc3RyKG5vZGUpLAoKSWYgdGhlIGNvZGUgaXMgdG8gYmUgY2FsbGVkIGZyb20gb3V0c2lk ZSBvZiBpOTE1X2RlYnVnZnMuYywgaXQgc2hvdWxkCnJlYWxseSBiZSB3cml0dGVuIGluIGEgbW9y ZSBzYWZlIG1hbm5lciB0aGFuIHN0YXRpYyBjaGFyLCBlc3BlY2lhbGx5IGFzCml0IGlzIG5vdCBt dWNoIG9mIGFuIGVmZm9ydCB0byBtYWtlIGEgdGFibGUgdG8gaW5kZXguCgpSZWdhcmRzLCBKb29u YXMKCj4gwqAJCQkJCQnCoHJpbmctPm5hbWUpOwo+IMKgCj4gwqAJCQlpOTE1X3NjaGVkdWxlcl9m aWxlX3F1ZXVlX2RlYyhub2RlLT5wYXJhbXMuZmlsZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3NjaGVkdWxlci5oCj4gaW5kZXggYjc4ZGUxMi4uYTA3MWViYiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9zY2hlZHVsZXIuaAo+IEBAIC00MSw2ICs0MSw5IEBAIGVudW0gaTkxNV9zY2hl ZHVsZXJfcXVldWVfc3RhdHVzIHsKPiDCoAkvKiBMaW1pdCB2YWx1ZSBmb3IgdXNlIHdpdGggYXJy YXlzL2xvb3BzICovCj4gwqAJaTkxNV9zcXNfTUFYCj4gwqB9Owo+ICtjaGFyIGk5MTVfc2NoZWR1 bGVyX3F1ZXVlX3N0YXR1c19jaHIoZW51bSBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9zdGF0dXMgc3Rh dHVzKTsKPiArY29uc3QgY2hhciAqaTkxNV9zY2hlZHVsZXJfcXVldWVfc3RhdHVzX3N0cigKPiAr CQkJCWVudW0gaTkxNV9zY2hlZHVsZXJfcXVldWVfc3RhdHVzIHN0YXR1cyk7Cj4gwqAKPiDCoCNk ZWZpbmUgSTkxNV9TUVNfSVNfUVVFVUVEKG5vZGUpCSgoKG5vZGUpLT5zdGF0dXMgPT0gaTkxNV9z cXNfcXVldWVkKSkKPiDCoCNkZWZpbmUgSTkxNV9TUVNfSVNfRkxZSU5HKG5vZGUpCSgoKG5vZGUp LT5zdGF0dXMgPT0gaTkxNV9zcXNfZmx5aW5nKSkKPiBAQCAtNjUsNiArNjgsNyBAQCBzdHJ1Y3Qg aTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgewo+IMKgCXVuc2lnbmVkIGxvbmfCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RhbXA7Cj4gwqAJc3RydWN0IGxp c3RfaGVhZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsaW5rOwo+IMKg fTsKPiArY29uc3QgY2hhciAqaTkxNV9xZV9zdGF0ZV9zdHIoc3RydWN0IGk5MTVfc2NoZWR1bGVy X3F1ZXVlX2VudHJ5ICpub2RlKTsKPiDCoAo+IMKgc3RydWN0IGk5MTVfc2NoZWR1bGVyIHsKPiDC oAlzdHJ1Y3QgbGlzdF9oZWFkwqDCoMKgwqBub2RlX3F1ZXVlW0k5MTVfTlVNX1JJTkdTXTsKPiBA QCAtODIsOSArODYsMTcgQEAgc3RydWN0IGk5MTVfc2NoZWR1bGVyIHsKPiDCoAo+IMKgLyogRmxh ZyBiaXRzIGZvciBpOTE1X3NjaGVkdWxlcjo6ZmxhZ3MgKi8KPiDCoGVudW0gewo+ICsJLyogSW50 ZXJuYWwgc3RhdGUgKi8KPiDCoAlpOTE1X3NmX2ludGVycnVwdHNfZW5hYmxlZMKgwqA9ICgxIDw8 IDApLAo+IMKgCWk5MTVfc2Zfc3VibWl0dGluZ8KgwqDCoMKgwqDCoMKgwqDCoMKgPSAoMSA8PCAx KSwKPiArCj4gKwkvKiBEdW1wL2RlYnVnIGZsYWdzICovCj4gKwlpOTE1X3NmX2R1bXBfZm9yY2XC oMKgwqDCoMKgwqDCoMKgwqDCoD0gKDEgPDwgOCksCj4gKwlpOTE1X3NmX2R1bXBfZGV0YWlsc8Kg wqDCoMKgwqDCoMKgwqA9ICgxIDw8IDkpLAo+ICsJaTkxNV9zZl9kdW1wX2RlcGVuZGVuY2llc8Kg wqDCoD0gKDEgPDwgMTApLAo+ICsJaTkxNV9zZl9kdW1wX3NlcW5vwqDCoMKgwqDCoMKgwqDCoMKg wqA9ICgxIDw8IDExKSwKPiDCoH07Cj4gK2NvbnN0IGNoYXIgKmk5MTVfc2NoZWR1bGVyX2ZsYWdf c3RyKHVpbnQzMl90IGZsYWdzKTsKPiDCoAo+IMKgYm9vbCBpOTE1X3NjaGVkdWxlcl9pc19lbmFi bGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IMKgaW50IGk5MTVfc2NoZWR1bGVyX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gQEAgLTk5LDYgKzExMSw5IEBAIHZvaWQgaTkxNV9z Y2hlZHVsZXJfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7Cj4gwqBpbnQg aTkxNV9zY2hlZHVsZXJfZmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBp c19sb2NrZWQpOwo+IMKgaW50IGk5MTVfc2NoZWR1bGVyX2ZsdXNoX3N0YW1wKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcsCj4gwqAJCQnCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGxvbmcgc3Rh bXAsIGJvb2wgaXNfbG9ja2VkKTsKPiAraW50IGk5MTVfc2NoZWR1bGVyX2R1bXAoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQkJY29uc3QgY2hhciAqbXNnKTsKPiAraW50IGk5MTVf c2NoZWR1bGVyX2R1bXBfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm1z Zyk7Cj4gwqBib29sIGk5MTVfc2NoZWR1bGVyX2lzX3JlcXVlc3RfdHJhY2tlZChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiDCoAkJCQnCoMKgwqDCoMKgwqDCoGJvb2wgKmNvbXBs ZXRlZCwgYm9vbCAqYnVzeSk7Cj4gwqBib29sIGk5MTVfc2NoZWR1bGVyX2ZpbGVfcXVldWVfaXNf ZnVsbChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwotLSAKSm9vbmFzIExhaHRpbmVuCk9wZW4gU291 cmNlIFRlY2hub2xvZ3kgQ2VudGVyCkludGVsIENvcnBvcmF0aW9uCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=