From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] TGL HAX drm/i915/tgl: Interrupts are overrated Date: Fri, 4 Oct 2019 08:36:37 +0100 Message-ID: <20191004073637.7418-1-chris@chris-wilson.co.uk> References: <20191003185613.27484-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 5BF766E29B for ; Fri, 4 Oct 2019 07:36:55 +0000 (UTC) In-Reply-To: <20191003185613.27484-1-chris@chris-wilson.co.uk> 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 V2h5IHNsZWVwIHdoZW4geW91IGNhbiBidXN5d2FpdCBmb3IgYW4gaW50ZXJydXB0PyBUaHJvdyBv dXQgdGhlIG9sZCBpcnEKaGFuZGxlcnMsIGFuZCB1c2UgaXJxX3BvbGwgaW5zdGVhZC4KClJlZmVy ZW5jZXM6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTg4 MApTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K Q2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgICAgICAgICAgICAgICAgIHwgIDEgKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvS2NvbmZpZy5kZWJ1ZyAgICAgICAgICAgfCAgNSArKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oIHwgIDMgKysKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2d0X2lycS5jICAgICAgIHwgMTMgKysrKy0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyAgICAgICAgICB8IDQyICsrKysrKysrKysrKysrKysr KysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICB8ICAzICsr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgICAgICB8IDE0ICsrKysr Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgICAgICAgICAgICAgIHwgIDEgLQog aW5jbHVkZS9saW51eC9pcnFfcG9sbC5oICAgICAgICAgICAgICAgICAgICAgfCAxNSArKysrKyst CiBsaWIvaXJxX3BvbGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzICsrKy0t LQogMTAgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L0tjb25maWcKaW5kZXggMGQyMTQwMjk0NWFiLi5iZjJiMjdiNmViZjIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvS2NvbmZpZwpAQCAtMTMsNiArMTMsNyBAQCBjb25maWcgRFJNX0k5MTUKIAlzZWxlY3QgRFJN X1BBTkVMCiAJc2VsZWN0IERSTV9NSVBJX0RTSQogCXNlbGVjdCBSRUxBWQorCXNlbGVjdCBJUlFf UE9MTAogCXNlbGVjdCBJUlFfV09SSwogCSMgaTkxNSBkZXBlbmRzIG9uIEFDUElfVklERU8gd2hl biBBQ1BJIGlzIGVuYWJsZWQKIAkjIGJ1dCBmb3Igc2VsZWN0IHRvIHdvcmssIG5lZWQgdG8gc2Vs ZWN0IEFDUElfVklERU8ncyBkZXBlbmRlbmNpZXMsIGljawpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvS2NvbmZpZy5kZWJ1ZyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcu ZGVidWcKaW5kZXggNGE4MDBmYWEyNzVjLi40ZDIzYTg0YWMyYzQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L0tjb25maWcuZGVidWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv S2NvbmZpZy5kZWJ1ZwpAQCAtNDQsNiArNDQsNyBAQCBjb25maWcgRFJNX0k5MTVfREVCVUcKIAlz ZWxlY3QgRFJNX0k5MTVfU0VMRlRFU1QKIAlzZWxlY3QgRFJNX0k5MTVfREVCVUdfUlVOVElNRV9Q TQogCXNlbGVjdCBEUk1fSTkxNV9ERUJVR19NTUlPCisJc2VsZWN0IFRJR0VSTEFLRV9ERUJVR19J UlEKICAgICAgICAgZGVmYXVsdCBuCiAgICAgICAgIGhlbHAKICAgICAgICAgICBDaG9vc2UgdGhp cyBvcHRpb24gdG8gdHVybiBvbiBleHRyYSBkcml2ZXIgZGVidWdnaW5nIHRoYXQgbWF5IGFmZmVj dApAQCAtMjIwLDMgKzIyMSw3IEBAIGNvbmZpZyBEUk1fSTkxNV9ERUJVR19SVU5USU1FX1BNCiAJ ICBkcml2ZXIgbG9hZGluZywgc3VzcGVuZCBhbmQgcmVzdW1lIG9wZXJhdGlvbnMuCiAKIAkgIElm IGluIGRvdWJ0LCBzYXkgIk4iCisKK2NvbmZpZyBUSUdFUkxBS0VfREVCVUdfSVJRCisJYm9vbCAi W1RHTF0gUmVkdWNlIElSUSBmdW5jdGlvbmFsaXR5IGZvciBzdGFiaWxpdHkiCisJZGVmYXVsdCBu CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCmluZGV4IDk0 M2YwNjYzODM3ZS4uNTMyNjVhZGQ4MWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9lbmdpbmVfdHlwZXMuaApAQCAtOCw2ICs4LDcgQEAKICNkZWZpbmUgX19JTlRFTF9FTkdJ TkVfVFlQRVNfXwogCiAjaW5jbHVkZSA8bGludXgvaGFzaHRhYmxlLmg+CisjaW5jbHVkZSA8bGlu dXgvaXJxX3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9pcnFfd29yay5oPgogI2luY2x1ZGUgPGxp bnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CkBAIC0zMzAsNiArMzMxLDggQEAg c3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmRl ZmF1bHRfc3RhdGU7CiAJdm9pZCAqcGlubmVkX2RlZmF1bHRfc3RhdGU7CiAKKwlzdHJ1Y3QgaXJx X3BvbGwgaXJxX3BvbGw7CisKIAlzdHJ1Y3QgewogCQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsK IAkJc3RydWN0IGludGVsX3RpbWVsaW5lICp0aW1lbGluZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZ3RfaXJxLmMKaW5kZXggMzRhNGZiNjI0YmY3Li43ZDRjMmYxODU3NmUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X2lycS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X2lycS5jCkBAIC00NSw2ICs0NSw5IEBAIGdlbjExX2d0 X2VuZ2luZV9pZGVudGl0eShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogCiAJbG9ja2RlcF9hc3NlcnRf aGVsZCgmZ3QtPmlycV9sb2NrKTsKIAorCWlmIChXQVJOX09OKFRJR0VSTEFLRV9OT19JUlEoZ3Qt Pmk5MTUpKSkKKwkJcmV0dXJuIDA7CisKIAlyYXdfcmVnX3dyaXRlKHJlZ3MsIEdFTjExX0lJUl9S RUdfU0VMRUNUT1IoYmFuayksIEJJVChiaXQpKTsKIAogCS8qCkBAIC0yMDksMTIgKzIxMiwxNCBA QCB2b2lkIGdlbjExX2d0X2lycV9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogCiB2b2lkIGdl bjExX2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCWNvbnN0IHUz MiBpcnFzID0gR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIHwgR1RfQ09OVEVYVF9TV0lUQ0hfSU5U RVJSVVBUOwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGd0LT51bmNvcmU7Ci0JY29u c3QgdTMyIGRtYXNrID0gaXJxcyA8PCAxNiB8IGlycXM7Ci0JY29uc3QgdTMyIHNtYXNrID0gaXJx cyA8PCAxNjsKKwl1MzIgaXJxcywgZG1hc2ssIHNtYXNrOwogCi0JQlVJTERfQlVHX09OKGlycXMg JiAweGZmZmYwMDAwKTsKKwlpcnFzID0gR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIHwgR1RfQ09O VEVYVF9TV0lUQ0hfSU5URVJSVVBUOworCWlmIChUSUdFUkxBS0VfTk9fSVJRKGd0LT5pOTE1KSkK KwkJaXJxcyA9IDA7IC8qIFhYWCBsYWxhbGFsYSAqLworCXNtYXNrID0gaXJxcyA8PCAxNjsKKwlk bWFzayA9IHNtYXNrIHwgaXJxczsKIAogCS8qIEVuYWJsZSBSQ1MsIEJDUywgVkNTIGFuZCBWRUNT IGNsYXNzIGludGVycnVwdHMuICovCiAJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMTFf UkVOREVSX0NPUFlfSU5UUl9FTkFCTEUsIGRtYXNrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf bHJjLmMKaW5kZXggNDMxZDNiOGMzMzcxLi5kZTRjNDk0ZDc3NWUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2xyYy5jCkBAIC05ODksNiArOTg5LDkgQEAgX19leGVjbGlzdHNfc2NoZWR1bGVf aW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2No YW5nZShycSwgSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9JTik7CiAJaW50ZWxfZW5naW5lX2NvbnRl eHRfaW4oZW5naW5lKTsKIAorCWlmIChUSUdFUkxBS0VfTk9fSVJRKGVuZ2luZS0+aTkxNSkpCisJ CWlycV9wb2xsX2FjdGl2YXRlKCZlbmdpbmUtPmlycV9wb2xsKTsKKwogCXJldHVybiBlbmdpbmU7 CiB9CiAKQEAgLTEwMjgsNiArMTAzMSw5IEBAIF9fZXhlY2xpc3RzX3NjaGVkdWxlX291dChzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIHsKIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqIGNvbnN0IGNl ID0gcnEtPmh3X2NvbnRleHQ7CiAKKwlpZiAoVElHRVJMQUtFX05PX0lSUShlbmdpbmUtPmk5MTUp KQorCQlpcnFfcG9sbF9kZWFjdGl2YXRlKCZlbmdpbmUtPmlycV9wb2xsKTsKKwogCWludGVsX2Vu Z2luZV9jb250ZXh0X291dChlbmdpbmUpOwogCWV4ZWNsaXN0c19jb250ZXh0X3N0YXR1c19jaGFu Z2UocnEsIElOVEVMX0NPTlRFWFRfU0NIRURVTEVfT1VUKTsKIAlpbnRlbF9ndF9wbV9wdXQoZW5n aW5lLT5ndCk7CkBAIC0xMTk2LDYgKzEyMDIsOCBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3Vi bWl0X3BvcnRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkvKiB3ZSBuZWVkIHRv IG1hbnVhbGx5IGxvYWQgdGhlIHN1Ym1pdCBxdWV1ZSAqLwogCWlmIChleGVjbGlzdHMtPmN0cmxf cmVnKQogCQl3cml0ZWwoRUxfQ1RSTF9MT0FELCBleGVjbGlzdHMtPmN0cmxfcmVnKTsKKworCWly cV9wb2xsX3NjaGVkKCZlbmdpbmUtPmlycV9wb2xsKTsKIH0KIAogc3RhdGljIGJvb2wgY3R4X3Np bmdsZV9wb3J0X3N1Ym1pc3Npb24oY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQpAQCAt MTgzOCw2ICsxODQ2LDExIEBAIGdlbjhfY3NiX3BhcnNlKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdp bmVfZXhlY2xpc3RzICpleGVjbGlzdHMsIGNvbnN0IHUzMiAqY3NiKQogCXJldHVybiAqY3NiICYg KEdFTjhfQ1RYX1NUQVRVU19JRExFX0FDVElWRSB8IEdFTjhfQ1RYX1NUQVRVU19QUkVFTVBURUQp OwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgaGFzX2JyZWFkY3J1bWJzKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxKQoreworCXJldHVybiAhbGlzdF9lbXB0eSgmcnEtPmh3X2NvbnRleHQtPnNpZ25h bHMpOworfQorCiBzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVj bGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CkBAIC0xOTQwLDYgKzE5NTMsMTAgQEAgc3RhdGlj IHZvaWQgcHJvY2Vzc19jc2Ioc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJICov CiAJCQlHRU1fQlVHX09OKCFpOTE1X3JlcXVlc3RfY29tcGxldGVkKCpleGVjbGlzdHMtPmFjdGl2 ZSkgJiYKIAkJCQkgICAhcmVzZXRfaW5fcHJvZ3Jlc3MoZXhlY2xpc3RzKSk7CisKKwkJCWlmICho YXNfYnJlYWRjcnVtYnMoKmV4ZWNsaXN0cy0+YWN0aXZlKSkKKwkJCQlpbnRlbF9lbmdpbmVfcXVl dWVfYnJlYWRjcnVtYnMoZW5naW5lKTsKKwogCQkJZXhlY2xpc3RzX3NjaGVkdWxlX291dCgqZXhl Y2xpc3RzLT5hY3RpdmUrKyk7CiAKIAkJCUdFTV9CVUdfT04oZXhlY2xpc3RzLT5hY3RpdmUgLSBl eGVjbGlzdHMtPmluZmxpZ2h0ID4KQEAgLTE5ODcsNiArMjAwNCwyNyBAQCBzdGF0aWMgdm9pZCBl eGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkKIAl9CiB9CiAK K3N0YXRpYyBpbnQgaW9wX2hhbmRsZXIoc3RydWN0IGlycV9wb2xsICppb3AsIGludCBidWRnZXQp Cit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0KKwkJY29udGFpbmVyX29mKGlv cCwgdHlwZW9mKCplbmdpbmUpLCBpcnFfcG9sbCk7CisJc3RydWN0IGludGVsX2VuZ2luZV9leGVj bGlzdHMgKmV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKKwlzdHJ1Y3QgdGFza2xldF9z dHJ1Y3QgKnQgPSAmZXhlY2xpc3RzLT50YXNrbGV0OworCisJaWYgKGV4ZWNsaXN0cy0+Y3NiX2hl YWQgPT0gUkVBRF9PTkNFKCpleGVjbGlzdHMtPmNzYl93cml0ZSkpCisJCXJldHVybiAwOworCisJ aWYgKCF0YXNrbGV0X3RyeWxvY2sodCkpCisJCXJldHVybiAwOworCisJLyogTXVzdCB3YWl0IGZv ciBhbnkgR1BVIHJlc2V0IGluIHByb2dyZXNzLiAqLworCWlmIChfX3Rhc2tsZXRfaXNfZW5hYmxl ZCh0KSkKKwkJdC0+ZnVuYyh0LT5kYXRhKTsKKworCXRhc2tsZXRfdW5sb2NrKHQpOworCXJldHVy biAwOworfQorCiBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90aW1lcihzdHJ1Y3Qg dGltZXJfbGlzdCAqdGltZXIpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0K QEAgLTM0NDYsNiArMzQ4NCw3IEBAIHZvaWQgaW50ZWxfZXhlY2xpc3RzX3NldF9kZWZhdWx0X3N1 Ym1pc3Npb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiBzdGF0aWMgdm9pZCBl eGVjbGlzdHNfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CisJaXJx X3BvbGxfZGlzYWJsZSgmZW5naW5lLT5pcnFfcG9sbCk7CiAJaW50ZWxfZW5naW5lX2NsZWFudXBf Y29tbW9uKGVuZ2luZSk7CiAJbHJjX2Rlc3Ryb3lfd2FfY3R4KGVuZ2luZSk7CiAJa2ZyZWUoZW5n aW5lKTsKQEAgLTM1MzIsNiArMzU3MSw5IEBAIHN0YXRpYyB2b2lkIHJjc19zdWJtaXNzaW9uX292 ZXJyaWRlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogaW50IGludGVsX2V4ZWNs aXN0c19zdWJtaXNzaW9uX3NldHVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsK KwlpcnFfcG9sbF9pbml0KCZlbmdpbmUtPmlycV9wb2xsLCAtMSwgaW9wX2hhbmRsZXIpOworCWly cV9wb2xsX2Rpc2FibGUoJmVuZ2luZS0+aXJxX3BvbGwpOworCiAJdGFza2xldF9pbml0KCZlbmdp bmUtPmV4ZWNsaXN0cy50YXNrbGV0LAogCQkgICAgIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2ts ZXQsICh1bnNpZ25lZCBsb25nKWVuZ2luZSk7CiAJdGltZXJfc2V0dXAoJmVuZ2luZS0+ZXhlY2xp c3RzLnRpbWVyLCBleGVjbGlzdHNfc3VibWlzc2lvbl90aW1lciwgMCk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCAzMzdkODMwNjQxNmEuLmM1MDVkOWUzOGU5OCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCkBAIC0yMDY5LDYgKzIwNjksOSBAQCBJU19TVUJQTEFURk9STShjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKICNkZWZpbmUgSVNfR0VOOV9MUChkZXZfcHJpdikJ KElTX0dFTihkZXZfcHJpdiwgOSkgJiYgSVNfTFAoZGV2X3ByaXYpKQogI2RlZmluZSBJU19HRU45 X0JDKGRldl9wcml2KQkoSVNfR0VOKGRldl9wcml2LCA5KSAmJiAhSVNfTFAoZGV2X3ByaXYpKQog CisjZGVmaW5lIFRJR0VSTEFLRV9OT19JUlEoaTkxNSkgXAorCUlTX0VOQUJMRUQoQ09ORklHX1RJ R0VSTEFLRV9ERUJVR19JUlEpICYmIElTX1RJR0VSTEFLRShpOTE1KQorCiAjZGVmaW5lIEhBU19F TkdJTkUoZGV2X3ByaXYsIGlkKSAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmVuZ2luZV9tYXNrICYg QklUKGlkKSkKIAogI2RlZmluZSBFTkdJTkVfSU5TVEFOQ0VTX01BU0soZGV2X3ByaXYsIGZpcnN0 LCBjb3VudCkgKHsJCVwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IGJjODNmMDk0MDY1YS4u MDUwNjBmODI5OTgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTM2MCw2ICszNjAsOSBA QCB2b2lkIGdlbjZfZW5hYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAlpZiAoUkVBRF9PTkNFKHJwcy0+aW50ZXJydXB0c19lbmFibGVkKSkKIAkJ cmV0dXJuOwogCisJaWYgKCFkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cykKKwkJcmV0dXJuOworCiAJ c3Bpbl9sb2NrX2lycSgmZ3QtPmlycV9sb2NrKTsKIAlXQVJOX09OX09OQ0UocnBzLT5wbV9paXIp OwogCkBAIC0zNzYsNyArMzc5LDEyIEBAIHZvaWQgZ2VuNl9lbmFibGVfcnBzX2ludGVycnVwdHMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiB1MzIgZ2VuNl9zYW5pdGl6ZV9y cHNfcG1fbWFzayhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTMyIG1hc2sp CiB7Ci0JcmV0dXJuIG1hc2sgJiB+aTkxNS0+Z3RfcG0ucnBzLnBtX2ludHJtc2tfbWJ6OworCWNv bnN0IHN0cnVjdCBpbnRlbF9ycHMgKnJwcyA9ICZpOTE1LT5ndF9wbS5ycHM7CisKKwlpZiAoIXJw cy0+aW50ZXJydXB0c19lbmFibGVkKQorCQlyZXR1cm4gfjB1OworCisJcmV0dXJuIG1hc2sgJiB+ cnBzLT5wbV9pbnRybXNrX21iejsKIH0KIAogdm9pZCBnZW42X2Rpc2FibGVfcnBzX2ludGVycnVw dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtNDMxNCw3ICs0MzIyLDkg QEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJCWRldl9wcml2LT5ndC5wbV9ndWNfZXZlbnRzID0gR1VDX0lOVFJfR1VDMkhPU1QgPDwgMTY7 CiAKIAkvKiBMZXQncyB0cmFjayB0aGUgZW5hYmxlZCBycHMgZXZlbnRzICovCi0JaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpKQorCWlmIChUSUdFUkxBS0VfTk9fSVJRKGRldl9wcml2KSkKKwkJ ZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMgPSAwOworCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2 X3ByaXYpKQogCQkvKiBXYUdzdlJDMFJlc2lkZW5jeU1ldGhvZDp2bHYgKi8KIAkJZGV2X3ByaXYt PnBtX3Jwc19ldmVudHMgPSBHRU42X1BNX1JQX1VQX0VJX0VYUElSRUQ7CiAJZWxzZQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGNpLmMKaW5kZXggMWNiZjM5OThiMzYxLi44NmJlMTBjYzZhNzAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9wY2kuYwpAQCAtODA2LDcgKzgwNiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfdGlnZXJsYWtlXzEyX2luZm8gPSB7CiAJLmRpc3BsYXku aGFzX21vZHVsYXJfZmlhID0gMSwKIAkuZW5naW5lX21hc2sgPQogCQlCSVQoUkNTMCkgfCBCSVQo QkNTMCkgfCBCSVQoVkVDUzApIHwgQklUKFZDUzApIHwgQklUKFZDUzIpLAotCS5oYXNfcnBzID0g ZmFsc2UsIC8qIFhYWCBkaXNhYmxlZCBmb3IgZGVidWdnaW5nICovCiB9OwogCiAjdW5kZWYgR0VO CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lycV9wb2xsLmggYi9pbmNsdWRlL2xpbnV4L2ly cV9wb2xsLmgKaW5kZXggMTZhYWVjY2I2NWNiLi5kNjZkMGUwZTkzNzkgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvaXJxX3BvbGwuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lycV9wb2xsLmgKQEAg LTIsMTkgKzIsMjIgQEAKICNpZm5kZWYgSVJRX1BPTExfSAogI2RlZmluZSBJUlFfUE9MTF9ICiAK KyNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKIHN0 cnVjdCBpcnFfcG9sbDsKIHR5cGVkZWYgaW50IChpcnFfcG9sbF9mbikoc3RydWN0IGlycV9wb2xs ICosIGludCk7CiAKIHN0cnVjdCBpcnFfcG9sbCB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0Owog CXVuc2lnbmVkIGxvbmcgc3RhdGU7CisJYXRvbWljX3QgY291bnQ7CiAJaW50IHdlaWdodDsKIAlp cnFfcG9sbF9mbiAqcG9sbDsKIH07CiAKIGVudW0gewogCUlSUV9QT0xMX0ZfU0NIRUQJPSAwLAot CUlSUV9QT0xMX0ZfRElTQUJMRQk9IDEsCiB9OwogCiBleHRlcm4gdm9pZCBpcnFfcG9sbF9zY2hl ZChzdHJ1Y3QgaXJxX3BvbGwgKik7CkBAIC0yMyw0ICsyNiwxNCBAQCBleHRlcm4gdm9pZCBpcnFf cG9sbF9jb21wbGV0ZShzdHJ1Y3QgaXJxX3BvbGwgKik7CiBleHRlcm4gdm9pZCBpcnFfcG9sbF9l bmFibGUoc3RydWN0IGlycV9wb2xsICopOwogZXh0ZXJuIHZvaWQgaXJxX3BvbGxfZGlzYWJsZShz dHJ1Y3QgaXJxX3BvbGwgKik7CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBpcnFfcG9sbF9hY3RpdmF0 ZShzdHJ1Y3QgaXJxX3BvbGwgKmlvcCkKK3sKKwlhdG9taWNfaW5jKCZpb3AtPmNvdW50KTsKK30K Kworc3RhdGljIGlubGluZSB2b2lkIGlycV9wb2xsX2RlYWN0aXZhdGUoc3RydWN0IGlycV9wb2xs ICppb3ApCit7CisJYXRvbWljX2RlYygmaW9wLT5jb3VudCk7Cit9CisKICNlbmRpZgpkaWZmIC0t Z2l0IGEvbGliL2lycV9wb2xsLmMgYi9saWIvaXJxX3BvbGwuYwppbmRleCAyZjE3YjQ4OGQ1OGUu LjU5NDA4ZmE3NWZhNiAxMDA2NDQKLS0tIGEvbGliL2lycV9wb2xsLmMKKysrIGIvbGliL2lycV9w b2xsLmMKQEAgLTI4LDggKzI4LDkgQEAgdm9pZCBpcnFfcG9sbF9zY2hlZChzdHJ1Y3QgaXJxX3Bv bGwgKmlvcCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JaWYgKHRlc3RfYml0KElSUV9Q T0xMX0ZfRElTQUJMRSwgJmlvcC0+c3RhdGUpKQorCWlmICghYXRvbWljX3JlYWQoJmlvcC0+Y291 bnQpKQogCQlyZXR1cm47CisKIAlpZiAodGVzdF9hbmRfc2V0X2JpdChJUlFfUE9MTF9GX1NDSEVE LCAmaW9wLT5zdGF0ZSkpCiAJCXJldHVybjsKIApAQCAtMTIyLDcgKzEyMyw3IEBAIHN0YXRpYyB2 b2lkIF9fbGF0ZW50X2VudHJvcHkgaXJxX3BvbGxfc29mdGlycShzdHJ1Y3Qgc29mdGlycV9hY3Rp b24gKmgpCiAJCSAqIG1vdmUgdGhlIGluc3RhbmNlIGFyb3VuZCBvbiB0aGUgbGlzdCBhdC13aWxs LgogCQkgKi8KIAkJaWYgKHdvcmsgPj0gd2VpZ2h0KSB7Ci0JCQlpZiAodGVzdF9iaXQoSVJRX1BP TExfRl9ESVNBQkxFLCAmaW9wLT5zdGF0ZSkpCisJCQlpZiAoIWF0b21pY19yZWFkKCZpb3AtPmNv dW50KSkKIAkJCQlfX2lycV9wb2xsX2NvbXBsZXRlKGlvcCk7CiAJCQllbHNlCiAJCQkJbGlzdF9t b3ZlX3RhaWwoJmlvcC0+bGlzdCwgbGlzdCk7CkBAIC0xNDQsMTAgKzE0NSw5IEBAIHN0YXRpYyB2 b2lkIF9fbGF0ZW50X2VudHJvcHkgaXJxX3BvbGxfc29mdGlycShzdHJ1Y3Qgc29mdGlycV9hY3Rp b24gKmgpCiAgKiovCiB2b2lkIGlycV9wb2xsX2Rpc2FibGUoc3RydWN0IGlycV9wb2xsICppb3Ap CiB7Ci0Jc2V0X2JpdChJUlFfUE9MTF9GX0RJU0FCTEUsICZpb3AtPnN0YXRlKTsKKwlhdG9taWNf c2V0X3JlbGVhc2UoJmlvcC0+Y291bnQsIDApOwogCXdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KElS UV9QT0xMX0ZfU0NIRUQsICZpb3AtPnN0YXRlKSkKIAkJbXNsZWVwKDEpOwotCWNsZWFyX2JpdChJ UlFfUE9MTF9GX0RJU0FCTEUsICZpb3AtPnN0YXRlKTsKIH0KIEVYUE9SVF9TWU1CT0woaXJxX3Bv bGxfZGlzYWJsZSk7CiAKQEAgLTE2MSw5ICsxNjEsNyBAQCBFWFBPUlRfU1lNQk9MKGlycV9wb2xs X2Rpc2FibGUpOwogICoqLwogdm9pZCBpcnFfcG9sbF9lbmFibGUoc3RydWN0IGlycV9wb2xsICpp b3ApCiB7Ci0JQlVHX09OKCF0ZXN0X2JpdChJUlFfUE9MTF9GX1NDSEVELCAmaW9wLT5zdGF0ZSkp OwotCXNtcF9tYl9fYmVmb3JlX2F0b21pYygpOwotCWNsZWFyX2JpdF91bmxvY2soSVJRX1BPTExf Rl9TQ0hFRCwgJmlvcC0+c3RhdGUpOworCWlycV9wb2xsX2FjdGl2YXRlKGlvcCk7CiB9CiBFWFBP UlRfU1lNQk9MKGlycV9wb2xsX2VuYWJsZSk7CiAKQEAgLTE4Miw2ICsxODAsNyBAQCB2b2lkIGly cV9wb2xsX2luaXQoc3RydWN0IGlycV9wb2xsICppb3AsIGludCB3ZWlnaHQsIGlycV9wb2xsX2Zu ICpwb2xsX2ZuKQogCUlOSVRfTElTVF9IRUFEKCZpb3AtPmxpc3QpOwogCWlvcC0+d2VpZ2h0ID0g d2VpZ2h0OwogCWlvcC0+cG9sbCA9IHBvbGxfZm47CisJYXRvbWljX3NldCgmaW9wLT5jb3VudCwg MSk7CiB9CiBFWFBPUlRfU1lNQk9MKGlycV9wb2xsX2luaXQpOwogCi0tIAoyLjIzLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==