From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomasz Lis Subject: [PATCH v5] drm/i915/icl: Preempt-to-idle support in execlists. Date: Mon, 15 Oct 2018 19:29:18 +0200 Message-ID: <1539624558-9613-1-git-send-email-tomasz.lis@intel.com> References: <1522163879-10837-1-git-send-email-tomasz.lis@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id D5E7F89932 for ; Mon, 15 Oct 2018 17:29:21 +0000 (UTC) In-Reply-To: <1522163879-10837-1-git-send-email-tomasz.lis@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 Cc: Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBvZiBwcmVlbXB0LXRvLWlkbGUgcmVxdWVzdGluZyBieSBz ZXR0aW5nIGEgcHJvcGVyCmJpdCB3aXRoaW4gRXhlY2xpc3QgQ29udHJvbCBSZWdpc3RlciwgYW5k IHJlY2VpdmluZyBwcmVlbXB0aW9uIHJlc3VsdCBmcm9tCkNvbnRleHQgU3RhdHVzIEJ1ZmZlci4K ClByZWVtcHRpb24gaW4gcHJldmlvdXMgZ2VucyByZXF1aXJlZCBhIHNwZWNpYWwgYmF0Y2ggYnVm ZmVyIHRvIGJlIGV4ZWN1dGVkLApzbyB0aGUgQ29tbWFuZCBTdHJlYW1lciBuZXZlciBwcmVlbXB0 ZWQgdG8gaWRsZSBkaXJlY3RseS4gSW4gSWNlbGFrZSBpdCBpcwpwb3NzaWJsZSwgYXMgdGhlcmUg aXMgYSBoYXJkd2FyZSBtZWNoYW5pc20gdG8gaW5mb3JtIHRoZSBrZXJuZWwgYWJvdXQKc3RhdHVz IG9mIHRoZSBwcmVlbXB0aW9uIHJlcXVlc3QuCgpUaGlzIHBhdGNoIGRvZXMgbm90IGNvdmVyIHVz aW5nIHRoZSBuZXcgcHJlZW1wdGlvbiBtZWNoYW5pc20gd2hlbiBHdUMgaXMKYWN0aXZlLgoKdjI6 IEFkZGVkIG5lZWRzX3ByZWVtcHRfY29udGV4dCgpIGNoYW5nZSBzbyB0aGF0IGl0IGlzIG5vdCBj cmVhdGVkIHdoZW4KICAgIHByZWVtcHQtdG8taWRsZSBpcyBzdXBwb3J0ZWQuIChDaHJpcykKICAg IFVwZGF0ZWQgc2V0dGluZyBIV0FDSyBmbGFnIHNvIHRoYXQgaXQgaXMgY2xlYXJlZCBhZnRlcgog ICAgcHJlZW1wdC10by1kbGUuIChDaHJpcywgRGFuaWVsZSkKICAgIFVwZGF0ZWQgdG8gdXNlIEk5 MTVfRU5HSU5FX0hBU19QUkVFTVBUSU9OIGZsYWcuIChDaHJpcykKCnYzOiBGaXhlZCBuZWVkc19w cmVlbXB0X2NvbnRleHQoKSBjaGFuZ2UuIChDaHJpcykKICAgIE1lcmdlZCBwcmVlbXB0aW9uIHRy aWdnZXIgZnVuY3Rpb25zIHRvIG9uZS4gKENocmlzKQogICAgRml4ZWQgY29ueWV4dCBzdGF0ZSB0 b25vdCBhc3N1bWUgQ09NUExFVEVEX01BU0sgYWZ0ZXIgcHJlZW1wdGlvbiwKICAgIHNpbmNlIGlk bGUtdG8taWRsZSBjYXNlIHdpbGwgbm90IGhhdmUgaXQgc2V0LgoKdjQ6IFNpbXBsaWZpZWQgbmVl ZHNfcHJlZW1wdF9jb250ZXh0KCkgY2hhbmdlLiAoRGFuaWVsZSkKICAgIFJlbW92ZWQgY2xlYXJp bmcgSFdBQ0sgZmxhZyBpbiBpZGxlLXRvLWlkbGUgcHJlZW1wdC4gKERhbmllbGUpCgp2NTogUmVu YW1lZCBpbmplY3RfcHJlZW1wdF9jb250ZXh0KCkuIChEYW5pZWxlKQogICAgUmVtb3ZlZCBkdXBs aWNhdGVkIEdFTV9CVUdfT04oKSBvbiBIV0FDSyAoRGFuaWVsZSkKCkJzcGVjOiAxODkyMgpDYzog Sm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBEYW5pZWxlIENlcmFvbG8g U3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgpDYzogTWljaGFsIFdpbmlh cnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+CkNjOiBNaWthIEt1b3BwYWxhIDxtaWth Lmt1b3BwYWxhQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8g PGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFRvbWFzeiBM aXMgPHRvbWFzei5saXNAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggICAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyAgICAgICAg ICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCB8ICAg MSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgIHwgMTA5ICsrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5oICAgICAgICAgfCAgIDEgKwogNiBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCAz NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAzMDE3ZWYwLi40ODE3 NDM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI1OTcsNiArMjU5Nyw4IEBAIGludGVs X2luZm8oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkoKGRldl9w cml2KS0+aW5mby5oYXNfbG9naWNhbF9yaW5nX2Vsc3EpCiAjZGVmaW5lIEhBU19MT0dJQ0FMX1JJ TkdfUFJFRU1QVElPTihkZXZfcHJpdikgXAogCQkoKGRldl9wcml2KS0+aW5mby5oYXNfbG9naWNh bF9yaW5nX3ByZWVtcHRpb24pCisjZGVmaW5lIEhBU19IV19QUkVFTVBUX1RPX0lETEUoZGV2X3By aXYpIFwKKwkJKChkZXZfcHJpdiktPmluZm8uaGFzX2h3X3ByZWVtcHRfdG9faWRsZSkKIAogI2Rl ZmluZSBIQVNfRVhFQ0xJU1RTKGRldl9wcml2KSBIQVNfTE9HSUNBTF9SSU5HX0NPTlRFWFRTKGRl dl9wcml2KQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggOGNi ZTU4MC4uOThjYTIwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpA QCAtNTI5LDcgKzUyOSw4IEBAIHN0YXRpYyB2b2lkIGluaXRfY29udGV4dHMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCiAKIHN0YXRpYyBib29sIG5lZWRzX3ByZWVtcHRfY29udGV4dChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlyZXR1cm4gSEFTX0xPR0lDQUxfUklO R19QUkVFTVBUSU9OKGk5MTUpOworCXJldHVybiBIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04o aTkxNSkgJiYKKwkgICAgICAgIUhBU19IV19QUkVFTVBUX1RPX0lETEUoaTkxNSk7CiB9CiAKIGlu dCBpOTE1X2dlbV9jb250ZXh0c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCmluZGV4IDBhMDVjYzcuLmY3MDhkOTcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9wY2kuYwpAQCAtNTk3LDcgKzU5Nyw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfY2Fubm9ubGFrZV9pbmZvID0gewogCUdFTjEwX0ZFQVRV UkVTLCBcCiAJR0VOKDExKSwgXAogCS5kZGJfc2l6ZSA9IDIwNDgsIFwKLQkuaGFzX2xvZ2ljYWxf cmluZ19lbHNxID0gMQorCS5oYXNfbG9naWNhbF9yaW5nX2Vsc3EgPSAxLCBcCisJLmhhc19od19w cmVlbXB0X3RvX2lkbGUgPSAxCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2lu Zm8gaW50ZWxfaWNlbGFrZV8xMV9pbmZvID0gewogCUdFTjExX0ZFQVRVUkVTLApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKaW5kZXggYWY3MDAyNi4uN2RjZjBmZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCkBAIC0xMDQsNiArMTA0LDcg QEAgZW51bSBpbnRlbF9wcGd0dCB7CiAJZnVuYyhoYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzKTsg XAogCWZ1bmMoaGFzX2xvZ2ljYWxfcmluZ19lbHNxKTsgXAogCWZ1bmMoaGFzX2xvZ2ljYWxfcmlu Z19wcmVlbXB0aW9uKTsgXAorCWZ1bmMoaGFzX2h3X3ByZWVtcHRfdG9faWRsZSk7IFwKIAlmdW5j KGhhc19vdmVybGF5KTsgXAogCWZ1bmMoaGFzX3Bvb2xlZF9ldSk7IFwKIAlmdW5jKGhhc19wc3Ip OyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IGZmMGUyYjMuLjRjMmJmZWQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0xNTUsNiArMTU1LDcgQEAKICNkZWZpbmUgR0VOOF9D VFhfU1RBVFVTX0FDVElWRV9JRExFCSgxIDw8IDMpCiAjZGVmaW5lIEdFTjhfQ1RYX1NUQVRVU19D T01QTEVURQkoMSA8PCA0KQogI2RlZmluZSBHRU44X0NUWF9TVEFUVVNfTElURV9SRVNUT1JFCSgx IDw8IDE1KQorI2RlZmluZSBHRU4xMV9DVFhfU1RBVFVTX1BSRUVNUFRfSURMRQkoMSA8PCAyOSkK IAogI2RlZmluZSBHRU44X0NUWF9TVEFUVVNfQ09NUExFVEVEX01BU0sgXAogCSAoR0VOOF9DVFhf U1RBVFVTX0NPTVBMRVRFIHwgR0VOOF9DVFhfU1RBVFVTX1BSRUVNUFRFRCkKQEAgLTQ4OCwyOSAr NDg5LDQ5IEBAIHN0YXRpYyB2b2lkIHBvcnRfYXNzaWduKHN0cnVjdCBleGVjbGlzdF9wb3J0ICpw b3J0LCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAlwb3J0X3NldChwb3J0LCBwb3J0X3BhY2so aTkxNV9yZXF1ZXN0X2dldChycSksIHBvcnRfY291bnQocG9ydCkpKTsKIH0KIAotc3RhdGljIHZv aWQgaW5qZWN0X3ByZWVtcHRfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CitzdGF0aWMgdm9pZCBleGVjbGlzdF9zZW5kX3ByZWVtcHRfdG9faWRsZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4 ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKLQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Ug PQotCQl0b19pbnRlbF9jb250ZXh0KGVuZ2luZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0LCBlbmdp bmUpOwotCXVuc2lnbmVkIGludCBuOworCUdFTV9UUkFDRSgiJXNcbiIsIGVuZ2luZS0+bmFtZSk7 CiAKLQlHRU1fQlVHX09OKGV4ZWNsaXN0cy0+cHJlZW1wdF9jb21wbGV0ZV9zdGF0dXMgIT0KLQkJ ICAgdXBwZXJfMzJfYml0cyhjZS0+bHJjX2Rlc2MpKTsKKwlpZiAoSEFTX0hXX1BSRUVNUFRfVE9f SURMRShlbmdpbmUtPmk5MTUpKSB7CisJCS8qCisJCSAqIGhhcmR3YXJlIHdoaWNoIEhBU19IV19Q UkVFTVBUX1RPX0lETEUoKSwgYWx3YXlzIGFsc28KKwkJICogSEFTX0xPR0lDQUxfUklOR19FTFNR KCksIHNvIHdlIGNhbiBhc3N1bWUgY3RybF9yZWcgaXMgc2V0CisJCSAqLworCQlHRU1fQlVHX09O KGV4ZWNsaXN0cy0+Y3RybF9yZWcgPT0gTlVMTCk7CiAKLQkvKgotCSAqIFN3aXRjaCB0byBvdXIg ZW1wdHkgcHJlZW1wdCBjb250ZXh0IHNvCi0JICogdGhlIHN0YXRlIG9mIHRoZSBHUFUgaXMga25v d24gKGlkbGUpLgotCSAqLwotCUdFTV9UUkFDRSgiJXNcbiIsIGVuZ2luZS0+bmFtZSk7Ci0JZm9y IChuID0gZXhlY2xpc3RzX251bV9wb3J0cyhleGVjbGlzdHMpOyAtLW47ICkKLQkJd3JpdGVfZGVz YyhleGVjbGlzdHMsIDAsIG4pOworCQkvKgorCQkgKiBJZiB3ZSBoYXZlIGhhcmR3YXJlIHByZWVt cHQtdG8taWRsZSwgd2UgZG8gbm90IG5lZWQgdG8KKwkJICogaW5qZWN0IGFueSBqb2IgdG8gdGhl IGhhcmR3YXJlLiBXZSBvbmx5IHNldCBhIGZsYWcuCisJCSAqLworCQl3cml0ZWwoRUxfQ1RSTF9Q UkVFTVBUX1RPX0lETEUsIGV4ZWNsaXN0cy0+Y3RybF9yZWcpOworCX0gZWxzZSB7CisJCXN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSA9CisJCQl0b19pbnRlbF9jb250ZXh0KGVuZ2luZS0+aTkxNS0+ cHJlZW1wdF9jb250ZXh0LCBlbmdpbmUpOworCQl1bnNpZ25lZCBpbnQgbjsKIAotCXdyaXRlX2Rl c2MoZXhlY2xpc3RzLCBjZS0+bHJjX2Rlc2MsIG4pOworCQlHRU1fQlVHX09OKGV4ZWNsaXN0cy0+ cHJlZW1wdF9jb21wbGV0ZV9zdGF0dXMgIT0KKwkJCSAgIHVwcGVyXzMyX2JpdHMoY2UtPmxyY19k ZXNjKSk7CisJCUdFTV9CVUdfT04oKGNlLT5scmNfcmVnX3N0YXRlW0NUWF9DT05URVhUX0NPTlRS T0wgKyAxXSAmCisJCQlfTUFTS0VEX0JJVF9FTkFCTEUoQ1RYX0NUUkxfRU5HSU5FX0NUWF9SRVNU T1JFX0lOSElCSVQgfAorCQkJCQkgICBDVFhfQ1RSTF9FTkdJTkVfQ1RYX1NBVkVfSU5ISUJJVCkp ICE9CisJCQlfTUFTS0VEX0JJVF9FTkFCTEUoQ1RYX0NUUkxfRU5HSU5FX0NUWF9SRVNUT1JFX0lO SElCSVQgfAorCQkJCQkgICBDVFhfQ1RSTF9FTkdJTkVfQ1RYX1NBVkVfSU5ISUJJVCkpOwogCi0J Lyogd2UgbmVlZCB0byBtYW51YWxseSBsb2FkIHRoZSBzdWJtaXQgcXVldWUgKi8KLQlpZiAoZXhl Y2xpc3RzLT5jdHJsX3JlZykKLQkJd3JpdGVsKEVMX0NUUkxfTE9BRCwgZXhlY2xpc3RzLT5jdHJs X3JlZyk7CisJCS8qCisJCSAqIFN3aXRjaCB0byBvdXIgZW1wdHkgcHJlZW1wdCBjb250ZXh0IHNv CisJCSAqIHRoZSBzdGF0ZSBvZiB0aGUgR1BVIGlzIGtub3duIChpZGxlKS4KKwkJICovCisJCWZv ciAobiA9IGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKTsgLS1uOyApCisJCQl3cml0ZV9k ZXNjKGV4ZWNsaXN0cywgMCwgbik7CisKKwkJd3JpdGVfZGVzYyhleGVjbGlzdHMsIGNlLT5scmNf ZGVzYywgbik7CisKKwkJLyogd2UgbmVlZCB0byBtYW51YWxseSBsb2FkIHRoZSBzdWJtaXQgcXVl dWUgKi8KKwkJaWYgKGV4ZWNsaXN0cy0+Y3RybF9yZWcpCisJCQl3cml0ZWwoRUxfQ1RSTF9MT0FE LCBleGVjbGlzdHMtPmN0cmxfcmVnKTsKKwl9CiAKIAlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4 ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSyk7CiAJZXhlY2xpc3RzX3NldF9hY3RpdmUo ZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpOwpAQCAtNTgzLDcgKzYwNCw3IEBA IHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIAkJCXJldHVybjsKIAogCQlpZiAobmVlZF9wcmVlbXB0KGVuZ2luZSwgbGFzdCwgZXhl Y2xpc3RzLT5xdWV1ZV9wcmlvcml0eSkpIHsKLQkJCWluamVjdF9wcmVlbXB0X2NvbnRleHQoZW5n aW5lKTsKKwkJCWV4ZWNsaXN0X3NlbmRfcHJlZW1wdF90b19pZGxlKGVuZ2luZSk7CiAJCQlyZXR1 cm47CiAJCX0KIApAQCAtOTEwLDIyICs5MzEsNDMgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19jc2Io c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJICBleGVjbGlzdHMtPmFjdGl2ZSk7 CiAKIAkJc3RhdHVzID0gYnVmWzIgKiBoZWFkXTsKLQkJaWYgKHN0YXR1cyAmIChHRU44X0NUWF9T VEFUVVNfSURMRV9BQ1RJVkUgfAotCQkJICAgICAgR0VOOF9DVFhfU1RBVFVTX1BSRUVNUFRFRCkp Ci0JCQlleGVjbGlzdHNfc2V0X2FjdGl2ZShleGVjbGlzdHMsCi0JCQkJCSAgICAgRVhFQ0xJU1RT X0FDVElWRV9IV0FDSyk7Ci0JCWlmIChzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQUNUSVZFX0lE TEUpCi0JCQlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywKLQkJCQkJICAgICAgIEVY RUNMSVNUU19BQ1RJVkVfSFdBQ0spOwotCi0JCWlmICghKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRV U19DT01QTEVURURfTUFTSykpCi0JCQljb250aW51ZTsKKwkJLyoKKwkJICogQ2hlY2sgaWYgcHJl ZW1wdGVkIGZyb20gaWRsZSB0byBpZGxlIGRpcmVjdGx5LgorCQkgKiBUaGUgU1RBVFVTX0lETEVf QUNUSVZFIGZsYWcgaXMgdXNlZCB0byBtYXJrCisJCSAqIHN1Y2ggdHJhbnNpdGlvbi4KKwkJICov CisJCWlmICgoc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0lETEVfQUNUSVZFKSAmJgorCQkgICAg IChzdGF0dXMgJiBHRU4xMV9DVFhfU1RBVFVTX1BSRUVNUFRfSURMRSkpIHsKIAotCQkvKiBXZSBz aG91bGQgbmV2ZXIgZ2V0IGEgQ09NUExFVEVEIHwgSURMRV9BQ1RJVkUhICovCi0JCUdFTV9CVUdf T04oc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0lETEVfQUNUSVZFKTsKKwkJCS8qCisJCQkgKiBX ZSBjb3VsZCBub3QgaGF2ZSBDT01QTEVURUQgYW55dGhpbmcKKwkJCSAqIGlmIHdlIHdlcmUgaWRs ZSBiZWZvcmUgcHJlZW1wdGlvbi4KKwkJCSAqLworCQkJR0VNX0JVR19PTihzdGF0dXMgJiBHRU44 X0NUWF9TVEFUVVNfQ09NUExFVEVEX01BU0spOworCQl9IGVsc2UgeworCQkJaWYgKHN0YXR1cyAm IChHRU44X0NUWF9TVEFUVVNfSURMRV9BQ1RJVkUgfAorCQkJCSAgICAgIEdFTjhfQ1RYX1NUQVRV U19QUkVFTVBURUQpKQorCQkJCWV4ZWNsaXN0c19zZXRfYWN0aXZlKGV4ZWNsaXN0cywKKwkJCQkJ CSAgICAgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSyk7CisKKwkJCWlmIChzdGF0dXMgJiBHRU44X0NU WF9TVEFUVVNfQUNUSVZFX0lETEUpCisJCQkJZXhlY2xpc3RzX2NsZWFyX2FjdGl2ZShleGVjbGlz dHMsCisJCQkJCQkgICAgICAgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSyk7CisKKwkJCWlmICghKHN0 YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19DT01QTEVURURfTUFTSykpCisJCQkJY29udGludWU7CiAK LQkJaWYgKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19DT01QTEVURSAmJgotCQkgICAgYnVmWzIq aGVhZCArIDFdID09IGV4ZWNsaXN0cy0+cHJlZW1wdF9jb21wbGV0ZV9zdGF0dXMpIHsKKwkJCS8q IFdlIHNob3VsZCBuZXZlciBnZXQgYSBDT01QTEVURUQgfCBJRExFX0FDVElWRSEgKi8KKwkJCUdF TV9CVUdfT04oc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0lETEVfQUNUSVZFKTsKKwkJfQorCisJ CS8qCisJCSAqIENoZWNrIGlmIHByZWVtcHRlZCB0byByZWFsIGlkbGUsIGVpdGhlciBkaXJlY3Rs eSBvcgorCQkgKiB0aGUgcHJlZW1wdGl2ZSBjb250ZXh0IGFscmVhZHkgZmluaXNoZWQgZXhlY3V0 aW5nCisJCSAqLworCQlpZiAoKHN0YXR1cyAmIEdFTjExX0NUWF9TVEFUVVNfUFJFRU1QVF9JRExF KSB8fAorCQkgICAgKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19DT01QTEVURSAmJgorCQkgICAg YnVmWzIqaGVhZCArIDFdID09IGV4ZWNsaXN0cy0+cHJlZW1wdF9jb21wbGV0ZV9zdGF0dXMpKSB7 CiAJCQlHRU1fVFJBQ0UoIiVzIHByZWVtcHQtaWRsZVxuIiwgZW5naW5lLT5uYW1lKTsKIAkJCWNv bXBsZXRlX3ByZWVtcHRfY29udGV4dChleGVjbGlzdHMpOwogCQkJY29udGludWU7CkBAIC0yMTM4 LDcgKzIxODAsOCBAQCB2b2lkIGludGVsX2V4ZWNsaXN0c19zZXRfZGVmYXVsdF9zdWJtaXNzaW9u KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAllbmdpbmUtPnVucGFyayA9IE5VTEw7 CiAKIAllbmdpbmUtPmZsYWdzIHw9IEk5MTVfRU5HSU5FX1NVUFBPUlRTX1NUQVRTOwotCWlmIChl bmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCkKKwlpZiAoZW5naW5lLT5pOTE1LT5wcmVlbXB0 X2NvbnRleHQgfHwKKwkgICAgSEFTX0hXX1BSRUVNUFRfVE9fSURMRShlbmdpbmUtPmk5MTUpKQog CQllbmdpbmUtPmZsYWdzIHw9IEk5MTVfRU5HSU5FX0hBU19QUkVFTVBUSU9OOwogCiAJZW5naW5l LT5pOTE1LT5jYXBzLnNjaGVkdWxlciA9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4IGY1 YTU1MDIuLjg3MTkwMWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC00Myw2ICs0Myw3 IEBACiAjZGVmaW5lIFJJTkdfRVhFQ0xJU1RfU1FfQ09OVEVOVFMoZW5naW5lKQlfTU1JTygoZW5n aW5lKS0+bW1pb19iYXNlICsgMHg1MTApCiAjZGVmaW5lIFJJTkdfRVhFQ0xJU1RfQ09OVFJPTChl bmdpbmUpCQlfTU1JTygoZW5naW5lKS0+bW1pb19iYXNlICsgMHg1NTApCiAjZGVmaW5lCSAgRUxf Q1RSTF9MT0FECQkJCSgxIDw8IDApCisjZGVmaW5lCSAgRUxfQ1RSTF9QUkVFTVBUX1RPX0lETEUJ CSgxIDw8IDEpCiAKIC8qIFRoZSBkb2NzIHNwZWNpZnkgdGhhdCB0aGUgd3JpdGUgcG9pbnRlciB3 cmFwcyBhcm91bmQgYWZ0ZXIgNWgsICJBZnRlciBzdGF0dXMKICAqIGlzIHdyaXR0ZW4gb3V0IHRv IHRoZSBsYXN0IGF2YWlsYWJsZSBzdGF0dXMgUVcgYXQgb2Zmc2V0IDVoLCB0aGlzIHBvaW50ZXIK LS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK