From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [REBASED PATCH RESEND 3/5 v2] drm/i915: i915_sysfs.c cleanup Date: Mon, 22 Aug 2016 13:32:43 +0300 Message-ID: <20160822103245.24069-4-david.weinehall@linux.intel.com> References: <20160822103245.24069-1-david.weinehall@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 97CC16E41C for ; Mon, 22 Aug 2016 10:41:54 +0000 (UTC) In-Reply-To: <20160822103245.24069-1-david.weinehall@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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VmFyaW91cyBjbGVhbnVwIGZvciBpOTE1X3N5c2ZzLmM7IHdlIG5vdyB1c2UgZGV2X3ByaXYgd2hl bmV2ZXIKcG9zc2libGUuIFRoZSBrZGV2X3RvX2RybV9taW5vcigpIGhlbHBlciBmdW5jdGlvbiBo YXMgYmVlbgpyZXBsYWNlZCBieSBvbmUgdGhhdCBjb252ZXJ0cyBmcm9tIHN0cnVjdCBkZXZpY2Ug Kgp0byBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqLgoKV2UgYWxyZWFkeSBoYXZlIGEgc2VlbWlu Z2x5IGlkZW50aWNhbCBoZWxwZXIgKGtkZXZfdG9faTkxNSgpKQppbiBpOTE1X2Rydi5oLiBCdXQg dGhhdCBvbmUgY2Fubm90IGJlIHVzZWQgaGVyZS4KVW5saWtlIHRoZSB2ZXJzaW9uIGluIGk5MTVf ZHJ2LmgsIHRoaXMgaGVscGVyCnJlYWNoZXMgaTkxNSB0aHJvdWdoIGRybV9taW5vci4KCnYyOiBS ZW5hbWUga2Rldl90b19pOTE1X2RtKCkgdG8ga2Rldl9taW5vcl90b19pOTE1KCkgKENocmlzKQoK U2lnbmVkLW9mZi1ieTogRGF2aWQgV2VpbmVoYWxsIDxkYXZpZC53ZWluZWhhbGxAbGludXguaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICB8ICAgNCArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3N5c2ZzLmMgfCAxNDggKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggNTNmOTUzNWZiODFlLi5jMzE2MDM0YWVk YTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMTEzMyw3ICsxMTMzLDcgQEAgc3RhdGlj IHZvaWQgaTkxNV9kcml2ZXJfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogCS8qIFJldmVhbCBvdXIgcHJlc2VuY2UgdG8gdXNlcnNwYWNlICovCiAJaWYgKGRybV9k ZXZfcmVnaXN0ZXIoZGV2LCAwKSA9PSAwKSB7CiAJCWk5MTVfZGVidWdmc19yZWdpc3RlcihkZXZf cHJpdik7Ci0JCWk5MTVfc2V0dXBfc3lzZnMoZGV2KTsKKwkJaTkxNV9zZXR1cF9zeXNmcyhkZXZf cHJpdik7CiAJfSBlbHNlCiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlZ2lzdGVyIGRyaXZlciBm b3IgdXNlcnNwYWNlIGFjY2VzcyFcbiIpOwogCkBAIC0xMTcwLDcgKzExNzAsNyBAQCBzdGF0aWMg dm9pZCBpOTE1X2RyaXZlcl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAlhY3BpX3ZpZGVvX3VucmVnaXN0ZXIoKTsKIAlpbnRlbF9vcHJlZ2lvbl91bnJlZ2lz dGVyKGRldl9wcml2KTsKIAotCWk5MTVfdGVhcmRvd25fc3lzZnMoJmRldl9wcml2LT5kcm0pOwor CWk5MTVfdGVhcmRvd25fc3lzZnMoZGV2X3ByaXYpOwogCWk5MTVfZGVidWdmc191bnJlZ2lzdGVy KGRldl9wcml2KTsKIAlkcm1fZGV2X3VucmVnaXN0ZXIoJmRldl9wcml2LT5kcm0pOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAppbmRleCA1ODQ0MTBiNzBlMzEuLjA3N2ViYTAwN2RjNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zNTU3LDggKzM1NTcsOCBAQCBleHRlcm4gaW50IGk5MTVf c2F2ZV9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiBpbnQgaTkxNV9yZXN0 b3JlX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCiAvKiBpOTE1X3N5c2ZzLmMgKi8K LXZvaWQgaTkxNV9zZXR1cF9zeXNmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2X3ByaXYpOwotdm9p ZCBpOTE1X3RlYXJkb3duX3N5c2ZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXZfcHJpdik7Cit2b2lk IGk5MTVfc2V0dXBfc3lzZnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3Zv aWQgaTkxNV90ZWFyZG93bl9zeXNmcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp OwogCiAvKiBpbnRlbF9pMmMuYyAqLwogZXh0ZXJuIGludCBpbnRlbF9zZXR1cF9nbWJ1cyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwppbmRleCAwNWNi OTViZjJmNGIuLjJkNDgyZjY3N2Y1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9zeXNmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwpAQCAt MzIsMTYgKzMyLDE2IEBACiAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9k cnYuaCIKIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX21pbm9yICprZGV2X3RvX2RybV9taW5v cihzdHJ1Y3QgZGV2aWNlICprZGV2KQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqa2Rldl9taW5vcl90b19pOTE1KHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0JcmV0dXJu IGRldl9nZXRfZHJ2ZGF0YShrZGV2KTsKKwlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGRldl9n ZXRfZHJ2ZGF0YShrZGV2KTsKKwlyZXR1cm4gdG9faTkxNShtaW5vci0+ZGV2KTsKIH0KIAogI2lm ZGVmIENPTkZJR19QTQotc3RhdGljIHUzMiBjYWxjX3Jlc2lkZW5jeShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAorc3RhdGljIHUzMiBjYWxjX3Jlc2lkZW5jeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJCQkgIGk5MTVfcmVnX3QgcmVnKQogewotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAl1NjQgcmF3X3RpbWU7IC8qIDMyYiB2 YWx1ZSBtYXkgb3ZlcmZsb3cgZHVyaW5nIGZpeGVkIHBvaW50IG1hdGggKi8KIAl1NjQgdW5pdHMg PSAxMjhVTEwsIGRpdiA9IDEwMDAwMFVMTDsKIAl1MzIgcmV0OwpAQCAtNTIsMTMgKzUyLDEzIEBA IHN0YXRpYyB1MzIgY2FsY19yZXNpZGVuY3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnRl bF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CiAKIAkvKiBPbiBWTFYgYW5kIENIViwgcmVzaWRl bmN5IHRpbWUgaXMgaW4gQ1ogdW5pdHMgcmF0aGVyIHRoYW4gMS4yOHVzICovCi0JaWYgKElTX1ZB TExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKKwlpZiAoSVNfVkFMTEVZVklF VyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKIAkJdW5pdHMgPSAxOwog CQlkaXYgPSBkZXZfcHJpdi0+Y3pjbGtfZnJlcTsKIAogCQlpZiAoSTkxNV9SRUFEKFZMVl9DT1VO VEVSX0NPTlRST0wpICYgVkxWX0NPVU5UX1JBTkdFX0hJR0gpCiAJCQl1bml0cyA8PD0gODsKLQl9 IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgeworCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZf cHJpdikpIHsKIAkJdW5pdHMgPSAxOwogCQlkaXYgPSAxMjAwOwkJLyogODMzLjMzbnMgKi8KIAl9 CkBAIC03OSwzMiArNzksMzIgQEAgc2hvd19yYzZfbWFzayhzdHJ1Y3QgZGV2aWNlICprZGV2LCBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogc3RhdGljIHNzaXplX3QK IHNob3dfcmM2X21zKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLCBjaGFyICpidWYpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqZG1pbm9yID0gZGV2X2dl dF9kcnZkYXRhKGtkZXYpOwotCXUzMiByYzZfcmVzaWRlbmN5ID0gY2FsY19yZXNpZGVuY3koZG1p bm9yLT5kZXYsIEdFTjZfR1RfR0ZYX1JDNik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0ga2Rldl9taW5vcl90b19pOTE1KGtkZXYpOworCXUzMiByYzZfcmVzaWRlbmN5ID0g Y2FsY19yZXNpZGVuY3koZGV2X3ByaXYsIEdFTjZfR1RfR0ZYX1JDNik7CiAJcmV0dXJuIHNucHJp bnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXVcbiIsIHJjNl9yZXNpZGVuY3kpOwogfQogCiBzdGF0aWMg c3NpemVfdAogc2hvd19yYzZwX21zKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2Vf YXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqZG1pbm9y ID0ga2Rldl90b19kcm1fbWlub3Ioa2Rldik7Ci0JdTMyIHJjNnBfcmVzaWRlbmN5ID0gY2FsY19y ZXNpZGVuY3koZG1pbm9yLT5kZXYsIEdFTjZfR1RfR0ZYX1JDNnApOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfbWlub3JfdG9faTkxNShrZGV2KTsKKwl1MzIgcmM2 cF9yZXNpZGVuY3kgPSBjYWxjX3Jlc2lkZW5jeShkZXZfcHJpdiwgR0VONl9HVF9HRlhfUkM2cCk7 CiAJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXVcbiIsIHJjNnBfcmVzaWRlbmN5 KTsKIH0KIAogc3RhdGljIHNzaXplX3QKIHNob3dfcmM2cHBfbXMoc3RydWN0IGRldmljZSAqa2Rl diwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3Qg ZHJtX21pbm9yICpkbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKLQl1MzIgcmM2cHBf cmVzaWRlbmN5ID0gY2FsY19yZXNpZGVuY3koZG1pbm9yLT5kZXYsIEdFTjZfR1RfR0ZYX1JDNnBw KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X21pbm9yX3RvX2k5 MTUoa2Rldik7CisJdTMyIHJjNnBwX3Jlc2lkZW5jeSA9IGNhbGNfcmVzaWRlbmN5KGRldl9wcml2 LCBHRU42X0dUX0dGWF9SQzZwcCk7CiAJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAi JXVcbiIsIHJjNnBwX3Jlc2lkZW5jeSk7CiB9CiAKIHN0YXRpYyBzc2l6ZV90CiBzaG93X21lZGlh X3JjNl9tcyhzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0 ciwgY2hhciAqYnVmKQogewotCXN0cnVjdCBkcm1fbWlub3IgKmRtaW5vciA9IGRldl9nZXRfZHJ2 ZGF0YShrZGV2KTsKLQl1MzIgcmM2X3Jlc2lkZW5jeSA9IGNhbGNfcmVzaWRlbmN5KGRtaW5vci0+ ZGV2LCBWTFZfR1RfTUVESUFfUkM2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBrZGV2X21pbm9yX3RvX2k5MTUoa2Rldik7CisJdTMyIHJjNl9yZXNpZGVuY3kgPSBjYWxj X3Jlc2lkZW5jeShkZXZfcHJpdiwgVkxWX0dUX01FRElBX1JDNik7CiAJcmV0dXJuIHNucHJpbnRm KGJ1ZiwgUEFHRV9TSVpFLCAiJXVcbiIsIHJjNl9yZXNpZGVuY3kpOwogfQogCkBAIC0xNDcsOSAr MTQ3LDkgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgbWVkaWFfcmM2X2F0dHJfZ3Jv dXAgPSB7CiB9OwogI2VuZGlmCiAKLXN0YXRpYyBpbnQgbDNfYWNjZXNzX3ZhbGlkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGxvZmZfdCBvZmZzZXQpCitzdGF0aWMgaW50IGwzX2FjY2Vzc192YWxp ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGxvZmZfdCBvZmZzZXQpCiB7Ci0J aWYgKCFIQVNfTDNfRFBGKGRldikpCisJaWYgKCFIQVNfTDNfRFBGKGRldl9wcml2KSkKIAkJcmV0 dXJuIC1FUEVSTTsKIAogCWlmIChvZmZzZXQgJSA0ICE9IDApCkBAIC0xNjcsMTUgKzE2NywxNCBA QCBpOTE1X2wzX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2JqZWN0ICprb2JqLAog CSAgICAgbG9mZl90IG9mZnNldCwgc2l6ZV90IGNvdW50KQogewogCXN0cnVjdCBkZXZpY2UgKmtk ZXYgPSBrb2JqX3RvX2Rldihrb2JqKTsKLQlzdHJ1Y3QgZHJtX21pbm9yICpkbWlub3IgPSBrZGV2 X3RvX2RybV9taW5vcihrZGV2KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZG1pbm9yLT5k ZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfbWlub3JfdG9faTkxNShr ZGV2KTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07CiAJaW50IHNs aWNlID0gKGludCkodWludHB0cl90KWF0dHItPnByaXZhdGU7CiAJaW50IHJldDsKIAogCWNvdW50 ID0gcm91bmRfZG93bihjb3VudCwgNCk7CiAKLQlyZXQgPSBsM19hY2Nlc3NfdmFsaWQoZGV2LCBv ZmZzZXQpOworCXJldCA9IGwzX2FjY2Vzc192YWxpZChkZXZfcHJpdiwgb2Zmc2V0KTsKIAlpZiAo cmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0yMDMsMTggKzIwMiwxNyBAQCBpOTE1X2wzX3dyaXRl KHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAkgICAgICBsb2ZmX3Qg b2Zmc2V0LCBzaXplX3QgY291bnQpCiB7CiAJc3RydWN0IGRldmljZSAqa2RldiA9IGtvYmpfdG9f ZGV2KGtvYmopOwotCXN0cnVjdCBkcm1fbWlub3IgKmRtaW5vciA9IGtkZXZfdG9fZHJtX21pbm9y KGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkbWlub3ItPmRldjsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl9taW5vcl90b19pOTE1KGtkZXYpOworCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqY3R4OwogCXUzMiAqdGVtcCA9IE5VTEw7IC8qIEp1c3QgaGVyZSB0byBtYWtlIGhhbmRs aW5nIGZhaWx1cmVzIGVhc3kgKi8KIAlpbnQgc2xpY2UgPSAoaW50KSh1aW50cHRyX3QpYXR0ci0+ cHJpdmF0ZTsKIAlpbnQgcmV0OwogCi0JaWYgKCFIQVNfSFdfQ09OVEVYVFMoZGV2KSkKKwlpZiAo IUhBU19IV19DT05URVhUUyhkZXZfcHJpdikpCiAJCXJldHVybiAtRU5YSU87CiAKLQlyZXQgPSBs M19hY2Nlc3NfdmFsaWQoZGV2LCBvZmZzZXQpOworCXJldCA9IGwzX2FjY2Vzc192YWxpZChkZXZf cHJpdiwgb2Zmc2V0KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0yNjksOSArMjY3 LDcgQEAgc3RhdGljIHN0cnVjdCBiaW5fYXR0cmlidXRlIGRwZl9hdHRyc18xID0gewogc3RhdGlj IHNzaXplX3QgZ3RfYWN0X2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2RldiwKIAkJCQkg ICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3Qg ZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBtaW5vci0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBrZGV2X21pbm9yX3RvX2k5MTUoa2Rldik7CiAJaW50IHJldDsKIAogCWludGVsX3J1bnRpbWVf cG1fZ2V0KGRldl9wcml2KTsKQEAgLTMwMSw5ICsyOTcsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9h Y3RfZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2LAogc3RhdGljIHNzaXplX3QgZ3Rf Y3VyX2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2RldiwKIAkJCQkgICAgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3QgZHJtX21pbm9yICpt aW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBtaW5vci0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X21pbm9y X3RvX2k5MTUoa2Rldik7CiAKIAlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlZFxu IiwKIAkJCWludGVsX2dwdV9mcmVxKGRldl9wcml2LApAQCAtMzEyLDggKzMwNiw3IEBAIHN0YXRp YyBzc2l6ZV90IGd0X2N1cl9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZpY2UgKmtkZXYsCiAKIHN0 YXRpYyBzc2l6ZV90IGd0X2Jvb3N0X2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2Rldiwg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3QgZHJt X21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUobWlub3ItPmRldik7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl9taW5vcl90b19pOTE1KGtkZXYpOwogCiAJcmV0 dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJWRcbiIsCiAJCQlpbnRlbF9ncHVfZnJlcShk ZXZfcHJpdiwKQEAgLTMyNCw5ICszMTcsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9ib29zdF9mcmVx X21oel9zdG9yZShzdHJ1Y3QgZGV2aWNlICprZGV2LAogCQkJCSAgICAgICBzdHJ1Y3QgZGV2aWNl X2F0dHJpYnV0ZSAqYXR0ciwKIAkJCQkgICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291 bnQpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2 KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWlub3ItPmRldjsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0ga2Rldl9taW5vcl90b19pOTE1KGtkZXYpOwogCXUzMiB2YWw7CiAJ c3NpemVfdCByZXQ7CiAKQEAgLTM0OSw5ICszNDAsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9ib29z dF9mcmVxX21oel9zdG9yZShzdHJ1Y3QgZGV2aWNlICprZGV2LAogc3RhdGljIHNzaXplX3Qgdmx2 X3JwZV9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZpY2UgKmtkZXYsCiAJCQkJICAgICBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewotCXN0cnVjdCBkcm1fbWlub3Ig Km1pbm9yID0ga2Rldl90b19kcm1fbWlub3Ioa2Rldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IG1pbm9yLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfbWlu b3JfdG9faTkxNShrZGV2KTsKIAogCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVk XG4iLAogCQkJaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsCkBAIC0zNjAsOSArMzQ5LDcgQEAgc3Rh dGljIHNzaXplX3Qgdmx2X3JwZV9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZpY2UgKmtkZXYsCiAK IHN0YXRpYyBzc2l6ZV90IGd0X21heF9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZpY2UgKmtkZXYs IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7Ci0Jc3RydWN0IGRy bV9taW5vciAqbWlub3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gbWlub3ItPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g a2Rldl9taW5vcl90b19pOTE1KGtkZXYpOwogCiAJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9T SVpFLCAiJWRcbiIsCiAJCQlpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwKQEAgLTM3Myw5ICszNjAs NyBAQCBzdGF0aWMgc3NpemVfdCBndF9tYXhfZnJlcV9taHpfc3RvcmUoc3RydWN0IGRldmljZSAq a2RldiwKIAkJCQkgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQkJCSAgICAg Y29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCiB7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlu b3IgPSBrZGV2X3RvX2RybV9taW5vcihrZGV2KTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g bWlub3ItPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl9taW5vcl90 b19pOTE1KGtkZXYpOwogCXUzMiB2YWw7CiAJc3NpemVfdCByZXQ7CiAKQEAgLTQyMSw5ICs0MDYs NyBAQCBzdGF0aWMgc3NpemVfdCBndF9tYXhfZnJlcV9taHpfc3RvcmUoc3RydWN0IGRldmljZSAq a2RldiwKIAogc3RhdGljIHNzaXplX3QgZ3RfbWluX2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmlj ZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKLQlz dHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBtaW5vci0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBrZGV2X21pbm9yX3RvX2k5MTUoa2Rldik7CiAKIAlyZXR1cm4gc25wcmludGYoYnVm LCBQQUdFX1NJWkUsICIlZFxuIiwKIAkJCWludGVsX2dwdV9mcmVxKGRldl9wcml2LApAQCAtNDM0 LDkgKzQxNyw3IEBAIHN0YXRpYyBzc2l6ZV90IGd0X21pbl9mcmVxX21oel9zdG9yZShzdHJ1Y3Qg ZGV2aWNlICprZGV2LAogCQkJCSAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJ CQkJICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKLQlzdHJ1Y3QgZHJtX21p bm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBtaW5vci0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2 X21pbm9yX3RvX2k5MTUoa2Rldik7CiAJdTMyIHZhbDsKIAlzc2l6ZV90IHJldDsKIApAQCAtNDkz LDkgKzQ3NCw3IEBAIHN0YXRpYyBERVZJQ0VfQVRUUihndF9SUG5fZnJlcV9taHosIFNfSVJVR08s IGd0X3JwX21oel9zaG93LCBOVUxMKTsKIC8qIEZvciBub3cgd2UgaGF2ZSBhIHN0YXRpYyBudW1i ZXIgb2YgUlAgc3RhdGVzICovCiBzdGF0aWMgc3NpemVfdCBndF9ycF9taHpfc2hvdyhzdHJ1Y3Qg ZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQog ewotCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0ga2Rldl90b19kcm1fbWlub3Ioa2Rldik7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG1pbm9yLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGtkZXZfbWlub3JfdG9faTkxNShrZGV2KTsKIAl1MzIgdmFsOwogCiAJaWYg KGF0dHIgPT0gJmRldl9hdHRyX2d0X1JQMF9mcmVxX21oeikKQEAgLTU0MSw4ICs1MjAsOCBAQCBz dGF0aWMgc3NpemVfdCBlcnJvcl9zdGF0ZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qg a29iamVjdCAqa29iaiwKIHsKIAogCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSBrb2JqX3RvX2Rldihr b2JqKTsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYp OwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtaW5vci0+ZGV2OworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfbWlub3JfdG9faTkxNShrZGV2KTsKKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07CiAJc3RydWN0IGk5MTVfZXJyb3Jfc3Rh dGVfZmlsZV9wcml2IGVycm9yX3ByaXY7CiAJc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1 ZiBlcnJvcl9zdHI7CiAJc3NpemVfdCByZXRfY291bnQgPSAwOwpAQCAtNTc2LDggKzU1NSw4IEBA IHN0YXRpYyBzc2l6ZV90IGVycm9yX3N0YXRlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1 Y3Qga29iamVjdCAqa29iaiwKIAkJCQkgbG9mZl90IG9mZiwgc2l6ZV90IGNvdW50KQogewogCXN0 cnVjdCBkZXZpY2UgKmtkZXYgPSBrb2JqX3RvX2Rldihrb2JqKTsKLQlzdHJ1Y3QgZHJtX21pbm9y ICptaW5vciA9IGtkZXZfdG9fZHJtX21pbm9yKGtkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBtaW5vci0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtk ZXZfbWlub3JfdG9faTkxNShrZGV2KTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9w cml2LT5kcm07CiAJaW50IHJldDsKIAogCURSTV9ERUJVR19EUklWRVIoIlJlc2V0dGluZyBlcnJv ciBzdGF0ZVxuIik7CkBAIC02MDAsMzcgKzU3OSwzOCBAQCBzdGF0aWMgc3RydWN0IGJpbl9hdHRy aWJ1dGUgZXJyb3Jfc3RhdGVfYXR0ciA9IHsKIAkud3JpdGUgPSBlcnJvcl9zdGF0ZV93cml0ZSwK IH07CiAKLXZvaWQgaTkxNV9zZXR1cF9zeXNmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQordm9p ZCBpOTE1X3NldHVwX3N5c2ZzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK KwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gZGV2X3ByaXYtPmRybS5wcmltYXJ5LT5rZGV2OwogCWlu dCByZXQ7CiAKICNpZmRlZiBDT05GSUdfUE0KLQlpZiAoSEFTX1JDNihkZXYpKSB7Ci0JCXJldCA9 IHN5c2ZzX21lcmdlX2dyb3VwKCZkZXYtPnByaW1hcnktPmtkZXYtPmtvYmosCisJaWYgKEhBU19S QzYoZGV2X3ByaXYpKSB7CisJCXJldCA9IHN5c2ZzX21lcmdlX2dyb3VwKCZrZGV2LT5rb2JqLAog CQkJCQkmcmM2X2F0dHJfZ3JvdXApOwogCQlpZiAocmV0KQogCQkJRFJNX0VSUk9SKCJSQzYgcmVz aWRlbmN5IHN5c2ZzIHNldHVwIGZhaWxlZFxuIik7CiAJfQotCWlmIChIQVNfUkM2cChkZXYpKSB7 Ci0JCXJldCA9IHN5c2ZzX21lcmdlX2dyb3VwKCZkZXYtPnByaW1hcnktPmtkZXYtPmtvYmosCisJ aWYgKEhBU19SQzZwKGRldl9wcml2KSkgeworCQlyZXQgPSBzeXNmc19tZXJnZV9ncm91cCgma2Rl di0+a29iaiwKIAkJCQkJJnJjNnBfYXR0cl9ncm91cCk7CiAJCWlmIChyZXQpCiAJCQlEUk1fRVJS T1IoIlJDNnAgcmVzaWRlbmN5IHN5c2ZzIHNldHVwIGZhaWxlZFxuIik7CiAJfQotCWlmIChJU19W QUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7Ci0JCXJldCA9IHN5c2ZzX21l cmdlX2dyb3VwKCZkZXYtPnByaW1hcnktPmtkZXYtPmtvYmosCisJaWYgKElTX1ZBTExFWVZJRVco ZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CisJCXJldCA9IHN5c2ZzX21l cmdlX2dyb3VwKCZrZGV2LT5rb2JqLAogCQkJCQkmbWVkaWFfcmM2X2F0dHJfZ3JvdXApOwogCQlp ZiAocmV0KQogCQkJRFJNX0VSUk9SKCJNZWRpYSBSQzYgcmVzaWRlbmN5IHN5c2ZzIHNldHVwIGZh aWxlZFxuIik7CiAJfQogI2VuZGlmCi0JaWYgKEhBU19MM19EUEYoZGV2KSkgewotCQlyZXQgPSBk ZXZpY2VfY3JlYXRlX2Jpbl9maWxlKGRldi0+cHJpbWFyeS0+a2RldiwgJmRwZl9hdHRycyk7CisJ aWYgKEhBU19MM19EUEYoZGV2X3ByaXYpKSB7CisJCXJldCA9IGRldmljZV9jcmVhdGVfYmluX2Zp bGUoa2RldiwgJmRwZl9hdHRycyk7CiAJCWlmIChyZXQpCiAJCQlEUk1fRVJST1IoImwzIHBhcml0 eSBzeXNmcyBzZXR1cCBmYWlsZWRcbiIpOwogCi0JCWlmIChOVU1fTDNfU0xJQ0VTKGRldikgPiAx KSB7Ci0JCQlyZXQgPSBkZXZpY2VfY3JlYXRlX2Jpbl9maWxlKGRldi0+cHJpbWFyeS0+a2RldiwK KwkJaWYgKE5VTV9MM19TTElDRVMoZGV2X3ByaXYpID4gMSkgeworCQkJcmV0ID0gZGV2aWNlX2Ny ZWF0ZV9iaW5fZmlsZShrZGV2LAogCQkJCQkJICAgICAmZHBmX2F0dHJzXzEpOwogCQkJaWYgKHJl dCkKIAkJCQlEUk1fRVJST1IoImwzIHBhcml0eSBzbGljZSAxIHNldHVwIGZhaWxlZFxuIik7CkBA IC02MzgsMzAgKzYxOCwzMiBAQCB2b2lkIGk5MTVfc2V0dXBfc3lzZnMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAl9CiAKIAlyZXQgPSAwOwotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNf Q0hFUlJZVklFVyhkZXYpKQotCQlyZXQgPSBzeXNmc19jcmVhdGVfZmlsZXMoJmRldi0+cHJpbWFy eS0+a2Rldi0+a29iaiwgdmx2X2F0dHJzKTsKLQllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA2KQotCQlyZXQgPSBzeXNmc19jcmVhdGVfZmlsZXMoJmRldi0+cHJpbWFyeS0+a2Rldi0+ a29iaiwgZ2VuNl9hdHRycyk7CisJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NI RVJSWVZJRVcoZGV2X3ByaXYpKQorCQlyZXQgPSBzeXNmc19jcmVhdGVfZmlsZXMoJmtkZXYtPmtv YmosIHZsdl9hdHRycyk7CisJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KQorCQly ZXQgPSBzeXNmc19jcmVhdGVfZmlsZXMoJmtkZXYtPmtvYmosIGdlbjZfYXR0cnMpOwogCWlmIChy ZXQpCiAJCURSTV9FUlJPUigiUlBTIHN5c2ZzIHNldHVwIGZhaWxlZFxuIik7CiAKLQlyZXQgPSBz eXNmc19jcmVhdGVfYmluX2ZpbGUoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwKKwlyZXQgPSBz eXNmc19jcmVhdGVfYmluX2ZpbGUoJmtkZXYtPmtvYmosCiAJCQkJICAgICZlcnJvcl9zdGF0ZV9h dHRyKTsKIAlpZiAocmV0KQogCQlEUk1fRVJST1IoImVycm9yX3N0YXRlIHN5c2ZzIHNldHVwIGZh aWxlZFxuIik7CiB9CiAKLXZvaWQgaTkxNV90ZWFyZG93bl9zeXNmcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQordm9pZCBpOTE1X3RlYXJkb3duX3N5c2ZzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKLQlzeXNmc19yZW1vdmVfYmluX2ZpbGUoJmRldi0+cHJpbWFyeS0+a2Rl di0+a29iaiwgJmVycm9yX3N0YXRlX2F0dHIpOwotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwg SVNfQ0hFUlJZVklFVyhkZXYpKQotCQlzeXNmc19yZW1vdmVfZmlsZXMoJmRldi0+cHJpbWFyeS0+ a2Rldi0+a29iaiwgdmx2X2F0dHJzKTsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gZGV2X3ByaXYt PmRybS5wcmltYXJ5LT5rZGV2OworCisJc3lzZnNfcmVtb3ZlX2Jpbl9maWxlKCZrZGV2LT5rb2Jq LCAmZXJyb3Jfc3RhdGVfYXR0cik7CisJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKQorCQlzeXNmc19yZW1vdmVfZmlsZXMoJmtkZXYtPmtvYmos IHZsdl9hdHRycyk7CiAJZWxzZQotCQlzeXNmc19yZW1vdmVfZmlsZXMoJmRldi0+cHJpbWFyeS0+ a2Rldi0+a29iaiwgZ2VuNl9hdHRycyk7Ci0JZGV2aWNlX3JlbW92ZV9iaW5fZmlsZShkZXYtPnBy aW1hcnktPmtkZXYsICAmZHBmX2F0dHJzXzEpOwotCWRldmljZV9yZW1vdmVfYmluX2ZpbGUoZGV2 LT5wcmltYXJ5LT5rZGV2LCAgJmRwZl9hdHRycyk7CisJCXN5c2ZzX3JlbW92ZV9maWxlcygma2Rl di0+a29iaiwgZ2VuNl9hdHRycyk7CisJZGV2aWNlX3JlbW92ZV9iaW5fZmlsZShrZGV2LCAgJmRw Zl9hdHRyc18xKTsKKwlkZXZpY2VfcmVtb3ZlX2Jpbl9maWxlKGtkZXYsICAmZHBmX2F0dHJzKTsK ICNpZmRlZiBDT05GSUdfUE0KLQlzeXNmc191bm1lcmdlX2dyb3VwKCZkZXYtPnByaW1hcnktPmtk ZXYtPmtvYmosICZyYzZfYXR0cl9ncm91cCk7Ci0Jc3lzZnNfdW5tZXJnZV9ncm91cCgmZGV2LT5w cmltYXJ5LT5rZGV2LT5rb2JqLCAmcmM2cF9hdHRyX2dyb3VwKTsKKwlzeXNmc191bm1lcmdlX2dy b3VwKCZrZGV2LT5rb2JqLCAmcmM2X2F0dHJfZ3JvdXApOworCXN5c2ZzX3VubWVyZ2VfZ3JvdXAo JmtkZXYtPmtvYmosICZyYzZwX2F0dHJfZ3JvdXApOwogI2VuZGlmCiB9Ci0tIAoyLjkuMwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==