From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH RFC] drm/i915: Print dmesg warn on unintended hangs Date: Fri, 10 Nov 2017 13:53:47 +0200 Message-ID: <20171110115347.5813-1-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id B97566EA56 for ; Fri, 10 Nov 2017 11:54:10 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org V2UgaGF2ZSBhIHByb2JsZW0gb2YgZGlzdGluZ3Vpc2hpbmcgaW50ZW5kZWQgaGFuZ3MKc3VibWl0 dGVkIGJ5IGlndCBkdXJpbmcgQ0kvYmF0IGFuZCBoYW5ncyB0aGF0IGFyZSBub25pbnRlbmRlZApo YXBwZW5pbmcgaW4gY2xvc2UgcHJveGltaXR5LgoKQXMgd2Uga25vdyBob3cgaWd0IGNvbnN0cnVj dHMgYSBiYXRjaCBpbnRlbmRlZCB0byBoYW5nCnRoZSBncHUsIHdlIGNhbiB1c2UgdGhpcyBpbiBv dXIgYWR2YW50YWdlIHdoZW4gZXJyb3Igc3RhdGUKaXMgY29uc3RydWN0ZWQuIFRoZSBzaWduYXR1 cmUgb2YgYSBpbnRlbmRlZCBoYW5nIGNhbgpiZSBwYXJzZWQgb3V0IGluIHRoaXMgc3RhZ2UuCgpC YXRjaGVzIHRoYXQgYXJlIGV4cGVjdGVkIHRvIGhhbmcgY2FuIGJlIHdhdGVybWFya2VkIGJ5OgoK YmF0Y2hbaSsrXSA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7CmJhdGNoW2krK10gPSBNSV9OT09QOwpi YXRjaFtpKytdID0gSUdUX0hBTkdfU0lHTkFUVVJFOyAvKiAweGM1YzVjNWM1ICovCgpOb3RlIHRo YXQgd2UgZG8gdGhlIHBhcnNpbmcgb25seSB3aXRoIGdlbSBkZWJ1ZyBidWlsZHMuCgpMYXRlciB3 aGVuIHdlIHNwZXcgb3V0IG5vdGlmaWNhdGlvbiBhYm91dCB0aGUgaGFuZyBpbnRvCnRoZSBkbWVz Zywgd2UgY2FuIHVzZSBEUk1fSU5GTyBmb3IgaW50ZW5kZWQgaGFuZ3MKYW5kIERSTV9XQVJOIGZv ciBub25pbnRlbmRlZC4gVGhpcyB3YXkgYXV4aWxpYXJ5IHRvb2xzCmNhbiBtYWtlIGJldHRlciBq dWRnZW1lbnQgb24gd2hhdCB0byBjb25zaWRlciBpbXBvcnRhbnQKZm9yIHJlcG9ydGluZy4KCkNj OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5s YWh0aW5lbkBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1pa2EgS3VvcHBhbGEgPG1p a2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dwdV9lcnJvci5jICAgICAgICAgICAgfCAxMDAgKysrKysrKysrKysrKysrKysrKysr LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgICAgICAgICB8ICAg NCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMgICAgICAgICAgIHwg ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfaGFuZ2NoZWNrLmMg fCAgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMzk4ODNjZDkxNWRiLi42 NzhmNDcyYTg5NTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC00MDkyLDcg KzQwOTIsNyBAQCBpOTE1X3dlZGdlZF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAkJZW5naW5l LT5oYW5nY2hlY2suc3RhbGxlZCA9IHRydWU7CiAJfQogCi0JaTkxNV9oYW5kbGVfZXJyb3IoaTkx NSwgdmFsLCAiTWFudWFsbHkgc2V0dGluZyB3ZWRnZWQgdG8gJWxsdSIsIHZhbCk7CisJaTkxNV9o YW5kbGVfZXJyb3IoaTkxNSwgdHJ1ZSwgdmFsLCAiTWFudWFsbHkgc2V0dGluZyB3ZWRnZWQgdG8g JWxsdSIsIHZhbCk7CiAKIAl3YWl0X29uX2JpdCgmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzLAogCQkg ICAgSTkxNV9SRVNFVF9IQU5ET0ZGLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZmU5MzEx NWM0Y2FhLi45MWUwYWI4NTA5ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTAwNCw2 ICsxMDA0LDggQEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsKIAkJCXUzMiAqcGFnZXNbMF07CiAJ CX0gKnJpbmdidWZmZXIsICpiYXRjaGJ1ZmZlciwgKndhX2JhdGNoYnVmZmVyLCAqY3R4LCAqaHdz X3BhZ2U7CiAKKwkJYm9vbCBiYXRjaF9oYWRfaGFuZ19zaWduYXR1cmU7CisKIAkJc3RydWN0IGRy bV9pOTE1X2Vycm9yX29iamVjdCAqKnVzZXJfYm87CiAJCWxvbmcgdXNlcl9ib19jb3VudDsKIApA QCAtMzM3Miw4ICszMzc0LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfcXVldWVfaGFuZ2No ZWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCSAgICZkZXZfcHJpdi0+ Z3B1X2Vycm9yLmhhbmdjaGVja193b3JrLCBkZWxheSk7CiB9CiAKLV9fcHJpbnRmKDMsIDQpCitf X3ByaW50Zig0LCA1KQogdm9pZCBpOTE1X2hhbmRsZV9lcnJvcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCisJCSAgICAgICBib29sIGludGVudGlvbmFsLAogCQkgICAgICAgdTMy IGVuZ2luZV9tYXNrLAogCQkgICAgICAgY29uc3QgY2hhciAqZm10LCAuLi4pOwogCkBAIC0zOTYw LDYgKzM5NjMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9lcnJvcl9zdGF0ZV9idWZfcmVs ZWFzZSgKIAogc3RydWN0IGk5MTVfZ3B1X3N0YXRlICppOTE1X2NhcHR1cmVfZ3B1X3N0YXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIHZvaWQgaTkxNV9jYXB0dXJlX2Vycm9yX3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgIGJvb2wgaW50 ZW50aW9uYWwsCiAJCQkgICAgICB1MzIgZW5naW5lX21hc2ssCiAJCQkgICAgICBjb25zdCBjaGFy ICplcnJvcl9tc2cpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dw dV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCA1 YzJkODNhODM4ZDguLmE1YmZlZmI5NGQ2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5jCkBAIC05MTgsMTUgKzkxOCw1MiBAQCB2b2lkIF9faTkxNV9ncHVfc3RhdGVfZnJlZShz dHJ1Y3Qga3JlZiAqZXJyb3JfcmVmKQogCWtmcmVlKGVycm9yKTsKIH0KIAorI2lmZGVmIENPTkZJ R19EUk1fSTkxNV9ERUJVR19HRU0KKworI2RlZmluZSBIQU5HX1NJR05BVFVSRV9NQUdJQyAweGM1 YzVjNWM1CisKK3N0YXRpYyBib29sIGJhdGNoX2hhc19oYW5nX3NpZ25hdHVyZShjb25zdCB1MzIg KiBjb25zdCBiYXRjaCwgdTY0IGxlbikKK3sKKwlzdHJ1Y3QgbWFya2VyIHsgdTMyIHZhbDsgdTY0 IG9mZnNldDsgfSBtWzJdID0geworCQl7IE1JX0JBVENIX0JVRkZFUl9FTkQsIC0xIH0sCisJCXsg SEFOR19TSUdOQVRVUkVfTUFHSUMsIC0xIH0KKwl9OworCXU2NCBpLCBqOworCisJbGVuID0gbWlu X3QodTY0LCBsZW4sIFBBR0VfU0laRSk7CisJbGVuID0gRElWX1JPVU5EX1VQKGxlbiwgNCk7CisK Kwlmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGxlbiAmJiBqIDwgQVJSQVlfU0laRShtKTsgaSsrKSB7 CisJCWlmIChtW2pdLm9mZnNldCA9PSAtMSAmJiBiYXRjaFtpXSA9PSBtW2pdLnZhbCkKKwkJCW1b aisrXS5vZmZzZXQgPSBpOworCisJCWlmIChtWzBdLm9mZnNldCAhPSAtMSAmJiBpIC0gbVswXS5v ZmZzZXQgPiAyKQorCQkJYnJlYWs7CisJfQorCisJaWYgKG1bMF0ub2Zmc2V0ID09IC0xIHx8IG1b MV0ub2Zmc2V0ID09IC0xKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gbVsxXS5vZmZzZXQg LSBtWzBdLm9mZnNldCA9PSAyOworfQorI2Vsc2UKK3N0YXRpYyBib29sIGJhdGNoX2hhc19oYW5n X3NpZ25hdHVyZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sKKwlyZXR1cm4gZmFsc2U7Cit9Cisj ZW5kaWYKKwogc3RhdGljIHN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKgotaTkxNV9lcnJv cl9vYmplY3RfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkJIHN0cnVj dCBpOTE1X3ZtYSAqdm1hKQorX19pOTE1X2Vycm9yX29iamVjdF9jcmVhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCisJCQkgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJCSAgIGJv b2wgKmhhbmdzaWcpCiB7CiAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZpOTE1LT5nZ3R0Owog CWNvbnN0IHU2NCBzbG90ID0gZ2d0dC0+ZXJyb3JfY2FwdHVyZS5zdGFydDsKIAlzdHJ1Y3QgZHJt X2k5MTVfZXJyb3Jfb2JqZWN0ICpkc3Q7CiAJc3RydWN0IGNvbXByZXNzIGNvbXByZXNzOwotCXVu c2lnbmVkIGxvbmcgbnVtX3BhZ2VzOworCXVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzLCBzcmNfcGFn ZXM7CisJdW5zaWduZWQgbG9uZyBwYWdlX2NvdW50ID0gMDsKIAlzdHJ1Y3Qgc2d0X2l0ZXIgaXRl cjsKIAlkbWFfYWRkcl90IGRtYTsKIApAQCAtOTM0LDYgKzk3MSw3IEBAIGk5MTVfZXJyb3Jfb2Jq ZWN0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJcmV0dXJuIE5VTEw7 CiAKIAludW1fcGFnZXMgPSBtaW5fdCh1NjQsIHZtYS0+c2l6ZSwgdm1hLT5vYmotPmJhc2Uuc2l6 ZSkgPj4gUEFHRV9TSElGVDsKKwlzcmNfcGFnZXMgPSBudW1fcGFnZXM7CiAJbnVtX3BhZ2VzID0g RElWX1JPVU5EX1VQKDEwICogbnVtX3BhZ2VzLCA4KTsgLyogd29yc3RjYXNlIHpsaWIgZ3Jvd3Ro ICovCiAJZHN0ID0ga21hbGxvYyhzaXplb2YoKmRzdCkgKyBudW1fcGFnZXMgKiBzaXplb2YodTMy ICopLAogCQkgICAgICBHRlBfQVRPTUlDIHwgX19HRlBfTk9XQVJOKTsKQEAgLTk1OCw5ICs5OTYs MTYgQEAgaTkxNV9lcnJvcl9vYmplY3RfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LAogCQkJCSAgICAgICBJOTE1X0NBQ0hFX05PTkUsIDApOwogCiAJCXMgPSBpb19tYXBwaW5n X21hcF9hdG9taWNfd2MoJmdndHQtPm1hcHBhYmxlLCBzbG90KTsKKworCQkvKiBDaGVjayBsYXN0 IHBhZ2Ugb25seSBmb3IgaW50ZW50aW9uYWwgaGFuZyBzaWduYXR1cmUgKi8KKwkJaWYgKGhhbmdz aWcgJiYgcGFnZV9jb3VudCA9PSBzcmNfcGFnZXMgLSAxKQorCQkJKmhhbmdzaWcgPSBiYXRjaF9o YXNfaGFuZ19zaWduYXR1cmUoKHZvaWQgX19mb3JjZSAqKXMsCisJCQkJCQkJICAgIHZtYS0+c2l6 ZSk7CisKIAkJcmV0ID0gY29tcHJlc3NfcGFnZSgmY29tcHJlc3MsICh2b2lkICBfX2ZvcmNlICop cywgZHN0KTsKIAkJaW9fbWFwcGluZ191bm1hcF9hdG9taWMocyk7CiAKKwkJcGFnZV9jb3VudCsr OwogCQlpZiAocmV0KQogCQkJZ290byB1bndpbmQ7CiAJfQpAQCAtOTc4LDYgKzEwMjMsMjEgQEAg aTkxNV9lcnJvcl9vYmplY3RfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CXJldHVybiBkc3Q7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfb2JqZWN0ICoK K2k5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK KwkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sKKwlyZXR1cm4gX19pOTE1X2Vycm9yX29iamVj dF9jcmVhdGUoaTkxNSwgdm1hLCBOVUxMKTsKK30KKworc3RhdGljIHN0cnVjdCBkcm1faTkxNV9l cnJvcl9vYmplY3QgKgoraTkxNV9lcnJvcl9iYXRjaF9vYmplY3RfY3JlYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LAorCQkJICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAorCQkJ ICAgICAgIGJvb2wgKnNpZ25hdHVyZSkKK3sKKwlyZXR1cm4gX19pOTE1X2Vycm9yX29iamVjdF9j cmVhdGUoaTkxNSwgdm1hLCBzaWduYXR1cmUpOworfQorCiAvKiBUaGUgZXJyb3IgY2FwdHVyZSBp cyBzcGVjaWFsIGFzIHRyaWVzIHRvIHJ1biB1bmRlcm5lYXRoIHRoZSBub3JtYWwKICAqIGxvY2tp bmcgcnVsZXMgLSBzbyB3ZSB1c2UgdGhlIHJhdyB2ZXJzaW9uIG9mIHRoZSBpOTE1X2dlbV9hY3Rp dmUgbG9va3VwLgogICovCkBAIC0xNDg0LDggKzE1NDQsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2dl bV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICog YnkgdXNlcnNwYWNlLgogCQkJICovCiAJCQllZS0+YmF0Y2hidWZmZXIgPQotCQkJCWk5MTVfZXJy b3Jfb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwKLQkJCQkJCQkgcmVxdWVzdC0+YmF0Y2gpOworCQkJ CWk5MTVfZXJyb3JfYmF0Y2hfb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwKKwkJCQkJCQkgICAgICAg cmVxdWVzdC0+YmF0Y2gsCisJCQkJCQkJICAgICAgICZlZS0+YmF0Y2hfaGFkX2hhbmdfc2lnbmF0 dXJlKTsKIAogCQkJaWYgKEhBU19CUk9LRU5fQ1NfVExCKGRldl9wcml2KSkKIAkJCQllZS0+d2Ff YmF0Y2hidWZmZXIgPQpAQCAtMTcwMSw3ICsxNzYyLDggQEAgc3RhdGljIHZvaWQgaTkxNV9jYXB0 dXJlX3JlZ19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiBzdGF0aWMg dm9pZCBpOTE1X2Vycm9yX2NhcHR1cmVfbXNnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJCQkgICBzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yLAogCQkJCSAgIHUzMiBl bmdpbmVfbWFzaywKLQkJCQkgICBjb25zdCBjaGFyICplcnJvcl9tc2cpCisJCQkJICAgY29uc3Qg Y2hhciAqZXJyb3JfbXNnLAorCQkJCSAgIGJvb2wgc2ltdWxhdGVkKQogewogCXUzMiBlY29kZTsK IAlpbnQgZW5naW5lX2lkID0gLTEsIGxlbjsKQEAgLTE3MDksNyArMTc3MSw4IEBAIHN0YXRpYyB2 b2lkIGk5MTVfZXJyb3JfY2FwdHVyZV9tc2coc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCWVjb2RlID0gaTkxNV9lcnJvcl9nZW5lcmF0ZV9jb2RlKGRldl9wcml2LCBlcnJvciwg JmVuZ2luZV9pZCk7CiAKIAlsZW4gPSBzY25wcmludGYoZXJyb3ItPmVycm9yX21zZywgc2l6ZW9m KGVycm9yLT5lcnJvcl9tc2cpLAotCQkJIkdQVSBIQU5HOiBlY29kZSAlZDolZDoweCUwOHgiLAor CQkJIkdQVSBIQU5HJXM6IGVjb2RlICVkOiVkOjB4JTA4eCIsCisJCQlzaW11bGF0ZWQgPyAiKHNp bXVsYXRlZCkiIDogIiIsCiAJCQlJTlRFTF9HRU4oZGV2X3ByaXYpLCBlbmdpbmVfaWQsIGVjb2Rl KTsKIAogCWlmIChlbmdpbmVfaWQgIT0gLTEgJiYgZXJyb3ItPmVuZ2luZVtlbmdpbmVfaWRdLmNv bnRleHQucGlkKQpAQCAtMTgwMyw2ICsxODY2LDE4IEBAIGk5MTVfY2FwdHVyZV9ncHVfc3RhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcmV0dXJuIGVycm9yOwogfQogCitzdGF0 aWMgYm9vbCBlcnJvcl9zdGF0ZV9oYXNfaGFuZ19zaWduYXR1cmUoY29uc3Qgc3RydWN0IGk5MTVf Z3B1X3N0YXRlICplcnJvcikKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9T SVpFKGVycm9yLT5lbmdpbmUpOyBpKyspIHsKKwkJaWYgKGVycm9yLT5lbmdpbmVbaV0uYmF0Y2hf aGFkX2hhbmdfc2lnbmF0dXJlKQorCQkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNl OworfQorCiAvKioKICAqIGk5MTVfY2FwdHVyZV9lcnJvcl9zdGF0ZSAtIGNhcHR1cmUgYW4gZXJy b3IgcmVjb3JkIGZvciBsYXRlciBhbmFseXNpcwogICogQGRldjogZHJtIGRldmljZQpAQCAtMTgx MywxMiArMTg4OCwxNCBAQCBpOTE1X2NhcHR1cmVfZ3B1X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1KQogICogdG8gcGljayB1cC4KICAqLwogdm9pZCBpOTE1X2NhcHR1cmVfZXJy b3Jfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICAgYm9v bCBpbnRlbnRpb25hbCwKIAkJCSAgICAgIHUzMiBlbmdpbmVfbWFzaywKIAkJCSAgICAgIGNvbnN0 IGNoYXIgKmVycm9yX21zZykKIHsKIAlzdGF0aWMgYm9vbCB3YXJuZWQ7CiAJc3RydWN0IGk5MTVf Z3B1X3N0YXRlICplcnJvcjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCWJvb2wgZXhwZWN0ZWQ7 CiAKIAlpZiAoIWk5MTVfbW9kcGFyYW1zLmVycm9yX2NhcHR1cmUpCiAJCXJldHVybjsKQEAgLTE4 MzIsOCArMTkwOSwxMyBAQCB2b2lkIGk5MTVfY2FwdHVyZV9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXJldHVybjsKIAl9CiAKLQlpOTE1X2Vycm9yX2Nh cHR1cmVfbXNnKGRldl9wcml2LCBlcnJvciwgZW5naW5lX21hc2ssIGVycm9yX21zZyk7Ci0JRFJN X0lORk8oIiVzXG4iLCBlcnJvci0+ZXJyb3JfbXNnKTsKKwlleHBlY3RlZCA9IGludGVudGlvbmFs IHx8IGVycm9yX3N0YXRlX2hhc19oYW5nX3NpZ25hdHVyZShlcnJvcik7CisJaTkxNV9lcnJvcl9j YXB0dXJlX21zZyhkZXZfcHJpdiwgZXJyb3IsIGVuZ2luZV9tYXNrLCBlcnJvcl9tc2csIGV4cGVj dGVkKTsKKworCWlmIChleHBlY3RlZCkKKwkJRFJNX0lORk8oIiVzXG4iLCBlcnJvci0+ZXJyb3Jf bXNnKTsKKwllbHNlCisJCURSTV9XQVJOKCIlc1xuIiwgZXJyb3ItPmVycm9yX21zZyk7CiAKIAlp ZiAoIWVycm9yLT5zaW11bGF0ZWQpIHsKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5n cHVfZXJyb3IubG9jaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggZmYwMGU0 NjI2OTdhLi43NWY1MTlmOTEwY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMjgyOCw2 ICsyODI4LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9jbGVhcl9lcnJvcl9yZWdpc3RlcnMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogLyoqCiAgKiBpOTE1X2hhbmRsZV9lcnJvciAt IGhhbmRsZSBhIGdwdSBlcnJvcgogICogQGRldl9wcml2OiBpOTE1IGRldmljZSBwcml2YXRlCisg KiBAaW50ZW50aW9uYWw6IGVycm9yIHdhcyBpbnRlbnRpb25hbGx5IGluamVjdGVkCiAgKiBAZW5n aW5lX21hc2s6IG1hc2sgcmVwcmVzZW50aW5nIGVuZ2luZXMgdGhhdCBhcmUgaHVuZwogICogQGZt dDogRXJyb3IgbWVzc2FnZSBmb3JtYXQgc3RyaW5nCiAgKgpAQCAtMjgzOCw2ICsyODM5LDcgQEAg c3RhdGljIHZvaWQgaTkxNV9jbGVhcl9lcnJvcl9yZWdpc3RlcnMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogICogb2YgYSByaW5nIGR1bXAgZXRjLikuCiAgKi8KIHZvaWQgaTkx NV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAg ICAgYm9vbCBpbnRlbnRpb25hbCwKIAkJICAgICAgIHUzMiBlbmdpbmVfbWFzaywKIAkJICAgICAg IGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewpAQCAtMjg1OSw3ICsyODYxLDcgQEAgdm9pZCBpOTE1 X2hhbmRsZV9lcnJvcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICovCiAJ aW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCi0JaTkxNV9jYXB0dXJlX2Vycm9yX3N0 YXRlKGRldl9wcml2LCBlbmdpbmVfbWFzaywgZXJyb3JfbXNnKTsKKwlpOTE1X2NhcHR1cmVfZXJy b3Jfc3RhdGUoZGV2X3ByaXYsIGludGVudGlvbmFsLCBlbmdpbmVfbWFzaywgZXJyb3JfbXNnKTsK IAlpOTE1X2NsZWFyX2Vycm9yX3JlZ2lzdGVycyhkZXZfcHJpdik7CiAKIAkvKgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYwppbmRleCAxMmFjMjcwYTVmOTMuLjdiOWU4ZGVjN2Q2 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKQEAgLTI2Niw3ICsyNjYs NyBAQCBlbmdpbmVfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1NjQgYWN0 aGQpCiAJICovCiAJdG1wID0gSTkxNV9SRUFEX0NUTChlbmdpbmUpOwogCWlmICh0bXAgJiBSSU5H X1dBSVQpIHsKLQkJaTkxNV9oYW5kbGVfZXJyb3IoZGV2X3ByaXYsIDAsCisJCWk5MTVfaGFuZGxl X2Vycm9yKGRldl9wcml2LCBmYWxzZSwgMCwKIAkJCQkgICJLaWNraW5nIHN0dWNrIHdhaXQgb24g JXMiLAogCQkJCSAgZW5naW5lLT5uYW1lKTsKIAkJSTkxNV9XUklURV9DVEwoZW5naW5lLCB0bXAp OwpAQCAtMjc4LDcgKzI3OCw3IEBAIGVuZ2luZV9zdHVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsIHU2NCBhY3RoZCkKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBFTkdJTkVfREVBRDsK IAkJY2FzZSAxOgotCQkJaTkxNV9oYW5kbGVfZXJyb3IoZGV2X3ByaXYsIDAsCisJCQlpOTE1X2hh bmRsZV9lcnJvcihkZXZfcHJpdiwgZmFsc2UsIDAsCiAJCQkJCSAgIktpY2tpbmcgc3R1Y2sgc2Vt YXBob3JlIG9uICVzIiwKIAkJCQkJICBlbmdpbmUtPm5hbWUpOwogCQkJSTkxNV9XUklURV9DVEwo ZW5naW5lLCB0bXApOwpAQCAtNDA3LDcgKzQwNyw3IEBAIHN0YXRpYyB2b2lkIGhhbmdjaGVja19k ZWNsYXJlX2hhbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJICIlcywgIiwg ZW5naW5lLT5uYW1lKTsKIAltc2dbbGVuLTJdID0gJ1wwJzsKIAotCXJldHVybiBpOTE1X2hhbmRs ZV9lcnJvcihpOTE1LCBodW5nLCAiJXMiLCBtc2cpOworCXJldHVybiBpOTE1X2hhbmRsZV9lcnJv cihpOTE1LCBmYWxzZSwgaHVuZywgIiVzIiwgbXNnKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYwppbmRleCA3MWNlMDY2ODBk NjYuLjc5MDBiYmE5ZmUxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2ludGVsX2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pbnRlbF9oYW5nY2hlY2suYwpAQCAtODQ2LDcgKzg0Niw3IEBAIHN0YXRpYyBpbnQgaWd0X2hh bmRsZV9lcnJvcih2b2lkICphcmcpCiAJZW5naW5lLT5oYW5nY2hlY2suc3RhbGxlZCA9IHRydWU7 CiAJZW5naW5lLT5oYW5nY2hlY2suc2Vxbm8gPSBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2lu ZSk7CiAKLQlpOTE1X2hhbmRsZV9lcnJvcihpOTE1LCBpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUp LCAiJXMiLCBfX2Z1bmNfXyk7CisJaTkxNV9oYW5kbGVfZXJyb3IoaTkxNSwgdHJ1ZSwgaW50ZWxf ZW5naW5lX2ZsYWcoZW5naW5lKSwgIiVzIiwgX19mdW5jX18pOwogCiAJeGNoZygmaTkxNS0+Z3B1 X2Vycm9yLmZpcnN0X2Vycm9yLCBlcnJvcik7CiAKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==