From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomasz Lis Subject: [PATCH v5] drm/i915/gen11: Preempt-to-idle support in execlists. Date: Fri, 6 Jul 2018 17:52:00 +0200 Message-ID: <1530892320-8412-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 mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id C0AF66E26B for ; Fri, 6 Jul 2018 15:52:04 +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 MSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgIHwgMTE0ICsrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5oICAgICAgICAgfCAgIDEgKwogNiBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCA0 MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA5MWE3ZTRmLi5jODRh NjZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI1MzMsNiArMjUzMyw4IEBAIGludGVs X2luZm8oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkoKGRldl9w cml2KS0+aW5mby5oYXNfbG9naWNhbF9yaW5nX2Vsc3EpCiAjZGVmaW5lIEhBU19MT0dJQ0FMX1JJ TkdfUFJFRU1QVElPTihkZXZfcHJpdikgXAogCQkoKGRldl9wcml2KS0+aW5mby5oYXNfbG9naWNh bF9yaW5nX3ByZWVtcHRpb24pCisjZGVmaW5lIEhBU19IV19QUkVFTVBUX1RPX0lETEUoZGV2X3By aXYpIFwKKwkJKChkZXZfcHJpdiktPmluZm8uaGFzX2h3X3ByZWVtcHRfdG9faWRsZSkKIAogI2Rl ZmluZSBIQVNfRVhFQ0xJU1RTKGRldl9wcml2KSBIQVNfTE9HSUNBTF9SSU5HX0NPTlRFWFRTKGRl dl9wcml2KQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggYjEw NzcwYy4uYmY3ZmFhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpA QCAtNDY0LDcgKzQ2NCw4IEBAIGRlc3Ryb3lfa2VybmVsX2NvbnRleHQoc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKipjdHhwKQogCiBzdGF0aWMgYm9vbCBuZWVkc19wcmVlbXB0X2NvbnRleHQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0JcmV0dXJuIEhBU19MT0dJQ0FMX1JJTkdf UFJFRU1QVElPTihpOTE1KTsKKwlyZXR1cm4gSEFTX0xPR0lDQUxfUklOR19QUkVFTVBUSU9OKGk5 MTUpICYmCisJICAgICAgICFIQVNfSFdfUFJFRU1QVF9UT19JRExFKGk5MTUpOwogfQogCiBpbnQg aTkxNV9nZW1fY29udGV4dHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wY2kuYwppbmRleCA1NTU0M2YxLi4yZGE3ZTc3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGNpLmMKQEAgLTU5Myw3ICs1OTMsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlu dGVsX2RldmljZV9pbmZvIGludGVsX2Nhbm5vbmxha2VfaW5mbyA9IHsKIAlHRU4oMTEpLCBcCiAJ LmRkYl9zaXplID0gMjA0OCwgXAogCS5oYXNfY3NyID0gMCwgXAotCS5oYXNfbG9naWNhbF9yaW5n X2Vsc3EgPSAxCisJLmhhc19sb2dpY2FsX3JpbmdfZWxzcSA9IDEsIFwKKwkuaGFzX2h3X3ByZWVt cHRfdG9faWRsZSA9IDEKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBp bnRlbF9pY2VsYWtlXzExX2luZm8gPSB7CiAJR0VOMTFfRkVBVFVSRVMsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAppbmRleCA2MzNmOWZiLi4wYmU3ZTAzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKQEAgLTk4LDYgKzk4LDcgQEAgZW51 bSBpbnRlbF9wbGF0Zm9ybSB7CiAJZnVuYyhoYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzKTsgXAog CWZ1bmMoaGFzX2xvZ2ljYWxfcmluZ19lbHNxKTsgXAogCWZ1bmMoaGFzX2xvZ2ljYWxfcmluZ19w cmVlbXB0aW9uKTsgXAorCWZ1bmMoaGFzX2h3X3ByZWVtcHRfdG9faWRsZSk7IFwKIAlmdW5jKGhh c19vdmVybGF5KTsgXAogCWZ1bmMoaGFzX3Bvb2xlZF9ldSk7IFwKIAlmdW5jKGhhc19wc3IpOyBc CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IGFiODlkYWIuLmFlZDRhZWIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCkBAIC0xNTUsNiArMTU1LDcgQEAKICNkZWZpbmUgR0VOOF9DVFhf U1RBVFVTX0FDVElWRV9JRExFCSgxIDw8IDMpCiAjZGVmaW5lIEdFTjhfQ1RYX1NUQVRVU19DT01Q TEVURQkoMSA8PCA0KQogI2RlZmluZSBHRU44X0NUWF9TVEFUVVNfTElURV9SRVNUT1JFCSgxIDw8 IDE1KQorI2RlZmluZSBHRU4xMV9DVFhfU1RBVFVTX1BSRUVNUFRfSURMRQkoMSA8PCAyOSkKIAog I2RlZmluZSBHRU44X0NUWF9TVEFUVVNfQ09NUExFVEVEX01BU0sgXAogCSAoR0VOOF9DVFhfU1RB VFVTX0NPTVBMRVRFIHwgR0VOOF9DVFhfU1RBVFVTX1BSRUVNUFRFRCkKQEAgLTUyNSwzNCArNTI2 LDQ5IEBAIHN0YXRpYyB2b2lkIHBvcnRfYXNzaWduKHN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0 LCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAlwb3J0X3NldChwb3J0LCBwb3J0X3BhY2soaTkx NV9yZXF1ZXN0X2dldChycSksIHBvcnRfY291bnQocG9ydCkpKTsKIH0KIAotc3RhdGljIHZvaWQg aW5qZWN0X3ByZWVtcHRfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitz dGF0aWMgdm9pZCBleGVjbGlzdF9zZW5kX3ByZWVtcHRfdG9faWRsZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNs aXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKLQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPQot CQl0b19pbnRlbF9jb250ZXh0KGVuZ2luZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0LCBlbmdpbmUp OwotCXVuc2lnbmVkIGludCBuOwotCi0JR0VNX0JVR19PTihleGVjbGlzdHMtPnByZWVtcHRfY29t cGxldGVfc3RhdHVzICE9Ci0JCSAgIHVwcGVyXzMyX2JpdHMoY2UtPmxyY19kZXNjKSk7Ci0JR0VN X0JVR19PTigoY2UtPmxyY19yZWdfc3RhdGVbQ1RYX0NPTlRFWFRfQ09OVFJPTCArIDFdICYKLQkJ ICAgIF9NQVNLRURfQklUX0VOQUJMRShDVFhfQ1RSTF9FTkdJTkVfQ1RYX1JFU1RPUkVfSU5ISUJJ VCB8Ci0JCQkJICAgICAgIENUWF9DVFJMX0VOR0lORV9DVFhfU0FWRV9JTkhJQklUKSkgIT0KLQkJ ICAgX01BU0tFRF9CSVRfRU5BQkxFKENUWF9DVFJMX0VOR0lORV9DVFhfUkVTVE9SRV9JTkhJQklU IHwKLQkJCQkgICAgICBDVFhfQ1RSTF9FTkdJTkVfQ1RYX1NBVkVfSU5ISUJJVCkpOwogCi0JLyoK LQkgKiBTd2l0Y2ggdG8gb3VyIGVtcHR5IHByZWVtcHQgY29udGV4dCBzbwotCSAqIHRoZSBzdGF0 ZSBvZiB0aGUgR1BVIGlzIGtub3duIChpZGxlKS4KLQkgKi8KIAlHRU1fVFJBQ0UoIiVzXG4iLCBl bmdpbmUtPm5hbWUpOwotCWZvciAobiA9IGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKTsg LS1uOyApCi0JCXdyaXRlX2Rlc2MoZXhlY2xpc3RzLCAwLCBuKTsKKwlpZiAoSEFTX0hXX1BSRUVN UFRfVE9fSURMRShlbmdpbmUtPmk5MTUpKSB7CisJCS8qCisJCSAqIGhhcmR3YXJlIHdoaWNoIEhB U19IV19QUkVFTVBUX1RPX0lETEUoKSwgYWx3YXlzIGFsc28KKwkJICogSEFTX0xPR0lDQUxfUklO R19FTFNRKCksIHNvIHdlIGNhbiBhc3N1bWUgY3RybF9yZWcgaXMgc2V0CisJCSAqLworCQlHRU1f QlVHX09OKGV4ZWNsaXN0cy0+Y3RybF9yZWcgPT0gTlVMTCk7CisKKwkJLyoKKwkJICogSWYgd2Ug aGF2ZSBoYXJkd2FyZSBwcmVlbXB0LXRvLWlkbGUsIHdlIGRvIG5vdCBuZWVkIHRvCisJCSAqIGlu amVjdCBhbnkgam9iIHRvIHRoZSBoYXJkd2FyZS4gV2Ugb25seSBzZXQgYSBmbGFnLgorCQkgKi8K KwkJd3JpdGVsKEVMX0NUUkxfUFJFRU1QVF9UT19JRExFLCBleGVjbGlzdHMtPmN0cmxfcmVnKTsK Kwl9IGVsc2UgeworCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPQorCQkJdG9faW50ZWxfY29u dGV4dChlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCwgZW5naW5lKTsKKwkJdW5zaWduZWQg aW50IG47CiAKLQl3cml0ZV9kZXNjKGV4ZWNsaXN0cywgY2UtPmxyY19kZXNjLCBuKTsKKwkJR0VN X0JVR19PTihleGVjbGlzdHMtPnByZWVtcHRfY29tcGxldGVfc3RhdHVzICE9CisJCQkgICB1cHBl cl8zMl9iaXRzKGNlLT5scmNfZGVzYykpOworCQlHRU1fQlVHX09OKChjZS0+bHJjX3JlZ19zdGF0 ZVtDVFhfQ09OVEVYVF9DT05UUk9MICsgMV0gJgorCQkJICAgIF9NQVNLRURfQklUX0VOQUJMRShD VFhfQ1RSTF9FTkdJTkVfQ1RYX1JFU1RPUkVfSU5ISUJJVCB8CisJCQkJCSAgICAgICBDVFhfQ1RS TF9FTkdJTkVfQ1RYX1NBVkVfSU5ISUJJVCkpICE9CisJCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUo Q1RYX0NUUkxfRU5HSU5FX0NUWF9SRVNUT1JFX0lOSElCSVQgfAorCQkJCQkgICAgICBDVFhfQ1RS TF9FTkdJTkVfQ1RYX1NBVkVfSU5ISUJJVCkpOwogCi0JLyogd2UgbmVlZCB0byBtYW51YWxseSBs b2FkIHRoZSBzdWJtaXQgcXVldWUgKi8KLQlpZiAoZXhlY2xpc3RzLT5jdHJsX3JlZykKLQkJd3Jp dGVsKEVMX0NUUkxfTE9BRCwgZXhlY2xpc3RzLT5jdHJsX3JlZyk7CisJCS8qCisJCSAqIFN3aXRj aCB0byBvdXIgZW1wdHkgcHJlZW1wdCBjb250ZXh0IHNvCisJCSAqIHRoZSBzdGF0ZSBvZiB0aGUg R1BVIGlzIGtub3duIChpZGxlKS4KKwkJICovCisJCWZvciAobiA9IGV4ZWNsaXN0c19udW1fcG9y dHMoZXhlY2xpc3RzKTsgLS1uOyApCisJCQl3cml0ZV9kZXNjKGV4ZWNsaXN0cywgMCwgbik7CisK KwkJd3JpdGVfZGVzYyhleGVjbGlzdHMsIGNlLT5scmNfZGVzYywgbik7CisKKwkJLyogd2UgbmVl ZCB0byBtYW51YWxseSBsb2FkIHRoZSBzdWJtaXQgcXVldWUgKi8KKwkJaWYgKGV4ZWNsaXN0cy0+ Y3RybF9yZWcpCisJCQl3cml0ZWwoRUxfQ1RSTF9MT0FELCBleGVjbGlzdHMtPmN0cmxfcmVnKTsK Kwl9CiAKIAlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElW RV9IV0FDSyk7CiAJZXhlY2xpc3RzX3NldF9hY3RpdmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNU SVZFX1BSRUVNUFQpOwpAQCAtNjI3LDcgKzY0Myw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19k ZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCXJldHVybjsKIAogCQlp ZiAobmVlZF9wcmVlbXB0KGVuZ2luZSwgbGFzdCwgZXhlY2xpc3RzLT5xdWV1ZV9wcmlvcml0eSkp IHsKLQkJCWluamVjdF9wcmVlbXB0X2NvbnRleHQoZW5naW5lKTsKKwkJCWV4ZWNsaXN0X3NlbmRf cHJlZW1wdF90b19pZGxlKGVuZ2luZSk7CiAJCQlyZXR1cm47CiAJCX0KIApAQCAtMTAyMCwyMiAr MTAzNiw0MyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiAJCQkgIGV4ZWNsaXN0cy0+YWN0aXZlKTsKIAogCQlzdGF0dXMgPSBidWZbMiAq IGhlYWRdOwotCQlpZiAoc3RhdHVzICYgKEdFTjhfQ1RYX1NUQVRVU19JRExFX0FDVElWRSB8Ci0J CQkgICAgICBHRU44X0NUWF9TVEFUVVNfUFJFRU1QVEVEKSkKLQkJCWV4ZWNsaXN0c19zZXRfYWN0 aXZlKGV4ZWNsaXN0cywKLQkJCQkJICAgICBFWEVDTElTVFNfQUNUSVZFX0hXQUNLKTsKLQkJaWYg KHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19BQ1RJVkVfSURMRSkKLQkJCWV4ZWNsaXN0c19jbGVh cl9hY3RpdmUoZXhlY2xpc3RzLAotCQkJCQkgICAgICAgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSyk7 Ci0KLQkJaWYgKCEoc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0NPTVBMRVRFRF9NQVNLKSkKLQkJ CWNvbnRpbnVlOworCQkvKgorCQkgKiBDaGVjayBpZiBwcmVlbXB0ZWQgZnJvbSBpZGxlIHRvIGlk bGUgZGlyZWN0bHkuCisJCSAqIFRoZSBTVEFUVVNfSURMRV9BQ1RJVkUgZmxhZyBpcyB1c2VkIHRv IG1hcmsKKwkJICogc3VjaCB0cmFuc2l0aW9uLgorCQkgKi8KKwkJaWYgKChzdGF0dXMgJiBHRU44 X0NUWF9TVEFUVVNfSURMRV9BQ1RJVkUpICYmCisJCSAgICAgKHN0YXR1cyAmIEdFTjExX0NUWF9T VEFUVVNfUFJFRU1QVF9JRExFKSkgeworCisJCQkvKgorCQkJICogV2UgY291bGQgbm90IGhhdmUg Q09NUExFVEVEIGFueXRoaW5nCisJCQkgKiBpZiB3ZSB3ZXJlIGlkbGUgYmVmb3JlIHByZWVtcHRp b24uCisJCQkgKi8KKwkJCUdFTV9CVUdfT04oc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0NPTVBM RVRFRF9NQVNLKTsKKwkJfSBlbHNlIHsKKwkJCWlmIChzdGF0dXMgJiAoR0VOOF9DVFhfU1RBVFVT X0lETEVfQUNUSVZFIHwKKwkJCQkgICAgICBHRU44X0NUWF9TVEFUVVNfUFJFRU1QVEVEKSkKKwkJ CQlleGVjbGlzdHNfc2V0X2FjdGl2ZShleGVjbGlzdHMsCisJCQkJCQkgICAgIEVYRUNMSVNUU19B Q1RJVkVfSFdBQ0spOworCisJCQlpZiAoc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0FDVElWRV9J RExFKQorCQkJCWV4ZWNsaXN0c19jbGVhcl9hY3RpdmUoZXhlY2xpc3RzLAorCQkJCQkJICAgICAg IEVYRUNMSVNUU19BQ1RJVkVfSFdBQ0spOworCisJCQlpZiAoIShzdGF0dXMgJiBHRU44X0NUWF9T VEFUVVNfQ09NUExFVEVEX01BU0spKQorCQkJCWNvbnRpbnVlOwogCi0JCS8qIFdlIHNob3VsZCBu ZXZlciBnZXQgYSBDT01QTEVURUQgfCBJRExFX0FDVElWRSEgKi8KLQkJR0VNX0JVR19PTihzdGF0 dXMgJiBHRU44X0NUWF9TVEFUVVNfSURMRV9BQ1RJVkUpOworCQkJLyogV2Ugc2hvdWxkIG5ldmVy IGdldCBhIENPTVBMRVRFRCB8IElETEVfQUNUSVZFISAqLworCQkJR0VNX0JVR19PTihzdGF0dXMg JiBHRU44X0NUWF9TVEFUVVNfSURMRV9BQ1RJVkUpOworCQl9CiAKLQkJaWYgKHN0YXR1cyAmIEdF TjhfQ1RYX1NUQVRVU19DT01QTEVURSAmJgotCQkgICAgYnVmWzIqaGVhZCArIDFdID09IGV4ZWNs aXN0cy0+cHJlZW1wdF9jb21wbGV0ZV9zdGF0dXMpIHsKKwkJLyoKKwkJICogQ2hlY2sgaWYgcHJl ZW1wdGVkIHRvIHJlYWwgaWRsZSwgZWl0aGVyIGRpcmVjdGx5IG9yCisJCSAqIHRoZSBwcmVlbXB0 aXZlIGNvbnRleHQgYWxyZWFkeSBmaW5pc2hlZCBleGVjdXRpbmcKKwkJICovCisJCWlmICgoc3Rh dHVzICYgR0VOMTFfQ1RYX1NUQVRVU19QUkVFTVBUX0lETEUpIHx8CisJCSAgICAoc3RhdHVzICYg R0VOOF9DVFhfU1RBVFVTX0NPTVBMRVRFICYmCisJCSAgICBidWZbMipoZWFkICsgMV0gPT0gZXhl Y2xpc3RzLT5wcmVlbXB0X2NvbXBsZXRlX3N0YXR1cykpIHsKIAkJCUdFTV9UUkFDRSgiJXMgcHJl ZW1wdC1pZGxlXG4iLCBlbmdpbmUtPm5hbWUpOwogCQkJY29tcGxldGVfcHJlZW1wdF9jb250ZXh0 KGV4ZWNsaXN0cyk7CiAJCQljb250aW51ZTsKQEAgLTIzNzcsNyArMjQxNCw4IEBAIHN0YXRpYyB2 b2lkIGV4ZWNsaXN0c19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIAllbmdpbmUtPnVucGFyayA9IE5VTEw7CiAKIAllbmdpbmUtPmZsYWdzIHw9 IEk5MTVfRU5HSU5FX1NVUFBPUlRTX1NUQVRTOwotCWlmIChlbmdpbmUtPmk5MTUtPnByZWVtcHRf Y29udGV4dCkKKwlpZiAoZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQgfHwKKwkgICAgSEFT X0hXX1BSRUVNUFRfVE9fSURMRShlbmdpbmUtPmk5MTUpKQogCQllbmdpbmUtPmZsYWdzIHw9IEk5 MTVfRU5HSU5FX0hBU19QUkVFTVBUSU9OOwogCiAJZW5naW5lLT5pOTE1LT5jYXBzLnNjaGVkdWxl ciA9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4IDE1OTMxOTQuLjMyNDllOWIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC00NSw2ICs0NSw3IEBACiAjZGVmaW5lIFJJTkdfRVhF Q0xJU1RfU1FfQ09OVEVOVFMoZW5naW5lKQlfTU1JTygoZW5naW5lKS0+bW1pb19iYXNlICsgMHg1 MTApCiAjZGVmaW5lIFJJTkdfRVhFQ0xJU1RfQ09OVFJPTChlbmdpbmUpCQlfTU1JTygoZW5naW5l KS0+bW1pb19iYXNlICsgMHg1NTApCiAjZGVmaW5lCSAgRUxfQ1RSTF9MT0FECQkJCSgxIDw8IDAp CisjZGVmaW5lCSAgRUxfQ1RSTF9QUkVFTVBUX1RPX0lETEUJCSgxIDw8IDEpCiAKIC8qIFRoZSBk b2NzIHNwZWNpZnkgdGhhdCB0aGUgd3JpdGUgcG9pbnRlciB3cmFwcyBhcm91bmQgYWZ0ZXIgNWgs ICJBZnRlciBzdGF0dXMKICAqIGlzIHdyaXR0ZW4gb3V0IHRvIHRoZSBsYXN0IGF2YWlsYWJsZSBz dGF0dXMgUVcgYXQgb2Zmc2V0IDVoLCB0aGlzIHBvaW50ZXIKLS0gCjIuNy40CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK