From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: [PATCH v4 5/9] drm/panfrost: Add a no execute flag for BO allocations Date: Thu, 8 Aug 2019 16:21:56 -0600 Message-ID: <20190808222200.13176-6-robh@kernel.org> References: <20190808222200.13176-1-robh@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ot1-f66.google.com (mail-ot1-f66.google.com [209.85.210.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id 39F8E6ECD0 for ; Thu, 8 Aug 2019 22:22:10 +0000 (UTC) Received: by mail-ot1-f66.google.com with SMTP id s20so59577139otp.4 for ; Thu, 08 Aug 2019 15:22:10 -0700 (PDT) In-Reply-To: <20190808222200.13176-1-robh@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Tomeu Vizoso , Maxime Ripard , Robin Murphy , Steven Price , David Airlie , Boris Brezillon , Alyssa Rosenzweig , Sean Paul List-Id: dri-devel@lists.freedesktop.org RXhlY3V0YWJsZSBidWZmZXJzIGhhdmUgYW4gYWxpZ25tZW50IHJlc3RyaWN0aW9uIHRoYXQgdGhl eSBjYW4ndCBjcm9zcwoxNk1CIGJvdW5kYXJ5IGFzIHRoZSBHUFUgcHJvZ3JhbSBjb3VudGVyIGlz IDI0LWJpdHMuIFRoaXMgcmVzdHJpY3Rpb24gaXMKY3VycmVudGx5IG5vdCBoYW5kbGVkIGFuZCB3 ZSBqdXN0IGdldCBsdWNreS4gQXMgY3VycmVudCB1c2Vyc3BhY2UKYXNzdW1lcyBhbGwgQk9zIGFy ZSBleGVjdXRhYmxlLCB0aGF0IGhhcyB0byByZW1haW4gdGhlIGRlZmF1bHQuIFNvIGFkZCBhCm5l dyBQQU5GUk9TVF9CT19OT0VYRUMgZmxhZyB0byBhbGxvdyB1c2Vyc3BhY2UgdG8gaW5kaWNhdGUg d2hpY2ggQk9zIGFyZQpub3QgZXhlY3V0YWJsZS4KClRoZXJlIGlzIGFsc28gYSByZXN0cmljdGlv biB0aGF0IGV4ZWN1dGFibGUgYnVmZmVycyBjYW5ub3Qgc3RhcnQgb3IgZW5kCm9uIGEgNEdCIGJv dW5kYXJ5LiBUaGlzIGlzIG1vc3RseSBhdm9pZGVkIGFzIHRoZXJlIGlzIG9ubHkgNEdCIG9mIHNw YWNlCmN1cnJlbnRseSBhbmQgdGhlIGJlZ2lubmluZyBpcyBhbHJlYWR5IGJsb2NrZWQgb3V0IGZv ciBOVUxMIHB0cgpkZXRlY3Rpb24uIEFkZCBzdXBwb3J0IHRvIGhhbmRsZSB0aGlzIHJlc3RyaWN0 aW9uIGZ1bGx5IHJlZ2FyZGxlc3Mgb2YKdGhlIGN1cnJlbnQgY29uc3RyYWludHMuCgpGb3IgZXhp c3RpbmcgdXNlcnNwYWNlLCBhbGwgY3JlYXRlZCBCT3MgcmVtYWluIGV4ZWN1dGFibGUsIGJ1dCB0 aGUgR1BVClZBIGFsaWdubWVudCB3aWxsIGJlIGluY3JlYXNlZCB0byB0aGUgc2l6ZSBvZiB0aGUg Qk8uIFRoaXMgc2hvdWxkbid0Cm1hdHRlciBhcyB0aGVyZSBpcyBwbGVudHkgb2YgR1BVIFZBIHNw YWNlLgoKQ2M6IFRvbWV1IFZpem9zbyA8dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+CkNjOiBC b3JpcyBCcmV6aWxsb24gPGJvcmlzLmJyZXppbGxvbkBjb2xsYWJvcmEuY29tPgpDYzogUm9iaW4g TXVycGh5IDxyb2Jpbi5tdXJwaHlAYXJtLmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZXZlbiBQcmljZSA8 c3RldmVuLnByaWNlQGFybS5jb20+CkFja2VkLWJ5OiBBbHlzc2EgUm9zZW56d2VpZyA8YWx5c3Nh LnJvc2VuendlaWdAY29sbGFib3JhLmNvbT4KU2lnbmVkLW9mZi1ieTogUm9iIEhlcnJpbmcgPHJv YmhAa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZHJ2 LmMgfCA0MiArKysrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9w YW5mcm9zdF9nZW0uYyB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1 L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uaCB8ICA5ICsrKystCiBkcml2ZXJzL2dwdS9kcm0v cGFuZnJvc3QvcGFuZnJvc3RfbW11LmMgfCAgMyArKwogaW5jbHVkZS91YXBpL2RybS9wYW5mcm9z dF9kcm0uaCAgICAgICAgIHwgIDIgKwogNSBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCsp LCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3Qv cGFuZnJvc3RfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZHJ2LmMK aW5kZXggMjg5NGNmYmJjZTJiLi5mMDcwZjJkZDlmODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJv c3QvcGFuZnJvc3RfZHJ2LmMKQEAgLTc4LDE4ICs3OCwxOSBAQCBzdGF0aWMgaW50IHBhbmZyb3N0 X2lvY3RsX2dldF9wYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiwgdm9pZCAqZGF0YSwgc3Ry dWN0CiBzdGF0aWMgaW50IHBhbmZyb3N0X2lvY3RsX2NyZWF0ZV9ibyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7Ci0Jc3RydWN0 IGRybV9nZW1fc2htZW1fb2JqZWN0ICpzaG1lbTsKKwlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVj dCAqYm87CiAJc3RydWN0IGRybV9wYW5mcm9zdF9jcmVhdGVfYm8gKmFyZ3MgPSBkYXRhOwogCi0J aWYgKCFhcmdzLT5zaXplIHx8IGFyZ3MtPmZsYWdzIHx8IGFyZ3MtPnBhZCkKKwlpZiAoIWFyZ3Mt PnNpemUgfHwgYXJncy0+cGFkIHx8CisJICAgIChhcmdzLT5mbGFncyAmIH5QQU5GUk9TVF9CT19O T0VYRUMpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXNobWVtID0gZHJtX2dlbV9zaG1lbV9jcmVh dGVfd2l0aF9oYW5kbGUoZmlsZSwgZGV2LCBhcmdzLT5zaXplLAotCQkJCQkJICZhcmdzLT5oYW5k bGUpOwotCWlmIChJU19FUlIoc2htZW0pKQotCQlyZXR1cm4gUFRSX0VSUihzaG1lbSk7CisJYm8g PSBwYW5mcm9zdF9nZW1fY3JlYXRlX3dpdGhfaGFuZGxlKGZpbGUsIGRldiwgYXJncy0+c2l6ZSwg YXJncy0+ZmxhZ3MsCisJCQkJCSAgICAgJmFyZ3MtPmhhbmRsZSk7CisJaWYgKElTX0VSUihibykp CisJCXJldHVybiBQVFJfRVJSKGJvKTsKIAotCWFyZ3MtPm9mZnNldCA9IHRvX3BhbmZyb3N0X2Jv KCZzaG1lbS0+YmFzZSktPm5vZGUuc3RhcnQgPDwgUEFHRV9TSElGVDsKKwlhcmdzLT5vZmZzZXQg PSBiby0+bm9kZS5zdGFydCA8PCBQQUdFX1NISUZUOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zNjQs NiArMzY1LDMyIEBAIGludCBwYW5mcm9zdF91bnN0YWJsZV9pb2N0bF9jaGVjayh2b2lkKQogCXJl dHVybiAwOwogfQogCisjZGVmaW5lIFBGTl80RwkJKFNaXzRHID4+IFBBR0VfU0hJRlQpCisjZGVm aW5lIFBGTl80R19NQVNLCShQRk5fNEcgLSAxKQorI2RlZmluZSBQRk5fMTZNCQkoU1pfMTZNID4+ IFBBR0VfU0hJRlQpCisKK3N0YXRpYyB2b2lkIHBhbmZyb3N0X2RybV9tbV9jb2xvcl9hZGp1c3Qo Y29uc3Qgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLAorCQkJCQkgdW5zaWduZWQgbG9uZyBjb2xv ciwKKwkJCQkJIHU2NCAqc3RhcnQsIHU2NCAqZW5kKQoreworCS8qIEV4ZWN1dGFibGUgYnVmZmVy cyBjYW4ndCBzdGFydCBvciBlbmQgb24gYSA0R0IgYm91bmRhcnkgKi8KKwlpZiAoIShjb2xvciAm IFBBTkZST1NUX0JPX05PRVhFQykpIHsKKwkJdTY0IG5leHRfc2VnOworCisJCWlmICgoKnN0YXJ0 ICYgUEZOXzRHX01BU0spID09IDApCisJCQkoKnN0YXJ0KSsrOworCisJCWlmICgoKmVuZCAmIFBG Tl80R19NQVNLKSA9PSAwKQorCQkJKCplbmQpLS07CisKKwkJbmV4dF9zZWcgPSBBTElHTigqc3Rh cnQsIFBGTl80Ryk7CisJCWlmIChuZXh0X3NlZyAtICpzdGFydCA8PSBQRk5fMTZNKQorCQkJKnN0 YXJ0ID0gbmV4dF9zZWcgKyAxOworCisJCSplbmQgPSBtaW4oKmVuZCwgQUxJR04oKnN0YXJ0LCBQ Rk5fNEcpIC0gMSk7CisJfQorfQorCiBzdGF0aWMgaW50CiBwYW5mcm9zdF9vcGVuKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIHsKQEAgLTQ2MSw2ICs0ODgs NyBAQCBzdGF0aWMgaW50IHBhbmZyb3N0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAKIAkvKiA0RyBlbm91Z2ggZm9yIG5vdy4gY2FuIGJlIDQ4LWJpdCAqLwogCWRybV9tbV9p bml0KCZwZmRldi0+bW0sIFNaXzMyTSA+PiBQQUdFX1NISUZULCAoU1pfNEcgLSBTWl8zMk0pID4+ IFBBR0VfU0hJRlQpOworCXBmZGV2LT5tbS5jb2xvcl9hZGp1c3QgPSBwYW5mcm9zdF9kcm1fbW1f Y29sb3JfYWRqdXN0OwogCiAJcG1fcnVudGltZV91c2VfYXV0b3N1c3BlbmQocGZkZXYtPmRldik7 CiAJcG1fcnVudGltZV9zZXRfYXV0b3N1c3BlbmRfZGVsYXkocGZkZXYtPmRldiwgNTApOyAvKiB+ MyBmcmFtZXMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9z dF9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uYwppbmRleCAz OTMzZjgzYmE2YjAuLmYzOTgxMDliOGUwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Bh bmZyb3N0L3BhbmZyb3N0X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5m cm9zdF9nZW0uYwpAQCAtMjgsMTMgKzI4LDI1IEBAIHN0YXRpYyBpbnQgcGFuZnJvc3RfZ2VtX29w ZW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wCiB7 CiAJaW50IHJldDsKIAlzaXplX3Qgc2l6ZSA9IG9iai0+c2l6ZTsKLQl1NjQgYWxpZ24gPSBzaXpl ID49IFNaXzJNID8gU1pfMk0gPj4gUEFHRV9TSElGVCA6IDA7CisJdTY0IGFsaWduOwogCXN0cnVj dCBwYW5mcm9zdF9nZW1fb2JqZWN0ICpibyA9IHRvX3BhbmZyb3N0X2JvKG9iaik7CiAJc3RydWN0 IHBhbmZyb3N0X2RldmljZSAqcGZkZXYgPSBvYmotPmRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWdu ZWQgbG9uZyBjb2xvciA9IGJvLT5ub2V4ZWMgPyBQQU5GUk9TVF9CT19OT0VYRUMgOiAwOworCisJ LyoKKwkgKiBFeGVjdXRhYmxlIGJ1ZmZlcnMgY2Fubm90IGNyb3NzIGEgMTZNQiBib3VuZGFyeSBh cyB0aGUgcHJvZ3JhbQorCSAqIGNvdW50ZXIgaXMgMjQtYml0cy4gV2UgYXNzdW1lIGV4ZWN1dGFi bGUgYnVmZmVycyB3aWxsIGJlIGxlc3MgdGhhbgorCSAqIDE2TUIgYW5kIGFsaWduaW5nIGV4ZWN1 dGFibGUgYnVmZmVycyB0byB0aGVpciBzaXplIHdpbGwgYXZvaWQKKwkgKiBjcm9zc2luZyBhIDE2 TUIgYm91bmRhcnkuCisJICovCisJaWYgKCFiby0+bm9leGVjKQorCQlhbGlnbiA9IHNpemUgPj4g UEFHRV9TSElGVDsKKwllbHNlCisJCWFsaWduID0gc2l6ZSA+PSBTWl8yTSA/IFNaXzJNID4+IFBB R0VfU0hJRlQgOiAwOwogCiAJc3Bpbl9sb2NrKCZwZmRldi0+bW1fbG9jayk7CiAJcmV0ID0gZHJt X21tX2luc2VydF9ub2RlX2dlbmVyaWMoJnBmZGV2LT5tbSwgJmJvLT5ub2RlLAotCQkJCQkgc2l6 ZSA+PiBQQUdFX1NISUZULCBhbGlnbiwgMCwgMCk7CisJCQkJCSBzaXplID4+IFBBR0VfU0hJRlQs IGFsaWduLCBjb2xvciwgMCk7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKQEAgLTk1LDE2ICsx MDcsNTAgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpwYW5mcm9zdF9nZW1fY3JlYXRlX29iamVj dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3QKIAlyZXR1cm4gJm9iai0+YmFzZS5iYXNl OwogfQogCitzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqCitwYW5mcm9zdF9nZW1fY3JlYXRl X3dpdGhfaGFuZGxlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAorCQkJCXUzMiBmbGFncywKKwkJCQl1aW50MzJfdCAq aGFuZGxlKQoreworCWludCByZXQ7CisJc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0ICpzaG1l bTsKKwlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm87CisKKwlzaG1lbSA9IGRybV9nZW1f c2htZW1fY3JlYXRlKGRldiwgc2l6ZSk7CisJaWYgKElTX0VSUihzaG1lbSkpCisJCXJldHVybiBF UlJfQ0FTVChzaG1lbSk7CisKKwlibyA9IHRvX3BhbmZyb3N0X2JvKCZzaG1lbS0+YmFzZSk7CisJ Ym8tPm5vZXhlYyA9ICEhKGZsYWdzICYgUEFORlJPU1RfQk9fTk9FWEVDKTsKKworCS8qCisJICog QWxsb2NhdGUgYW4gaWQgb2YgaWRyIHRhYmxlIHdoZXJlIHRoZSBvYmogaXMgcmVnaXN0ZXJlZAor CSAqIGFuZCBoYW5kbGUgaGFzIHRoZSBpZCB3aGF0IHVzZXIgY2FuIHNlZS4KKwkgKi8KKwlyZXQg PSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCAmc2htZW0tPmJhc2UsIGhhbmRsZSk7 CisJLyogZHJvcCByZWZlcmVuY2UgZnJvbSBhbGxvY2F0ZSAtIGhhbmRsZSBob2xkcyBpdCBub3cu ICovCisJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZzaG1lbS0+YmFzZSk7CisJaWYgKHJl dCkKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKworCXJldHVybiBibzsKK30KKwogc3RydWN0IGRy bV9nZW1fb2JqZWN0ICoKIHBhbmZyb3N0X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRh Y2gsCiAJCQkJICAgc3RydWN0IHNnX3RhYmxlICpzZ3QpCiB7CiAJc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmo7CisJc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgKmJvOwogCiAJb2JqID0gZHJt X2dlbV9zaG1lbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoZGV2LCBhdHRhY2gsIHNndCk7CiAJaWYg KElTX0VSUihvYmopKQogCQlyZXR1cm4gRVJSX0NBU1Qob2JqKTsKIAorCWJvID0gdG9fcGFuZnJv c3RfYm8ob2JqKTsKKwliby0+bm9leGVjID0gdHJ1ZTsKKwogCXJldHVybiBvYmo7CiB9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmggYi9kcml2ZXJz L2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmgKaW5kZXggNWY1MWY4ODFlYTNmLi5kNGM3 YWExNzkwYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9n ZW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmgKQEAgLTEx LDcgKzExLDggQEAgc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgewogCXN0cnVjdCBkcm1fZ2Vt X3NobWVtX29iamVjdCBiYXNlOwogCiAJc3RydWN0IGRybV9tbV9ub2RlIG5vZGU7Ci0JYm9vbCBp c19tYXBwZWQ7CisJYm9vbCBpc19tYXBwZWQJCToxOworCWJvb2wgbm9leGVjCQk6MTsKIH07CiAK IHN0YXRpYyBpbmxpbmUKQEAgLTI3LDYgKzI4LDEyIEBAIHBhbmZyb3N0X2dlbV9wcmltZV9pbXBv cnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICBzdHJ1Y3QgZG1hX2J1 Zl9hdHRhY2htZW50ICphdHRhY2gsCiAJCQkJICAgc3RydWN0IHNnX3RhYmxlICpzZ3QpOwogCitz dHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqCitwYW5mcm9zdF9nZW1fY3JlYXRlX3dpdGhfaGFu ZGxlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHNpemVfdCBzaXplLAorCQkJCXUzMiBmbGFncywKKwkJCQl1aW50MzJfdCAqaGFuZGxlKTsK Kwogdm9pZCBwYW5mcm9zdF9nZW1fc2hyaW5rZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKIHZvaWQgcGFuZnJvc3RfZ2VtX3Nocmlua2VyX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9t bXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9tbXUuYwppbmRleCBiNGFj MTQ5YjIzOTkuLmViYTZjZTc4NWVmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmZy b3N0L3BhbmZyb3N0X21tdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9z dF9tbXUuYwpAQCAtMTkwLDYgKzE5MCw5IEBAIGludCBwYW5mcm9zdF9tbXVfbWFwKHN0cnVjdCBw YW5mcm9zdF9nZW1fb2JqZWN0ICpibykKIAlpZiAoV0FSTl9PTihiby0+aXNfbWFwcGVkKSkKIAkJ cmV0dXJuIDA7CiAKKwlpZiAoYm8tPm5vZXhlYykKKwkJcHJvdCB8PSBJT01NVV9OT0VYRUM7CisK IAlzZ3QgPSBkcm1fZ2VtX3NobWVtX2dldF9wYWdlc19zZ3Qob2JqKTsKIAlpZiAoV0FSTl9PTihJ U19FUlIoc2d0KSkpCiAJCXJldHVybiBQVFJfRVJSKHNndCk7CmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvZHJtL3BhbmZyb3N0X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0u aAppbmRleCAxZTU0N2Y5NjkyZTkuLmI4MGMyMGQxN2RlYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2RybS9wYW5mcm9zdF9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL3BhbmZyb3N0X2Ry bS5oCkBAIC04NCw2ICs4NCw4IEBAIHN0cnVjdCBkcm1fcGFuZnJvc3Rfd2FpdF9ibyB7CiAJX19z NjQgdGltZW91dF9uczsJLyogYWJzb2x1dGUgKi8KIH07CiAKKyNkZWZpbmUgUEFORlJPU1RfQk9f Tk9FWEVDCTEKKwogLyoqCiAgKiBzdHJ1Y3QgZHJtX3BhbmZyb3N0X2NyZWF0ZV9ibyAtIGlvY3Rs IGFyZ3VtZW50IGZvciBjcmVhdGluZyBQYW5mcm9zdCBCT3MuCiAgKgotLSAKMi4yMC4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=