From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH] drm/i915: Hold rpm wakeref for printing the engine's register state Date: Mon, 12 Feb 2018 15:28:54 +0200 Message-ID: <87eflquyjt.fsf@gaia.fi.intel.com> References: <20180212102415.24246-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id DA91E89CF4 for ; Mon, 12 Feb 2018 13:30:56 +0000 (UTC) In-Reply-To: <20180212102415.24246-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gV2hlbiBk dW1waW5nIHRoZSBlbmdpbmUsIHdlIHByaW50IG91dCB0aGUgY3VycmVudCByZWdpc3RlciB2YWx1 ZXMuIFRoaXMKPiByZXF1aXJlcyB0aGUgcnBtIHdha2VyZWYuIElmIHRoZSBkZXZpY2UgaXMgYWxz ZWVwLCB3ZSBjYW4gYXNzdW1lIHRoZQo+IGVuZ2luZSBpcyBhc2xlZXAgKGFuZCB0aGUgcmVnaXN0 ZXIgc3RhdGUgaXMgdW5pbnRlcmVzdGluZykgc28gc2tpcCBhbmQKPiBvbmx5IGFjcXVpcmUgdGhl IHJwbSB3YWtlcmVmIGlmIHRoZSBkZXZpY2UgaXMgYWxyZWFkeSBhd2FrZS4KPgo+IFJlcG9ydGVk LWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBUdnJ0 a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IENjOiBNaWthIEt1b3BwYWxh IDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZW5naW5lX2NzLmMgIHwgMTYyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAgNiArLQo+ICAy IGZpbGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDc0IGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCAzZWZjNTg5YTdmMzcuLjJk ZjlhMmQwMzhlZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdp bmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4g QEAgLTY5MSw3ICs2OTEsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9jbGVhbnVwX2NvbW1vbihzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAllbmdpbmUtPmNvbnRleHRfdW5waW4oZW5n aW5lLCBlbmdpbmUtPmk5MTUtPmtlcm5lbF9jb250ZXh0KTsKPiAgfQo+ICAKPiAtdTY0IGludGVs X2VuZ2luZV9nZXRfYWN0aXZlX2hlYWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ ICt1NjQgaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGVuZ2luZS0+aTkxNTsKPiAgCXU2NCBhY3RoZDsKPiBAQCAtNzA3LDcgKzcwNyw3IEBAIHU2 NCBpbnRlbF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKPiAgCXJldHVybiBhY3RoZDsKPiAgfQo+ICAKPiAtdTY0IGludGVsX2VuZ2luZV9nZXRf bGFzdF9iYXRjaF9oZWFkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArdTY0IGlu dGVsX2VuZ2luZV9nZXRfbGFzdF9iYXRjaF9oZWFkKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZW5naW5lLT5pOTE1Owo+ICAJdTY0IGJiYWRkcjsKPiBAQCAtMTcwNSw3MyArMTcwNSwyMCBAQCBz dGF0aWMgdm9pZCBoZXhkdW1wKHN0cnVjdCBkcm1fcHJpbnRlciAqbSwgY29uc3Qgdm9pZCAqYnVm LCBzaXplX3QgbGVuKQo+ICAJfQo+ICB9Cj4gIAo+IC12b2lkIGludGVsX2VuZ2luZV9kdW1wKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAtCQkgICAgICAgc3RydWN0IGRybV9wcmlu dGVyICptLAo+IC0JCSAgICAgICBjb25zdCBjaGFyICpoZWFkZXIsIC4uLikKPiArc3RhdGljIHZv aWQgaW50ZWxfZW5naW5lX3ByaW50X3JlZ2lzdGVycyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsCj4gKwkJCQkJIHN0cnVjdCBkcm1fcHJpbnRlciAqbSkKPiAgewo+IC0Jc3Ry dWN0IGludGVsX2JyZWFkY3J1bWJzICogY29uc3QgYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwo+ IC0JY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMg PSAmZW5naW5lLT5leGVjbGlzdHM7Cj4gLQlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKiBjb25zdCBl cnJvciA9ICZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvcjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcnE7Cj4gLQlzdHJ1Y3QgcmJfbm9kZSAqcmI7Cj4gLQljaGFyIGhkcls4MF07Cj4gKwlj b25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9Cj4g KwkJJmVuZ2luZS0+ZXhlY2xpc3RzOwo+ICAJdTY0IGFkZHI7Cj4gIAo+IC0JaWYgKGhlYWRlcikg ewo+IC0JCXZhX2xpc3QgYXA7Cj4gLQo+IC0JCXZhX3N0YXJ0KGFwLCBoZWFkZXIpOwo+IC0JCWRy bV92cHJpbnRmKG0sIGhlYWRlciwgJmFwKTsKPiAtCQl2YV9lbmQoYXApOwo+IC0JfQo+IC0KPiAt CWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKCZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvcikpCj4g LQkJZHJtX3ByaW50ZihtLCAiKioqIFdFREdFRCAqKipcbiIpOwo+IC0KPiAtCWRybV9wcmludGYo bSwgIlx0Y3VycmVudCBzZXFubyAleCwgbGFzdCAleCwgaGFuZ2NoZWNrICV4IFslZCBtc10sIGlu ZmxpZ2h0ICVkXG4iLAo+IC0JCSAgIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKSwKPiAt CQkgICBpbnRlbF9lbmdpbmVfbGFzdF9zdWJtaXQoZW5naW5lKSwKPiAtCQkgICBlbmdpbmUtPmhh bmdjaGVjay5zZXFubywKPiAtCQkgICBqaWZmaWVzX3RvX21zZWNzKGppZmZpZXMgLSBlbmdpbmUt PmhhbmdjaGVjay5hY3Rpb25fdGltZXN0YW1wKSwKPiAtCQkgICBlbmdpbmUtPnRpbWVsaW5lLT5p bmZsaWdodF9zZXFub3MpOwo+IC0JZHJtX3ByaW50ZihtLCAiXHRSZXNldCBjb3VudDogJWQgKGds b2JhbCAlZClcbiIsCj4gLQkJICAgaTkxNV9yZXNldF9lbmdpbmVfY291bnQoZXJyb3IsIGVuZ2lu ZSksCj4gLQkJICAgaTkxNV9yZXNldF9jb3VudChlcnJvcikpOwo+IC0KPiAtCXJjdV9yZWFkX2xv Y2soKTsKPiAtCj4gLQlkcm1fcHJpbnRmKG0sICJcdFJlcXVlc3RzOlxuIik7Cj4gLQo+IC0JcnEg PSBsaXN0X2ZpcnN0X2VudHJ5KCZlbmdpbmUtPnRpbWVsaW5lLT5yZXF1ZXN0cywKPiAtCQkJICAg ICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0LCBsaW5rKTsKPiAtCWlmICgmcnEtPmxpbmsg IT0gJmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3RzKQo+IC0JCXByaW50X3JlcXVlc3QobSwgcnEs ICJcdFx0Zmlyc3QgICIpOwo+IC0KPiAtCXJxID0gbGlzdF9sYXN0X2VudHJ5KCZlbmdpbmUtPnRp bWVsaW5lLT5yZXF1ZXN0cywKPiAtCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qs IGxpbmspOwo+IC0JaWYgKCZycS0+bGluayAhPSAmZW5naW5lLT50aW1lbGluZS0+cmVxdWVzdHMp Cj4gLQkJcHJpbnRfcmVxdWVzdChtLCBycSwgIlx0XHRsYXN0ICAgIik7Cj4gLQo+IC0JcnEgPSBp OTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0KGVuZ2luZSk7Cj4gLQlpZiAocnEpIHsKPiAtCQlw cmludF9yZXF1ZXN0KG0sIHJxLCAiXHRcdGFjdGl2ZSAiKTsKPiAtCQlkcm1fcHJpbnRmKG0sCj4g LQkJCSAgICJcdFx0W2hlYWQgJTA0eCwgcG9zdGZpeCAlMDR4LCB0YWlsICUwNHgsIGJhdGNoIDB4 JTA4eF8lMDh4XVxuIiwKPiAtCQkJICAgcnEtPmhlYWQsIHJxLT5wb3N0Zml4LCBycS0+dGFpbCwK PiAtCQkJICAgcnEtPmJhdGNoID8gdXBwZXJfMzJfYml0cyhycS0+YmF0Y2gtPm5vZGUuc3RhcnQp IDogfjB1LAo+IC0JCQkgICBycS0+YmF0Y2ggPyBsb3dlcl8zMl9iaXRzKHJxLT5iYXRjaC0+bm9k ZS5zdGFydCkgOiB+MHUpOwo+IC0JfQo+IC0KPiAtCWRybV9wcmludGYobSwgIlx0UklOR19TVEFS VDogMHglMDh4IFsweCUwOHhdXG4iLAo+IC0JCSAgIEk5MTVfUkVBRChSSU5HX1NUQVJUKGVuZ2lu ZS0+bW1pb19iYXNlKSksCj4gLQkJICAgcnEgPyBpOTE1X2dndHRfb2Zmc2V0KHJxLT5yaW5nLT52 bWEpIDogMCk7Cj4gLQlkcm1fcHJpbnRmKG0sICJcdFJJTkdfSEVBRDogIDB4JTA4eCBbMHglMDh4 XVxuIiwKPiAtCQkgICBJOTE1X1JFQUQoUklOR19IRUFEKGVuZ2luZS0+bW1pb19iYXNlKSkgJiBI RUFEX0FERFIsCj4gLQkJICAgcnEgPyBycS0+cmluZy0+aGVhZCA6IDApOwo+IC0JZHJtX3ByaW50 ZihtLCAiXHRSSU5HX1RBSUw6ICAweCUwOHggWzB4JTA4eF1cbiIsCj4gLQkJICAgSTkxNV9SRUFE KFJJTkdfVEFJTChlbmdpbmUtPm1taW9fYmFzZSkpICYgVEFJTF9BRERSLAo+IC0JCSAgIHJxID8g cnEtPnJpbmctPnRhaWwgOiAwKTsKPiArCWRybV9wcmludGYobSwgIlx0UklOR19TVEFSVDogMHgl MDh4XG4iLAo+ICsJCSAgIEk5MTVfUkVBRChSSU5HX1NUQVJUKGVuZ2luZS0+bW1pb19iYXNlKSkp Owo+ICsJZHJtX3ByaW50ZihtLCAiXHRSSU5HX0hFQUQ6ICAweCUwOHhcbiIsCj4gKwkJICAgSTkx NV9SRUFEKFJJTkdfSEVBRChlbmdpbmUtPm1taW9fYmFzZSkpICYgSEVBRF9BRERSKTsKPiArCWRy bV9wcmludGYobSwgIlx0UklOR19UQUlMOiAgMHglMDh4XG4iLAo+ICsJCSAgIEk5MTVfUkVBRChS SU5HX1RBSUwoZW5naW5lLT5tbWlvX2Jhc2UpKSAmIFRBSUxfQUREUik7Cj4gIAlkcm1fcHJpbnRm KG0sICJcdFJJTkdfQ1RMOiAgIDB4JTA4eCVzXG4iLAo+ICAJCSAgIEk5MTVfUkVBRChSSU5HX0NU TChlbmdpbmUtPm1taW9fYmFzZSkpLAo+ICAJCSAgIEk5MTVfUkVBRChSSU5HX0NUTChlbmdpbmUt Pm1taW9fYmFzZSkpICYgKFJJTkdfV0FJVCB8IFJJTkdfV0FJVF9TRU1BUEhPUkUpID8gIiBbd2Fp dGluZ10iIDogIiIpOwo+IEBAIC0xNzgwLDYgKzE3MjcsMTEgQEAgdm9pZCBpbnRlbF9lbmdpbmVf ZHVtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gIAkJCSAgIEk5MTVfUkVBRChS SU5HX01JX01PREUoZW5naW5lLT5tbWlvX2Jhc2UpKSwKPiAgCQkJICAgSTkxNV9SRUFEKFJJTkdf TUlfTU9ERShlbmdpbmUtPm1taW9fYmFzZSkpICYgKE1PREVfSURMRSkgPyAiIFtpZGxlXSIgOiAi Iik7Cj4gIAl9Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewo+ICsJCWRy bV9wcmludGYobSwgIlx0UklOR19JTVI6ICUwOHhcbiIsIEk5MTVfUkVBRF9JTVIoZW5naW5lKSk7 Cj4gKwl9Cj4gKwo+ICAJaWYgKEhBU19MRUdBQ1lfU0VNQVBIT1JFUyhkZXZfcHJpdikpIHsKPiAg CQlkcm1fcHJpbnRmKG0sICJcdFNZTkNfMDogMHglMDh4XG4iLAo+ICAJCQkgICBJOTE1X1JFQUQo UklOR19TWU5DXzAoZW5naW5lLT5tbWlvX2Jhc2UpKSk7Cj4gQEAgLTE3OTAsOCArMTc0Miw2IEBA IHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ ICAJCQkJICAgSTkxNV9SRUFEKFJJTkdfU1lOQ18yKGVuZ2luZS0+bW1pb19iYXNlKSkpOwo+ICAJ fQo+ICAKPiAtCXJjdV9yZWFkX3VubG9jaygpOwo+IC0KPiAgCWFkZHIgPSBpbnRlbF9lbmdpbmVf Z2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7Cj4gIAlkcm1fcHJpbnRmKG0sICJcdEFDVEhEOiAgMHgl MDh4XyUwOHhcbiIsCj4gIAkJICAgdXBwZXJfMzJfYml0cyhhZGRyKSwgbG93ZXJfMzJfYml0cyhh ZGRyKSk7Cj4gQEAgLTE4NTMsMTAgKzE4MDMsMTMgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZHVtcChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gIAo+ICAJCXJjdV9yZWFkX2xvY2soKTsK PiAgCQlmb3IgKGlkeCA9IDA7IGlkeCA8IGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKTsg aWR4KyspIHsKPiArCQkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycTsKPiAgCQkJdW5z aWduZWQgaW50IGNvdW50Owo+ICAKPiAgCQkJcnEgPSBwb3J0X3VucGFjaygmZXhlY2xpc3RzLT5w b3J0W2lkeF0sICZjb3VudCk7Cj4gIAkJCWlmIChycSkgewo+ICsJCQkJY2hhciBoZHJbODBdOwo+ ICsKPiAgCQkJCXNucHJpbnRmKGhkciwgc2l6ZW9mKGhkciksCj4gIAkJCQkJICJcdFx0RUxTUFsl ZF0gY291bnQ9JWQsIHJxOiAiLAo+ICAJCQkJCSBpZHgsIGNvdW50KTsKPiBAQCAtMTg3NSw2ICsx ODI4LDc3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAo+ICAJCWRybV9wcmludGYobSwgIlx0UFBfRElSX0RDTFY6IDB4JTA4eFxuIiwKPiAg CQkJICAgSTkxNV9SRUFEKFJJTkdfUFBfRElSX0RDTFYoZW5naW5lKSkpOwo+ICAJfQo+ICt9Cj4g Kwo+ICt2b2lkIGludGVsX2VuZ2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKPiArCQkgICAgICAgc3RydWN0IGRybV9wcmludGVyICptLAo+ICsJCSAgICAgICBjb25zdCBj aGFyICpoZWFkZXIsIC4uLikKPiArewo+ICsJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICogY29u c3QgYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwo+ICsJY29uc3Qgc3RydWN0IGludGVsX2VuZ2lu ZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7Cj4gKwlz dHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKiBjb25zdCBlcnJvciA9ICZlbmdpbmUtPmk5MTUtPmdwdV9l cnJvcjsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnE7Cj4gKwlzdHJ1Y3QgcmJf bm9kZSAqcmI7Cj4gKwo+ICsJaWYgKGhlYWRlcikgewo+ICsJCXZhX2xpc3QgYXA7Cj4gKwo+ICsJ CXZhX3N0YXJ0KGFwLCBoZWFkZXIpOwo+ICsJCWRybV92cHJpbnRmKG0sIGhlYWRlciwgJmFwKTsK PiArCQl2YV9lbmQoYXApOwo+ICsJfQo+ICsKPiArCWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2Vk KCZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvcikpCj4gKwkJZHJtX3ByaW50ZihtLCAiKioqIFdFREdF RCAqKipcbiIpOwo+ICsKPiArCWRybV9wcmludGYobSwgIlx0Y3VycmVudCBzZXFubyAleCwgbGFz dCAleCwgaGFuZ2NoZWNrICV4IFslZCBtc10sIGluZmxpZ2h0ICVkXG4iLAo+ICsJCSAgIGludGVs X2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKSwKPiArCQkgICBpbnRlbF9lbmdpbmVfbGFzdF9zdWJt aXQoZW5naW5lKSwKPiArCQkgICBlbmdpbmUtPmhhbmdjaGVjay5zZXFubywKPiArCQkgICBqaWZm aWVzX3RvX21zZWNzKGppZmZpZXMgLSBlbmdpbmUtPmhhbmdjaGVjay5hY3Rpb25fdGltZXN0YW1w KSwKPiArCQkgICBlbmdpbmUtPnRpbWVsaW5lLT5pbmZsaWdodF9zZXFub3MpOwo+ICsJZHJtX3By aW50ZihtLCAiXHRSZXNldCBjb3VudDogJWQgKGdsb2JhbCAlZClcbiIsCj4gKwkJICAgaTkxNV9y ZXNldF9lbmdpbmVfY291bnQoZXJyb3IsIGVuZ2luZSksCj4gKwkJICAgaTkxNV9yZXNldF9jb3Vu dChlcnJvcikpOwo+ICsKPiArCXJjdV9yZWFkX2xvY2soKTsKPiArCj4gKwlkcm1fcHJpbnRmKG0s ICJcdFJlcXVlc3RzOlxuIik7Cj4gKwo+ICsJcnEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZlbmdpbmUt PnRpbWVsaW5lLT5yZXF1ZXN0cywKPiArCQkJICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0LCBsaW5rKTsKPiArCWlmICgmcnEtPmxpbmsgIT0gJmVuZ2luZS0+dGltZWxpbmUtPnJlcXVl c3RzKQo+ICsJCXByaW50X3JlcXVlc3QobSwgcnEsICJcdFx0Zmlyc3QgICIpOwo+ICsKPiArCXJx ID0gbGlzdF9sYXN0X2VudHJ5KCZlbmdpbmUtPnRpbWVsaW5lLT5yZXF1ZXN0cywKPiArCQkJICAg ICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QsIGxpbmspOwo+ICsJaWYgKCZycS0+bGluayAh PSAmZW5naW5lLT50aW1lbGluZS0+cmVxdWVzdHMpCj4gKwkJcHJpbnRfcmVxdWVzdChtLCBycSwg Ilx0XHRsYXN0ICAgIik7Cj4gKwo+ICsJcnEgPSBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0 KGVuZ2luZSk7Cj4gKwlpZiAocnEpIHsKPiArCQlwcmludF9yZXF1ZXN0KG0sIHJxLCAiXHRcdGFj dGl2ZSAiKTsKPiArCQlkcm1fcHJpbnRmKG0sCj4gKwkJCSAgICJcdFx0W2hlYWQgJTA0eCwgcG9z dGZpeCAlMDR4LCB0YWlsICUwNHgsIGJhdGNoIDB4JTA4eF8lMDh4XVxuIiwKPiArCQkJICAgcnEt PmhlYWQsIHJxLT5wb3N0Zml4LCBycS0+dGFpbCwKPiArCQkJICAgcnEtPmJhdGNoID8gdXBwZXJf MzJfYml0cyhycS0+YmF0Y2gtPm5vZGUuc3RhcnQpIDogfjB1LAo+ICsJCQkgICBycS0+YmF0Y2gg PyBsb3dlcl8zMl9iaXRzKHJxLT5iYXRjaC0+bm9kZS5zdGFydCkgOiB+MHUpOwo+ICsJCWRybV9w cmludGYobSwgIlx0XHRyaW5nLT5zdGFydDogMHglMDh4XG4iLAo+ICsJCQkgICBpOTE1X2dndHRf b2Zmc2V0KHJxLT5yaW5nLT52bWEpKTsKPiArCQlkcm1fcHJpbnRmKG0sICJcdFx0cmluZy0+aGVh ZDogIDB4JTA4eFxuIiwKPiArCQkJICAgcnEtPnJpbmctPmhlYWQpOwo+ICsJCWRybV9wcmludGYo bSwgIlx0XHRyaW5nLT50YWlsOiAgMHglMDh4XG4iLAo+ICsJCQkgICBycS0+cmluZy0+dGFpbCk7 Cj4gKwl9Cj4gKwo+ICsJcmN1X3JlYWRfdW5sb2NrKCk7Cj4gKwo+ICsJaWYgKGludGVsX3J1bnRp bWVfcG1fZ2V0X2lmX2luX3VzZShlbmdpbmUtPmk5MTUpKSB7Cj4gKwkJaW50ZWxfZW5naW5lX3By aW50X3JlZ2lzdGVycyhlbmdpbmUsIG0pOwo+ICsJCWludGVsX3J1bnRpbWVfcG1fcHV0KGVuZ2lu ZS0+aTkxNSk7Cj4gKwl9IGVsc2Ugewo+ICsJCWRybV9wcmludGYobSwgIkRldmljZSBpcyBhbHNl ZXA7IHNraXBwaW5nIHJlZ2lzdGVyIGR1bXBcbiIpOwo+ICsJfQoKcy9hbHNlZXAvYXNsZWVwCgpS ZXZpZXdlZC1ieTogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+ Cgo+ICAKPiAgCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOwo+ICAJbGlz dF9mb3JfZWFjaF9lbnRyeShycSwgJmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3RzLCBsaW5rKQo+ IEBAIC0xODk3LDEwICsxOTIxLDYgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZHVtcChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gIAl9Cj4gIAlzcGluX3VubG9ja19pcnEoJmItPnJiX2xv Y2spOwo+ICAKPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpIHsKPiAtCQlkcm1fcHJp bnRmKG0sICJcdFJJTkdfSU1SOiAlMDh4XG4iLCBJOTE1X1JFQURfSU1SKGVuZ2luZSkpOwo+IC0J fQo+IC0KPiAgCWRybV9wcmludGYobSwgIklSUT8gMHglbHggKGJyZWFkY3J1bWJzPyAlcykgKGV4 ZWNsaXN0cz8gJXMpXG4iLAo+ICAJCSAgIGVuZ2luZS0+aXJxX3Bvc3RlZCwKPiAgCQkgICB5ZXNu byh0ZXN0X2JpdChFTkdJTkVfSVJRX0JSRUFEQ1JVTUIsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDhmMWE0YmFkZjgxMi4uNTE1MjNhZDA0OWRlIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC02NTksNyArNjU5 LDcgQEAgaW50ZWxfZW5naW5lX2ZsYWcoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHUzMgo+IC1pbnRlbF9yZWFkX3N0YXR1c19w YWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHJlZykKPiAraW50ZWxfcmVh ZF9zdGF0dXNfcGFnZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBy ZWcpCj4gIHsKPiAgCS8qIEVuc3VyZSB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IG9wdGltaXpl IGF3YXkgdGhlIGxvYWQuICovCj4gIAlyZXR1cm4gUkVBRF9PTkNFKGVuZ2luZS0+c3RhdHVzX3Bh Z2UucGFnZV9hZGRyW3JlZ10pOwo+IEBAIC04MTcsOCArODE3LDggQEAgaW50IGludGVsX2luaXRf YnNkX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gIGludCBp bnRlbF9pbml0X2JsdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Owo+ICBpbnQgaW50ZWxfaW5pdF92ZWJveF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpOwo+ICAKPiAtdTY0IGludGVsX2VuZ2luZV9nZXRfYWN0aXZlX2hlYWQoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiAtdTY0IGludGVsX2VuZ2luZV9nZXRfbGFz dF9iYXRjaF9oZWFkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gK3U2NCBpbnRl bF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSk7Cj4gK3U2NCBpbnRlbF9lbmdpbmVfZ2V0X2xhc3RfYmF0Y2hfaGVhZChjb25zdCBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+ICAKPiAgc3RhdGljIGlubGluZSB1MzIgaW50 ZWxfZW5naW5lX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIHsK PiAtLSAKPiAyLjE2LjEKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK