From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 2/2] drm/i915: Filter out spurious execlists context-switch interrupts Date: Mon, 23 Oct 2017 21:06:16 +0100 Message-ID: <20171023200616.16714-2-chris@chris-wilson.co.uk> References: <20171023200616.16714-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 000136E03E for ; Mon, 23 Oct 2017 20:07:15 +0000 (UTC) In-Reply-To: <20171023200616.16714-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 Cc: Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org QmFjayBpbiBjb21taXQgYTRiMmIwMTUyM2E4ICgiZHJtL2k5MTU6IERvbid0IG1hcmsgYW4gZXhl Y2xpc3RzCmNvbnRleHQtc3dpdGNoIHdoZW4gaWRsZSIpIHdlIG5vdGljZWQgdGhlIHByZXNlbmNl IG9mIGxhdGUKY29udGV4dC1zd2l0Y2ggaW50ZXJydXB0cy4gV2Ugd2VyZSBhYmxlIHRvIGZpbHRl ciB0aG9zZSBvdXQgYnkgbG9va2luZwphdCB3aGV0aGVyIHRoZSBFTFNQIHJlbWFpbmVkIGFjdGl2 ZSwgYnV0IGluIGNvbW1pdCBiZWVjZWM5MDE3OTAKKCJkcm0vaTkxNS9leGVjbGlzdHM6IFByZWVt cHRpb24hIikgdGhhdCBiZWNhbWUgcHJvYmxlbWF0aWMgYXMgd2Ugbm93CmFudGljaXBhdGUgcmVj ZWl2aW5nIGEgY29udGV4dC1zd2l0Y2ggZXZlbnQgZm9yIHByZWVtcHRpb24gd2hpbGUgRUxTUApt YXkgYmUgZW1wdHkuIFRvIHJlc3RvcmUgdGhlIHNwdXJpb3VzIGludGVycnVwdCBzdXBwcmVzc2lv biwgYWRkIGEKY291bnRlciBmb3IgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBwZW5kaW5nIGNvbnRl eHQtc3dpdGNoZXMgYW5kIHNraXAgaWYKd2UgZG8gbm90IG5lZWQgdG8gaGFuZGxlIHRoaXMgaW50 ZXJydXB0IHRvIG1ha2UgZm9yd2FyZCBwcm9ncmVzcy4KCnYyOiBEb24ndCBmb3JnZXQgdG8gc3dp dGNoIG9uIGZvciBwcmVlbXB0Lgp2MzogUmVkdWNlIHRoZSBjb3VudGVyIHRvIGEgb24vb2ZmIGJv b2xlYW4gdHJhY2tlci4gRGVjbGFyZSB0aGUgSFcgYXMKYWN0aXZlIHdoZW4gd2UgZmlyc3Qgc3Vi bWl0LCBhbmQgaWRsZSBhZnRlciB0aGUgZmluYWwgY29tcGxldGlvbiBldmVudAood2l0aCB3aGlj aCB3ZSBjb25maXJtIHRoZSBIVyBzYXlzIGl0IGlzIGlkbGUpLCBhbmQgdHJhY2sgZWFjaCBzb3Vy Y2UKb2YgYWN0aXZpdHkgc2VwYXJhdGVseS4gV2l0aCBhIGZpbml0ZSBudW1iZXIgb2Ygc291cmNl cywgaXQgc2hvdWxkIHVzCmRlYnVnIHdoaWNoIGdldHMgc3R1Y2suCgpGaXhlczogYmVlY2VjOTAx NzkwICgiZHJtL2k5MTUvZXhlY2xpc3RzOiBQcmVlbXB0aW9uISIpClNpZ25lZC1vZmYtYnk6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogTWljaGFsIFdpbmlhcnNr aSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtv LnVyc3VsaW5AaW50ZWwuY29tPgpDYzogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJA aW50ZWwuY29tPgpDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+CkNj OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgIDMgKysrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgICAgfCAgNiArKysrLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgICB8ICA1ICsrKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysr KystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgICB8IDM0 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogNSBmaWxlcyBjaGFuZ2VkLCA2MiBpbnNl cnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1 Y19zdWJtaXNzaW9uLmMKaW5kZXggYTJlODExNGI3MzlkLi5mODRjMjY3NzI4ZmQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTYxMCw2ICs2MTAsNyBA QCBzdGF0aWMgdm9pZCBpOTE1X2d1Y19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIAlleGVjbGlzdHMtPmZpcnN0ID0gcmI7CiAJaWYgKHN1Ym1pdCkgewogCQlwb3J0X2Fz c2lnbihwb3J0LCBsYXN0KTsKKwkJZXhlY2xpc3RzX3NldF9hY3RpdmUoZXhlY2xpc3RzLCBFWEVD TElTVFNfQUNUSVZFX1VTRVIpOwogCQlpOTE1X2d1Y19zdWJtaXQoZW5naW5lKTsKIAl9CiAJc3Bp bl91bmxvY2tfaXJxKCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKQEAgLTYzMyw2ICs2MzQsOCBA QCBzdGF0aWMgdm9pZCBpOTE1X2d1Y19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCiAK IAkJcnEgPSBwb3J0X3JlcXVlc3QoJnBvcnRbMF0pOwogCX0KKwlpZiAoIXJxKQorCQlleGVjbGlz dHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9VU0VSKTsKIAogCWlm ICghcG9ydF9pc3NldChsYXN0X3BvcnQpKQogCQlpOTE1X2d1Y19kZXF1ZXVlKGVuZ2luZSk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCBiMTI5NmE1NWMxZTQuLmY4MjA1ODQxODY4YiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0xMzg4LDggKzEzODgsMTAgQEAgZ2VuOF9jc19pcnFf aGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBpaXIsIGludCB0ZXN0 X3NoaWZ0KQogCWJvb2wgdGFza2xldCA9IGZhbHNlOwogCiAJaWYgKGlpciAmIChHVF9DT05URVhU X1NXSVRDSF9JTlRFUlJVUFQgPDwgdGVzdF9zaGlmdCkpIHsKLQkJX19zZXRfYml0KEVOR0lORV9J UlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpOwotCQl0YXNrbGV0ID0gdHJ1ZTsKKwkJ aWYgKFJFQURfT05DRShlbmdpbmUtPmV4ZWNsaXN0cy5hY3RpdmUpKSB7CisJCQlfX3NldF9iaXQo RU5HSU5FX0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCk7CisJCQl0YXNrbGV0ID0g dHJ1ZTsKKwkJfQogCX0KIAogCWlmIChpaXIgJiAoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8 IHRlc3Rfc2hpZnQpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4 IGE0N2E5YzZiZWE1Mi4uYWI1YmY0ZTJlMjhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYwpAQCAtMTU0OCw4ICsxNTQ4LDggQEAgYm9vbCBpbnRlbF9lbmdpbmVfaXNfaWRs ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaWYgKHRlc3RfYml0KEVOR0lORV9J UlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpKQogCQlyZXR1cm4gZmFsc2U7CiAKLQkv KiBCb3RoIHBvcnRzIGRyYWluZWQsIG5vIG1vcmUgRUxTUCBzdWJtaXNzaW9uPyAqLwotCWlmIChw b3J0X3JlcXVlc3QoJmVuZ2luZS0+ZXhlY2xpc3RzLnBvcnRbMF0pKQorCS8qIFdhaXRpbmcgdG8g ZHJhaW4gRUxTUD8gKi8KKwlpZiAoUkVBRF9PTkNFKGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSkp CiAJCXJldHVybiBmYWxzZTsKIAogCS8qIEVMU1AgaXMgZW1wdHksIGJ1dCB0aGVyZSBhcmUgcmVh ZHkgcmVxdWVzdHM/ICovCkBAIC0xNzQ5LDYgKzE3NDksNyBAQCB2b2lkIGludGVsX2VuZ2luZV9k dW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgc3RydWN0IGRybV9wcmludGVyICpt KQogCQkJCQkgICBpZHgpOwogCQkJfQogCQl9CisJCWRybV9wcmludGYobSwgIlx0XHRIVyBhY3Rp dmU/IDB4JXhcbiIsIGV4ZWNsaXN0cy0+YWN0aXZlKTsKIAkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJ fSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID4gNikgewogCQlkcm1fcHJpbnRmKG0sICJc dFBQX0RJUl9CQVNFOiAweCUwOHhcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDdm NDVkZDdkYzNlNS4uMjMzYzk5MmE4ODZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAt NTc1LDcgKzU3NSw4IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCSAqIHRoZSBzdGF0ZSBvZiB0aGUgR1BVIGlzIGtub3du IChpZGxlKS4KIAkJCSAqLwogCQkJaW5qZWN0X3ByZWVtcHRfY29udGV4dChlbmdpbmUpOwotCQkJ ZXhlY2xpc3RzLT5wcmVlbXB0ID0gdHJ1ZTsKKwkJCWV4ZWNsaXN0c19zZXRfYWN0aXZlKGV4ZWNs aXN0cywKKwkJCQkJICAgICBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpOwogCQkJZ290byB1bmxv Y2s7CiAJCX0gZWxzZSB7CiAJCQkvKgpAQCAtNjgzLDggKzY4NCwxMCBAQCBzdGF0aWMgdm9pZCBl eGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB1bmxvY2s6 CiAJc3Bpbl91bmxvY2tfaXJxKCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKIAotCWlmIChzdWJt aXQpCisJaWYgKHN1Ym1pdCkgeworCQlleGVjbGlzdHNfc2V0X2FjdGl2ZShleGVjbGlzdHMsIEVY RUNMSVNUU19BQ1RJVkVfVVNFUik7CiAJCWV4ZWNsaXN0c19zdWJtaXRfcG9ydHMoZW5naW5lKTsK Kwl9CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC02OTYsNiArNjk5LDcgQEAgZXhlY2xpc3RfY2FuY2Vs X3BvcnRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykK IAl3aGlsZSAobnVtX3BvcnRzLS0gJiYgcG9ydF9pc3NldChwb3J0KSkgewogCQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJxID0gcG9ydF9yZXF1ZXN0KHBvcnQpOwogCisJCUdFTV9CVUdf T04oIWV4ZWNsaXN0cy0+YWN0aXZlKTsKIAkJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5n ZShycSwgSU5URUxfQ09OVEVYVF9TQ0hFRFVMRV9QUkVFTVBURUQpOwogCQlpOTE1X2dlbV9yZXF1 ZXN0X3B1dChycSk7CiAKQEAgLTg2MSwxNSArODY1LDIxIEBAIHN0YXRpYyB2b2lkIGludGVsX2xy Y19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCiAJCQkJdW53aW5kX2luY29tcGxldGVf cmVxdWVzdHMoZW5naW5lKTsKIAkJCQlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUt PmxvY2spOwogCi0JCQkJR0VNX0JVR19PTighZXhlY2xpc3RzLT5wcmVlbXB0KTsKLQkJCQlleGVj bGlzdHMtPnByZWVtcHQgPSBmYWxzZTsKKwkJCQlHRU1fQlVHX09OKCFleGVjbGlzdHNfaXNfYWN0 aXZlKGV4ZWNsaXN0cywKKwkJCQkJCQkJRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKSk7CisJCQkJ ZXhlY2xpc3RzX2NsZWFyX2FjdGl2ZShleGVjbGlzdHMsCisJCQkJCQkgICAgICAgRVhFQ0xJU1RT X0FDVElWRV9QUkVFTVBUKTsKIAkJCQljb250aW51ZTsKIAkJCX0KIAogCQkJaWYgKHN0YXR1cyAm IEdFTjhfQ1RYX1NUQVRVU19QUkVFTVBURUQgJiYKLQkJCSAgICBleGVjbGlzdHMtPnByZWVtcHQp CisJCQkgICAgZXhlY2xpc3RzX2lzX2FjdGl2ZShleGVjbGlzdHMsCisJCQkJCSAgICAgICBFWEVD TElTVFNfQUNUSVZFX1BSRUVNUFQpKQogCQkJCWNvbnRpbnVlOwogCisJCQlHRU1fQlVHX09OKCFl eGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywKKwkJCQkJCQlFWEVDTElTVFNfQUNUSVZFX1VT RVIpKTsKKwogCQkJLyogQ2hlY2sgdGhlIGNvbnRleHQvZGVzYyBpZCBmb3IgdGhpcyBldmVudCBt YXRjaGVzICovCiAJCQlHRU1fREVCVUdfQlVHX09OKGJ1ZlsyICogaGVhZCArIDFdICE9IHBvcnQt PmNvbnRleHRfaWQpOwogCkBAIC04OTIsNiArOTAyLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfbHJj X2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKIAkJCS8qIEFmdGVyIHRoZSBmaW5hbCBl bGVtZW50LCB0aGUgaHcgc2hvdWxkIGJlIGlkbGUgKi8KIAkJCUdFTV9CVUdfT04ocG9ydF9jb3Vu dChwb3J0KSA9PSAwICYmCiAJCQkJICAgIShzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQUNUSVZF X0lETEUpKTsKKwkJCWlmIChwb3J0X2NvdW50KHBvcnQpID09IDApCisJCQkJZXhlY2xpc3RzX2Ns ZWFyX2FjdGl2ZShleGVjbGlzdHMsCisJCQkJCQkgICAgICAgRVhFQ0xJU1RTX0FDVElWRV9VU0VS KTsKIAkJfQogCiAJCWlmIChoZWFkICE9IGV4ZWNsaXN0cy0+Y3NiX2hlYWQpIHsKQEAgLTkwMSw3 ICs5MTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIodW5zaWduZWQgbG9u ZyBkYXRhKQogCQl9CiAJfQogCi0JaWYgKCFleGVjbGlzdHMtPnByZWVtcHQpCisJaWYgKCFleGVj bGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKSkKIAkJ ZXhlY2xpc3RzX2RlcXVldWUoZW5naW5lKTsKIAogCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0 KGRldl9wcml2LCBleGVjbGlzdHMtPmZ3X2RvbWFpbnMpOwpAQCAtMTQ2MCw3ICsxNDczLDcgQEAg c3RhdGljIGludCBnZW44X2luaXRfY29tbW9uX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogCQkgICBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgZW5naW5lLT5pcnFf c2hpZnQpOwogCWNsZWFyX2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5lLT5pcnFfcG9z dGVkKTsKIAlleGVjbGlzdHMtPmNzYl9oZWFkID0gLTE7Ci0JZXhlY2xpc3RzLT5wcmVlbXB0ID0g ZmFsc2U7CisJZXhlY2xpc3RzLT5hY3RpdmUgPSAwOwogCiAJLyogQWZ0ZXIgYSBHUFUgcmVzZXQs IHdlIG1heSBoYXZlIHJlcXVlc3RzIHRvIHJlcGxheSAqLwogCWlmICghaTkxNV9tb2RwYXJhbXMu ZW5hYmxlX2d1Y19zdWJtaXNzaW9uICYmIGV4ZWNsaXN0cy0+Zmlyc3QpCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggMTcxODZmMDY3NDA4Li41MWJjNzA0YmY0MTMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTI0MSw5ICsyNDEs MTcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgewogCX0gcG9ydFtFWEVDTElTVF9N QVhfUE9SVFNdOwogCiAJLyoqCi0JICogQHByZWVtcHQ6IGFyZSB3ZSBjdXJyZW50bHkgaGFuZGxp bmcgYSBwcmVlbXB0aW5nIGNvbnRleHQgc3dpdGNoPworCSAqIEBhY3RpdmU6IGlzIHRoZSBIVyBh Y3RpdmU/IFdlIGNvbnNpZGVyIHRoZSBIVyBhcyBhY3RpdmUgYWZ0ZXIKKwkgKiBzdWJtaXR0ZWQg YW55IGNvbnRleHQgZm9yIGV4ZWN1dGlvbiB1bnRpbCB3ZSBoYXZlIHNlZW4gdGhlIGxhc3QKKwkg KiBjb250ZXh0IGNvbXBsZXRpb24gZXZlbnQuIEFmdGVyIHRoYXQsIHdlIGRvIG5vdCBleHBlY3Qg YW55IG1vcmUKKwkgKiBldmVudHMgdW50aWwgd2Ugc3VibWl0LCBhbmQgc28gY2FuIHBhcmsgdGhl IEhXLgorCSAqCisJICogQXMgd2UgaGF2ZSBhIHNtYWxsIG51bWJlciBvZiBkaWZmZXJlbnQgc291 cmNlcyBmcm9tIHdoaWNoIHdlIGZlZWQKKwkgKiB0aGUgSFcsIHdlIHRyYWNrIHRoZSBzdGF0ZSBv ZiBlYWNoIGluc2lkZSBhIHNpbmdsZSBiaXRmaWVsZC4KIAkgKi8KLQlib29sIHByZWVtcHQ7CisJ dW5zaWduZWQgaW50IGFjdGl2ZTsKKyNkZWZpbmUgRVhFQ0xJU1RTX0FDVElWRV9VU0VSIDAKKyNk ZWZpbmUgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUIDEKIAogCS8qKgogCSAqIEBwb3J0X21hc2s6 IG51bWJlciBvZiBleGVjbGlzdCBwb3J0cyAtIDEKQEAgLTUyNSw2ICs1MzMsMjcgQEAgc3RydWN0 IGludGVsX2VuZ2luZV9jcyB7CiAJdTMyICgqZ2V0X2NtZF9sZW5ndGhfbWFzaykodTMyIGNtZF9o ZWFkZXIpOwogfTsKIAorc3RhdGljIGlubGluZSB2b2lkCitleGVjbGlzdHNfc2V0X2FjdGl2ZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzLAorCQkgICAgIHVuc2lnbmVk IGludCBiaXQpCit7CisJX19zZXRfYml0KGJpdCwgKHVuc2lnbmVkIGxvbmcgKikmZXhlY2xpc3Rz LT5hY3RpdmUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK2V4ZWNsaXN0c19jbGVhcl9hY3Rp dmUoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cywKKwkJICAgICAgIHVu c2lnbmVkIGludCBiaXQpCit7CisJX19jbGVhcl9iaXQoYml0LCAodW5zaWduZWQgbG9uZyAqKSZl eGVjbGlzdHMtPmFjdGl2ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbAorZXhlY2xpc3RzX2lz X2FjdGl2ZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzLAor CQkgICAgdW5zaWduZWQgaW50IGJpdCkKK3sKKwlyZXR1cm4gdGVzdF9iaXQoYml0LCAodW5zaWdu ZWQgbG9uZyAqKSZleGVjbGlzdHMtPmFjdGl2ZSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdW5zaWdu ZWQgaW50CiBleGVjbGlzdHNfbnVtX3BvcnRzKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhl Y2xpc3RzICogY29uc3QgZXhlY2xpc3RzKQogewpAQCAtNTM4LDYgKzU2Nyw3IEBAIGV4ZWNsaXN0 c19wb3J0X2NvbXBsZXRlKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhl Y2xpc3RzLAogCWNvbnN0IHVuc2lnbmVkIGludCBtID0gZXhlY2xpc3RzLT5wb3J0X21hc2s7CiAK IAlHRU1fQlVHX09OKHBvcnRfaW5kZXgocG9ydCwgZXhlY2xpc3RzKSAhPSAwKTsKKwlHRU1fQlVH X09OKCFleGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9VU0VS KSk7CiAKIAltZW1tb3ZlKHBvcnQsIHBvcnQgKyAxLCBtICogc2l6ZW9mKHN0cnVjdCBleGVjbGlz dF9wb3J0KSk7CiAJbWVtc2V0KHBvcnQgKyBtLCAwLCBzaXplb2Yoc3RydWN0IGV4ZWNsaXN0X3Bv cnQpKTsKLS0gCjIuMTUuMC5yYzEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=