From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915: Hold rpm wakeref for printing the engine's register state Date: Mon, 12 Feb 2018 10:24:15 +0000 Message-ID: <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 fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A15A89C1B for ; Mon, 12 Feb 2018 10:24:28 +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: Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org V2hlbiBkdW1waW5nIHRoZSBlbmdpbmUsIHdlIHByaW50IG91dCB0aGUgY3VycmVudCByZWdpc3Rl ciB2YWx1ZXMuIFRoaXMKcmVxdWlyZXMgdGhlIHJwbSB3YWtlcmVmLiBJZiB0aGUgZGV2aWNlIGlz IGFsc2VlcCwgd2UgY2FuIGFzc3VtZSB0aGUKZW5naW5lIGlzIGFzbGVlcCAoYW5kIHRoZSByZWdp c3RlciBzdGF0ZSBpcyB1bmludGVyZXN0aW5nKSBzbyBza2lwIGFuZApvbmx5IGFjcXVpcmUgdGhl IHJwbSB3YWtlcmVmIGlmIHRoZSBkZXZpY2UgaXMgYWxyZWFkeSBhd2FrZS4KClJlcG9ydGVkLWJ5 OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IFR2cnRrbyBVcnN1 bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1 b3BwYWxhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf Y3MuYyAgfCAxNjIgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAgNiArLQogMiBmaWxlcyBjaGFuZ2VkLCA5 NCBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jCmluZGV4IDNlZmM1ODlhN2YzNy4uMmRmOWEyZDAzOGVlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtNjkxLDcgKzY5MSw3IEBAIHZvaWQgaW50 ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK IAllbmdpbmUtPmNvbnRleHRfdW5waW4oZW5naW5lLCBlbmdpbmUtPmk5MTUtPmtlcm5lbF9jb250 ZXh0KTsKIH0KIAotdTY0IGludGVsX2VuZ2luZV9nZXRfYWN0aXZlX2hlYWQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQordTY0IGludGVsX2VuZ2luZV9nZXRfYWN0aXZlX2hlYWQoY29u c3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKIAl1NjQgYWN0aGQ7CkBAIC03MDcsNyAr NzA3LDcgQEAgdTY0IGludGVsX2VuZ2luZV9nZXRfYWN0aXZlX2hlYWQoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogCXJldHVybiBhY3RoZDsKIH0KIAotdTY0IGludGVsX2VuZ2luZV9n ZXRfbGFzdF9iYXRjaF9oZWFkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3U2NCBp bnRlbF9lbmdpbmVfZ2V0X2xhc3RfYmF0Y2hfaGVhZChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5n aW5lLT5pOTE1OwogCXU2NCBiYmFkZHI7CkBAIC0xNzA1LDczICsxNzA1LDIwIEBAIHN0YXRpYyB2 b2lkIGhleGR1bXAoc3RydWN0IGRybV9wcmludGVyICptLCBjb25zdCB2b2lkICpidWYsIHNpemVf dCBsZW4pCiAJfQogfQogCi12b2lkIGludGVsX2VuZ2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwKLQkJICAgICAgIHN0cnVjdCBkcm1fcHJpbnRlciAqbSwKLQkJICAgICAg IGNvbnN0IGNoYXIgKmhlYWRlciwgLi4uKQorc3RhdGljIHZvaWQgaW50ZWxfZW5naW5lX3ByaW50 X3JlZ2lzdGVycyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkJCSBz dHJ1Y3QgZHJtX3ByaW50ZXIgKm0pCiB7Ci0Jc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICogY29u c3QgYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwotCWNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVf ZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwotCXN0cnVj dCBpOTE1X2dwdV9lcnJvciAqIGNvbnN0IGVycm9yID0gJmVuZ2luZS0+aTkxNS0+Z3B1X2Vycm9y OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKLQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxOwotCXN0cnVjdCByYl9ub2RlICpyYjsKLQlj aGFyIGhkcls4MF07CisJY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25z dCBleGVjbGlzdHMgPQorCQkmZW5naW5lLT5leGVjbGlzdHM7CiAJdTY0IGFkZHI7CiAKLQlpZiAo aGVhZGVyKSB7Ci0JCXZhX2xpc3QgYXA7Ci0KLQkJdmFfc3RhcnQoYXAsIGhlYWRlcik7Ci0JCWRy bV92cHJpbnRmKG0sIGhlYWRlciwgJmFwKTsKLQkJdmFfZW5kKGFwKTsKLQl9Ci0KLQlpZiAoaTkx NV90ZXJtaW5hbGx5X3dlZGdlZCgmZW5naW5lLT5pOTE1LT5ncHVfZXJyb3IpKQotCQlkcm1fcHJp bnRmKG0sICIqKiogV0VER0VEICoqKlxuIik7Ci0KLQlkcm1fcHJpbnRmKG0sICJcdGN1cnJlbnQg c2Vxbm8gJXgsIGxhc3QgJXgsIGhhbmdjaGVjayAleCBbJWQgbXNdLCBpbmZsaWdodCAlZFxuIiwK LQkJICAgaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpLAotCQkgICBpbnRlbF9lbmdpbmVf bGFzdF9zdWJtaXQoZW5naW5lKSwKLQkJICAgZW5naW5lLT5oYW5nY2hlY2suc2Vxbm8sCi0JCSAg IGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtIGVuZ2luZS0+aGFuZ2NoZWNrLmFjdGlvbl90aW1l c3RhbXApLAotCQkgICBlbmdpbmUtPnRpbWVsaW5lLT5pbmZsaWdodF9zZXFub3MpOwotCWRybV9w cmludGYobSwgIlx0UmVzZXQgY291bnQ6ICVkIChnbG9iYWwgJWQpXG4iLAotCQkgICBpOTE1X3Jl c2V0X2VuZ2luZV9jb3VudChlcnJvciwgZW5naW5lKSwKLQkJICAgaTkxNV9yZXNldF9jb3VudChl cnJvcikpOwotCi0JcmN1X3JlYWRfbG9jaygpOwotCi0JZHJtX3ByaW50ZihtLCAiXHRSZXF1ZXN0 czpcbiIpOwotCi0JcnEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZlbmdpbmUtPnRpbWVsaW5lLT5yZXF1 ZXN0cywKLQkJCSAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCwgbGluayk7Ci0JaWYg KCZycS0+bGluayAhPSAmZW5naW5lLT50aW1lbGluZS0+cmVxdWVzdHMpCi0JCXByaW50X3JlcXVl c3QobSwgcnEsICJcdFx0Zmlyc3QgICIpOwotCi0JcnEgPSBsaXN0X2xhc3RfZW50cnkoJmVuZ2lu ZS0+dGltZWxpbmUtPnJlcXVlc3RzLAotCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QsIGxpbmspOwotCWlmICgmcnEtPmxpbmsgIT0gJmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3Rz KQotCQlwcmludF9yZXF1ZXN0KG0sIHJxLCAiXHRcdGxhc3QgICAiKTsKLQotCXJxID0gaTkxNV9n ZW1fZmluZF9hY3RpdmVfcmVxdWVzdChlbmdpbmUpOwotCWlmIChycSkgewotCQlwcmludF9yZXF1 ZXN0KG0sIHJxLCAiXHRcdGFjdGl2ZSAiKTsKLQkJZHJtX3ByaW50ZihtLAotCQkJICAgIlx0XHRb aGVhZCAlMDR4LCBwb3N0Zml4ICUwNHgsIHRhaWwgJTA0eCwgYmF0Y2ggMHglMDh4XyUwOHhdXG4i LAotCQkJICAgcnEtPmhlYWQsIHJxLT5wb3N0Zml4LCBycS0+dGFpbCwKLQkJCSAgIHJxLT5iYXRj aCA/IHVwcGVyXzMyX2JpdHMocnEtPmJhdGNoLT5ub2RlLnN0YXJ0KSA6IH4wdSwKLQkJCSAgIHJx LT5iYXRjaCA/IGxvd2VyXzMyX2JpdHMocnEtPmJhdGNoLT5ub2RlLnN0YXJ0KSA6IH4wdSk7Ci0J fQotCi0JZHJtX3ByaW50ZihtLCAiXHRSSU5HX1NUQVJUOiAweCUwOHggWzB4JTA4eF1cbiIsCi0J CSAgIEk5MTVfUkVBRChSSU5HX1NUQVJUKGVuZ2luZS0+bW1pb19iYXNlKSksCi0JCSAgIHJxID8g aTkxNV9nZ3R0X29mZnNldChycS0+cmluZy0+dm1hKSA6IDApOwotCWRybV9wcmludGYobSwgIlx0 UklOR19IRUFEOiAgMHglMDh4IFsweCUwOHhdXG4iLAotCQkgICBJOTE1X1JFQUQoUklOR19IRUFE KGVuZ2luZS0+bW1pb19iYXNlKSkgJiBIRUFEX0FERFIsCi0JCSAgIHJxID8gcnEtPnJpbmctPmhl YWQgOiAwKTsKLQlkcm1fcHJpbnRmKG0sICJcdFJJTkdfVEFJTDogIDB4JTA4eCBbMHglMDh4XVxu IiwKLQkJICAgSTkxNV9SRUFEKFJJTkdfVEFJTChlbmdpbmUtPm1taW9fYmFzZSkpICYgVEFJTF9B RERSLAotCQkgICBycSA/IHJxLT5yaW5nLT50YWlsIDogMCk7CisJZHJtX3ByaW50ZihtLCAiXHRS SU5HX1NUQVJUOiAweCUwOHhcbiIsCisJCSAgIEk5MTVfUkVBRChSSU5HX1NUQVJUKGVuZ2luZS0+ bW1pb19iYXNlKSkpOworCWRybV9wcmludGYobSwgIlx0UklOR19IRUFEOiAgMHglMDh4XG4iLAor CQkgICBJOTE1X1JFQUQoUklOR19IRUFEKGVuZ2luZS0+bW1pb19iYXNlKSkgJiBIRUFEX0FERFIp OworCWRybV9wcmludGYobSwgIlx0UklOR19UQUlMOiAgMHglMDh4XG4iLAorCQkgICBJOTE1X1JF QUQoUklOR19UQUlMKGVuZ2luZS0+bW1pb19iYXNlKSkgJiBUQUlMX0FERFIpOwogCWRybV9wcmlu dGYobSwgIlx0UklOR19DVEw6ICAgMHglMDh4JXNcbiIsCiAJCSAgIEk5MTVfUkVBRChSSU5HX0NU TChlbmdpbmUtPm1taW9fYmFzZSkpLAogCQkgICBJOTE1X1JFQUQoUklOR19DVEwoZW5naW5lLT5t bWlvX2Jhc2UpKSAmIChSSU5HX1dBSVQgfCBSSU5HX1dBSVRfU0VNQVBIT1JFKSA/ICIgW3dhaXRp bmddIiA6ICIiKTsKQEAgLTE3ODAsNiArMTcyNywxMSBAQCB2b2lkIGludGVsX2VuZ2luZV9kdW1w KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCSAgIEk5MTVfUkVBRChSSU5HX01J X01PREUoZW5naW5lLT5tbWlvX2Jhc2UpKSwKIAkJCSAgIEk5MTVfUkVBRChSSU5HX01JX01PREUo ZW5naW5lLT5tbWlvX2Jhc2UpKSAmIChNT0RFX0lETEUpID8gIiBbaWRsZV0iIDogIiIpOwogCX0K KworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpIHsKKwkJZHJtX3ByaW50ZihtLCAiXHRS SU5HX0lNUjogJTA4eFxuIiwgSTkxNV9SRUFEX0lNUihlbmdpbmUpKTsKKwl9CisKIAlpZiAoSEFT X0xFR0FDWV9TRU1BUEhPUkVTKGRldl9wcml2KSkgewogCQlkcm1fcHJpbnRmKG0sICJcdFNZTkNf MDogMHglMDh4XG4iLAogCQkJICAgSTkxNV9SRUFEKFJJTkdfU1lOQ18wKGVuZ2luZS0+bW1pb19i YXNlKSkpOwpAQCAtMTc5MCw4ICsxNzQyLDYgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZHVtcChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkJICAgSTkxNV9SRUFEKFJJTkdfU1lOQ18y KGVuZ2luZS0+bW1pb19iYXNlKSkpOwogCX0KIAotCXJjdV9yZWFkX3VubG9jaygpOwotCiAJYWRk ciA9IGludGVsX2VuZ2luZV9nZXRfYWN0aXZlX2hlYWQoZW5naW5lKTsKIAlkcm1fcHJpbnRmKG0s ICJcdEFDVEhEOiAgMHglMDh4XyUwOHhcbiIsCiAJCSAgIHVwcGVyXzMyX2JpdHMoYWRkciksIGxv d2VyXzMyX2JpdHMoYWRkcikpOwpAQCAtMTg1MywxMCArMTgwMywxMyBAQCB2b2lkIGludGVsX2Vu Z2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAogCQlyY3VfcmVhZF9s b2NrKCk7CiAJCWZvciAoaWR4ID0gMDsgaWR4IDwgZXhlY2xpc3RzX251bV9wb3J0cyhleGVjbGlz dHMpOyBpZHgrKykgeworCQkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycTsKIAkJCXVu c2lnbmVkIGludCBjb3VudDsKIAogCQkJcnEgPSBwb3J0X3VucGFjaygmZXhlY2xpc3RzLT5wb3J0 W2lkeF0sICZjb3VudCk7CiAJCQlpZiAocnEpIHsKKwkJCQljaGFyIGhkcls4MF07CisKIAkJCQlz bnByaW50ZihoZHIsIHNpemVvZihoZHIpLAogCQkJCQkgIlx0XHRFTFNQWyVkXSBjb3VudD0lZCwg cnE6ICIsCiAJCQkJCSBpZHgsIGNvdW50KTsKQEAgLTE4NzUsNiArMTgyOCw3NyBAQCB2b2lkIGlu dGVsX2VuZ2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJZHJtX3By aW50ZihtLCAiXHRQUF9ESVJfRENMVjogMHglMDh4XG4iLAogCQkJICAgSTkxNV9SRUFEKFJJTkdf UFBfRElSX0RDTFYoZW5naW5lKSkpOwogCX0KK30KKwordm9pZCBpbnRlbF9lbmdpbmVfZHVtcChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCSAgICAgICBzdHJ1Y3QgZHJtX3ByaW50 ZXIgKm0sCisJCSAgICAgICBjb25zdCBjaGFyICpoZWFkZXIsIC4uLikKK3sKKwlzdHJ1Y3QgaW50 ZWxfYnJlYWRjcnVtYnMgKiBjb25zdCBiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7CisJY29uc3Qg c3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5l LT5leGVjbGlzdHM7CisJc3RydWN0IGk5MTVfZ3B1X2Vycm9yICogY29uc3QgZXJyb3IgPSAmZW5n aW5lLT5pOTE1LT5ncHVfZXJyb3I7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycTsK KwlzdHJ1Y3QgcmJfbm9kZSAqcmI7CisKKwlpZiAoaGVhZGVyKSB7CisJCXZhX2xpc3QgYXA7CisK KwkJdmFfc3RhcnQoYXAsIGhlYWRlcik7CisJCWRybV92cHJpbnRmKG0sIGhlYWRlciwgJmFwKTsK KwkJdmFfZW5kKGFwKTsKKwl9CisKKwlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZCgmZW5naW5l LT5pOTE1LT5ncHVfZXJyb3IpKQorCQlkcm1fcHJpbnRmKG0sICIqKiogV0VER0VEICoqKlxuIik7 CisKKwlkcm1fcHJpbnRmKG0sICJcdGN1cnJlbnQgc2Vxbm8gJXgsIGxhc3QgJXgsIGhhbmdjaGVj ayAleCBbJWQgbXNdLCBpbmZsaWdodCAlZFxuIiwKKwkJICAgaW50ZWxfZW5naW5lX2dldF9zZXFu byhlbmdpbmUpLAorCQkgICBpbnRlbF9lbmdpbmVfbGFzdF9zdWJtaXQoZW5naW5lKSwKKwkJICAg ZW5naW5lLT5oYW5nY2hlY2suc2Vxbm8sCisJCSAgIGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAt IGVuZ2luZS0+aGFuZ2NoZWNrLmFjdGlvbl90aW1lc3RhbXApLAorCQkgICBlbmdpbmUtPnRpbWVs aW5lLT5pbmZsaWdodF9zZXFub3MpOworCWRybV9wcmludGYobSwgIlx0UmVzZXQgY291bnQ6ICVk IChnbG9iYWwgJWQpXG4iLAorCQkgICBpOTE1X3Jlc2V0X2VuZ2luZV9jb3VudChlcnJvciwgZW5n aW5lKSwKKwkJICAgaTkxNV9yZXNldF9jb3VudChlcnJvcikpOworCisJcmN1X3JlYWRfbG9jaygp OworCisJZHJtX3ByaW50ZihtLCAiXHRSZXF1ZXN0czpcbiIpOworCisJcnEgPSBsaXN0X2ZpcnN0 X2VudHJ5KCZlbmdpbmUtPnRpbWVsaW5lLT5yZXF1ZXN0cywKKwkJCSAgICAgIHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCwgbGluayk7CisJaWYgKCZycS0+bGluayAhPSAmZW5naW5lLT50aW1l bGluZS0+cmVxdWVzdHMpCisJCXByaW50X3JlcXVlc3QobSwgcnEsICJcdFx0Zmlyc3QgICIpOwor CisJcnEgPSBsaXN0X2xhc3RfZW50cnkoJmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3RzLAorCQkJ ICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QsIGxpbmspOworCWlmICgmcnEtPmxpbmsg IT0gJmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3RzKQorCQlwcmludF9yZXF1ZXN0KG0sIHJxLCAi XHRcdGxhc3QgICAiKTsKKworCXJxID0gaTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChlbmdp bmUpOworCWlmIChycSkgeworCQlwcmludF9yZXF1ZXN0KG0sIHJxLCAiXHRcdGFjdGl2ZSAiKTsK KwkJZHJtX3ByaW50ZihtLAorCQkJICAgIlx0XHRbaGVhZCAlMDR4LCBwb3N0Zml4ICUwNHgsIHRh aWwgJTA0eCwgYmF0Y2ggMHglMDh4XyUwOHhdXG4iLAorCQkJICAgcnEtPmhlYWQsIHJxLT5wb3N0 Zml4LCBycS0+dGFpbCwKKwkJCSAgIHJxLT5iYXRjaCA/IHVwcGVyXzMyX2JpdHMocnEtPmJhdGNo LT5ub2RlLnN0YXJ0KSA6IH4wdSwKKwkJCSAgIHJxLT5iYXRjaCA/IGxvd2VyXzMyX2JpdHMocnEt PmJhdGNoLT5ub2RlLnN0YXJ0KSA6IH4wdSk7CisJCWRybV9wcmludGYobSwgIlx0XHRyaW5nLT5z dGFydDogMHglMDh4XG4iLAorCQkJICAgaTkxNV9nZ3R0X29mZnNldChycS0+cmluZy0+dm1hKSk7 CisJCWRybV9wcmludGYobSwgIlx0XHRyaW5nLT5oZWFkOiAgMHglMDh4XG4iLAorCQkJICAgcnEt PnJpbmctPmhlYWQpOworCQlkcm1fcHJpbnRmKG0sICJcdFx0cmluZy0+dGFpbDogIDB4JTA4eFxu IiwKKwkJCSAgIHJxLT5yaW5nLT50YWlsKTsKKwl9CisKKwlyY3VfcmVhZF91bmxvY2soKTsKKwor CWlmIChpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UoZW5naW5lLT5pOTE1KSkgeworCQlp bnRlbF9lbmdpbmVfcHJpbnRfcmVnaXN0ZXJzKGVuZ2luZSwgbSk7CisJCWludGVsX3J1bnRpbWVf cG1fcHV0KGVuZ2luZS0+aTkxNSk7CisJfSBlbHNlIHsKKwkJZHJtX3ByaW50ZihtLCAiRGV2aWNl IGlzIGFsc2VlcDsgc2tpcHBpbmcgcmVnaXN0ZXIgZHVtcFxuIik7CisJfQogCiAJc3Bpbl9sb2Nr X2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShycSwg JmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3RzLCBsaW5rKQpAQCAtMTg5NywxMCArMTkyMSw2IEBA IHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAog CX0KIAlzcGluX3VubG9ja19pcnEoJmItPnJiX2xvY2spOwogCi0JaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gNikgewotCQlkcm1fcHJpbnRmKG0sICJcdFJJTkdfSU1SOiAlMDh4XG4iLCBJOTE1 X1JFQURfSU1SKGVuZ2luZSkpOwotCX0KLQogCWRybV9wcmludGYobSwgIklSUT8gMHglbHggKGJy ZWFkY3J1bWJzPyAlcykgKGV4ZWNsaXN0cz8gJXMpXG4iLAogCQkgICBlbmdpbmUtPmlycV9wb3N0 ZWQsCiAJCSAgIHllc25vKHRlc3RfYml0KEVOR0lORV9JUlFfQlJFQURDUlVNQiwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCA4ZjFhNGJhZGY4MTIuLjUxNTIzYWQw NDlkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtNjU5LDcg KzY1OSw3IEBAIGludGVsX2VuZ2luZV9mbGFnKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIH0KIAogc3RhdGljIGlubGluZSB1MzIKLWludGVsX3JlYWRfc3RhdHVzX3BhZ2Uo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgcmVnKQoraW50ZWxfcmVhZF9zdGF0 dXNfcGFnZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCByZWcpCiB7 CiAJLyogRW5zdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgb3B0aW1pemUgYXdheSB0aGUg bG9hZC4gKi8KIAlyZXR1cm4gUkVBRF9PTkNFKGVuZ2luZS0+c3RhdHVzX3BhZ2UucGFnZV9hZGRy W3JlZ10pOwpAQCAtODE3LDggKzgxNyw4IEBAIGludCBpbnRlbF9pbml0X2JzZF9yaW5nX2J1ZmZl cihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogaW50IGludGVsX2luaXRfYmx0X3Jp bmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiBpbnQgaW50ZWxfaW5p dF92ZWJveF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCi11 NjQgaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpOwotdTY0IGludGVsX2VuZ2luZV9nZXRfbGFzdF9iYXRjaF9oZWFkKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSk7Cit1NjQgaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChj b25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwordTY0IGludGVsX2VuZ2luZV9n ZXRfbGFzdF9iYXRjaF9oZWFkKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7 CiAKIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogewotLSAKMi4xNi4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK