From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 06/33] drm/i915: Make i915_check_and_clear_faults take intel_gt Date: Tue, 18 Jun 2019 14:03:18 +0100 Message-ID: <20190618130345.6135-7-tvrtko.ursulin@linux.intel.com> References: <20190618130345.6135-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6B7506E174 for ; Tue, 18 Jun 2019 13:03:58 +0000 (UTC) In-Reply-To: <20190618130345.6135-1-tvrtko.ursulin@linux.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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkNvbnRpbnVp bmcgdGhlIGNvbnZlcnNpb24gYW5kIGVsaW1pbmF0aW9uIG9mIGltcGxpY2l0IGRldl9wcml2LgoK U2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K U3VnZ2VzdGVkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ClJldmll d2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyB8ICAgNCArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYyAgICAgICAgfCAxMjkgKysrKysrKysrKysrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuaCAgICAgICAgfCAgIDUgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyAgICAgfCAxMjYgKy0tLS0tLS0t LS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5oICAgICB8 ICAgMiAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICB8ICAgMiAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgfCAgIDUgKy0KIDcg ZmlsZXMgY2hhbmdlZCwgMTQzIGluc2VydGlvbnMoKyksIDEzMCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDg5ODY5Mjk4OTMxMy4u ODBmZjQ3NWY4ZDUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3Mu YwpAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAorI2luY2x1ZGUg Imd0L2ludGVsX2d0LmgiCisKICNpbmNsdWRlICJpbnRlbF9lbmdpbmUuaCIKICNpbmNsdWRlICJp bnRlbF9lbmdpbmVfcG0uaCIKICNpbmNsdWRlICJpbnRlbF9jb250ZXh0LmgiCkBAIC00NTMsNyAr NDU1LDcgQEAgaW50IGludGVsX2VuZ2luZXNfaW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQogCiAJUlVOVElNRV9JTkZPKGk5MTUpLT5udW1fZW5naW5lcyA9IGh3ZWlnaHQz MihtYXNrKTsKIAotCWk5MTVfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhpOTE1KTsKKwlpbnRlbF9n dF9jaGVja19hbmRfY2xlYXJfZmF1bHRzKCZpOTE1LT5ndCk7CiAKIAlpbnRlbF9zZXR1cF9lbmdp bmVfY2FwYWJpbGl0aWVzKGk5MTUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYwppbmRl eCAxMmViZTdhMmExZTkuLjZmNmY2MWNjMTQyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZ3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9n dC5jCkBAIC04LDYgKzgsNyBAQAogCiAjaW5jbHVkZSAiaW50ZWxfZ3QuaCIKICNpbmNsdWRlICJp bnRlbF9ndF9wbS5oIgorI2luY2x1ZGUgImludGVsX3VuY29yZS5oIgogCiB2b2lkIGludGVsX2d0 X2luaXRfZWFybHkoc3RydWN0IGludGVsX2d0ICpndCwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCiB7CkBAIC0yMSwzICsyMiwxMzEgQEAgdm9pZCBpbnRlbF9ndF9pbml0X2Vhcmx5KHN0 cnVjdCBpbnRlbF9ndCAqZ3QsIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiAJaW50 ZWxfZ3RfcG1faW5pdF9lYXJseShndCk7CiB9CisKK3N0YXRpYyB2b2lkIHJtd19zZXQoc3RydWN0 IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IHJlZywgdTMyIHNldCkKK3sKKwlpbnRl bF91bmNvcmVfcm13KHVuY29yZSwgcmVnLCAwLCBzZXQpOworfQorCitzdGF0aWMgdm9pZCBybXdf Y2xlYXIoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IHJlZywgdTMyIGNs cikKK3sKKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgcmVnLCBjbHIsIDApOworfQorCitzdGF0 aWMgdm9pZCBjbGVhcl9yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsIGk5MTVf cmVnX3QgcmVnKQoreworCWludGVsX3VuY29yZV9ybXcodW5jb3JlLCByZWcsIDAsIDApOworfQor CitzdGF0aWMgdm9pZCBnZW44X2NsZWFyX2VuZ2luZV9lcnJvcl9yZWdpc3RlcihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJR0VONl9SSU5HX0ZBVUxUX1JFR19STVcoZW5naW5l LCBSSU5HX0ZBVUxUX1ZBTElELCAwKTsKKwlHRU42X1JJTkdfRkFVTFRfUkVHX1BPU1RJTkdfUkVB RChlbmdpbmUpOworfQorCit2b2lkCitpbnRlbF9ndF9jbGVhcl9lcnJvcl9yZWdpc3RlcnMoc3Ry dWN0IGludGVsX2d0ICpndCwKKwkJCSAgICAgICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9t YXNrKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7CisJc3Ry dWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKKwl1MzIgZWlyOworCisJaWYg KCFJU19HRU4oaTkxNSwgMikpCisJCWNsZWFyX3JlZ2lzdGVyKHVuY29yZSwgUEdUQkxfRVIpOwor CisJaWYgKElOVEVMX0dFTihpOTE1KSA8IDQpCisJCWNsZWFyX3JlZ2lzdGVyKHVuY29yZSwgSVBF SVIoUkVOREVSX1JJTkdfQkFTRSkpOworCWVsc2UKKwkJY2xlYXJfcmVnaXN0ZXIodW5jb3JlLCBJ UEVJUl9JOTY1KTsKKworCWNsZWFyX3JlZ2lzdGVyKHVuY29yZSwgRUlSKTsKKwllaXIgPSBpbnRl bF91bmNvcmVfcmVhZCh1bmNvcmUsIEVJUik7CisJaWYgKGVpcikgeworCQkvKgorCQkgKiBzb21l IGVycm9ycyBtaWdodCBoYXZlIGJlY29tZSBzdHVjaywKKwkJICogbWFzayB0aGVtLgorCQkgKi8K KwkJRFJNX0RFQlVHX0RSSVZFUigiRUlSIHN0dWNrOiAweCUwOHgsIG1hc2tpbmdcbiIsIGVpcik7 CisJCXJtd19zZXQodW5jb3JlLCBFTVIsIGVpcik7CisJCWludGVsX3VuY29yZV93cml0ZSh1bmNv cmUsIEdFTjJfSUlSLAorCQkJCSAgIEk5MTVfTUFTVEVSX0VSUk9SX0lOVEVSUlVQVCk7CisJfQor CisJaWYgKElOVEVMX0dFTihpOTE1KSA+PSA4KSB7CisJCXJtd19jbGVhcih1bmNvcmUsIEdFTjhf UklOR19GQVVMVF9SRUcsIFJJTkdfRkFVTFRfVkFMSUQpOworCQlpbnRlbF91bmNvcmVfcG9zdGlu Z19yZWFkKHVuY29yZSwgR0VOOF9SSU5HX0ZBVUxUX1JFRyk7CisJfSBlbHNlIGlmIChJTlRFTF9H RU4oaTkxNSkgPj0gNikgeworCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJCWVu dW0gaW50ZWxfZW5naW5lX2lkIGlkOworCisJCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5l LCBpOTE1LCBlbmdpbmVfbWFzaywgaWQpCisJCQlnZW44X2NsZWFyX2VuZ2luZV9lcnJvcl9yZWdp c3RlcihlbmdpbmUpOworCX0KK30KKworc3RhdGljIHZvaWQgZ2VuNl9jaGVja19mYXVsdHMoc3Ry dWN0IGludGVsX2d0ICpndCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJ ZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJdTMyIGZhdWx0OworCisJZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJCWZhdWx0ID0gR0VONl9SSU5HX0ZBVUxUX1JFR19S RUFEKGVuZ2luZSk7CisJCWlmIChmYXVsdCAmIFJJTkdfRkFVTFRfVkFMSUQpIHsKKwkJCURSTV9E RUJVR19EUklWRVIoIlVuZXhwZWN0ZWQgZmF1bHRcbiIKKwkJCQkJICJcdEFkZHI6IDB4JTA4bHhc biIKKwkJCQkJICJcdEFkZHJlc3Mgc3BhY2U6ICVzXG4iCisJCQkJCSAiXHRTb3VyY2UgSUQ6ICVk XG4iCisJCQkJCSAiXHRUeXBlOiAlZFxuIiwKKwkJCQkJIGZhdWx0ICYgUEFHRV9NQVNLLAorCQkJ CQkgZmF1bHQgJiBSSU5HX0ZBVUxUX0dUVFNFTF9NQVNLID8gIkdHVFQiIDogIlBQR1RUIiwKKwkJ CQkJIFJJTkdfRkFVTFRfU1JDSUQoZmF1bHQpLAorCQkJCQkgUklOR19GQVVMVF9GQVVMVF9UWVBF KGZhdWx0KSk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIGdlbjhfY2hlY2tfZmF1bHRzKHN0 cnVjdCBpbnRlbF9ndCAqZ3QpCit7CisJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3Qt PnVuY29yZTsKKwl1MzIgZmF1bHQgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEdFTjhfUklO R19GQVVMVF9SRUcpOworCisJaWYgKGZhdWx0ICYgUklOR19GQVVMVF9WQUxJRCkgeworCQl1MzIg ZmF1bHRfZGF0YTAsIGZhdWx0X2RhdGExOworCQl1NjQgZmF1bHRfYWRkcjsKKworCQlmYXVsdF9k YXRhMCA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgR0VOOF9GQVVMVF9UTEJfREFUQTApOwor CQlmYXVsdF9kYXRhMSA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgR0VOOF9GQVVMVF9UTEJf REFUQTEpOworCQlmYXVsdF9hZGRyID0gKCh1NjQpKGZhdWx0X2RhdGExICYgRkFVTFRfVkFfSElH SF9CSVRTKSA8PCA0NCkgfAorCQkJICAgICAoKHU2NClmYXVsdF9kYXRhMCA8PCAxMik7CisKKwkJ RFJNX0RFQlVHX0RSSVZFUigiVW5leHBlY3RlZCBmYXVsdFxuIgorCQkJCSAiXHRBZGRyOiAweCUw OHhfJTA4eFxuIgorCQkJCSAiXHRBZGRyZXNzIHNwYWNlOiAlc1xuIgorCQkJCSAiXHRFbmdpbmUg SUQ6ICVkXG4iCisJCQkJICJcdFNvdXJjZSBJRDogJWRcbiIKKwkJCQkgIlx0VHlwZTogJWRcbiIs CisJCQkJIHVwcGVyXzMyX2JpdHMoZmF1bHRfYWRkciksCisJCQkJIGxvd2VyXzMyX2JpdHMoZmF1 bHRfYWRkciksCisJCQkJIGZhdWx0X2RhdGExICYgRkFVTFRfR1RUX1NFTCA/ICJHR1RUIiA6ICJQ UEdUVCIsCisJCQkJIEdFTjhfUklOR19GQVVMVF9FTkdJTkVfSUQoZmF1bHQpLAorCQkJCSBSSU5H X0ZBVUxUX1NSQ0lEKGZhdWx0KSwKKwkJCQkgUklOR19GQVVMVF9GQVVMVF9UWVBFKGZhdWx0KSk7 CisJfQorfQorCit2b2lkIGludGVsX2d0X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoc3RydWN0IGlu dGVsX2d0ICpndCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd0LT5pOTE1 OworCisJLyogRnJvbSBHRU44IG9ud2FyZHMgd2Ugb25seSBoYXZlIG9uZSAnQWxsIEVuZ2luZSBG YXVsdCBSZWdpc3RlcicgKi8KKwlpZiAoSU5URUxfR0VOKGk5MTUpID49IDgpCisJCWdlbjhfY2hl Y2tfZmF1bHRzKGd0KTsKKwllbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPj0gNikKKwkJZ2VuNl9j aGVja19mYXVsdHMoZ3QpOworCWVsc2UKKwkJcmV0dXJuOworCisJaW50ZWxfZ3RfY2xlYXJfZXJy b3JfcmVnaXN0ZXJzKGd0LCBBTExfRU5HSU5FUyk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf Z3QuaAppbmRleCA3YTZmODE3OGQyZTUuLjE4NDdjMTg5YmQ3OCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9ndC5oCkBAIC03LDEwICs3LDE1IEBACiAjaWZuZGVmIF9fSU5URUxfR1RfXwogI2Rl ZmluZSBfX0lOVEVMX0dUX18KIAorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV90eXBlcy5oIgog I2luY2x1ZGUgImd0L2ludGVsX2d0X3R5cGVzLmgiCiAKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRl OwogCiB2b2lkIGludGVsX2d0X2luaXRfZWFybHkoc3RydWN0IGludGVsX2d0ICpndCwgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogCit2b2lkIGludGVsX2d0X2NoZWNrX2FuZF9jbGVh cl9mYXVsdHMoc3RydWN0IGludGVsX2d0ICpndCk7Cit2b2lkIGludGVsX2d0X2NsZWFyX2Vycm9y X3JlZ2lzdGVycyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAorCQkJCSAgICBpbnRlbF9lbmdpbmVfbWFz a190IGVuZ2luZV9tYXNrKTsKKwogI2VuZGlmIC8qIF9fSU5URUxfR1RfSF9fICovCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwppbmRleCA0YzQ3OGIzOGU0MjAuLjUyOTdiM2FjYjU2 ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCkBAIC0xNSw2ICsxNSw3IEBA CiAjaW5jbHVkZSAiaTkxNV9ncHVfZXJyb3IuaCIKICNpbmNsdWRlICJpOTE1X2lycS5oIgogI2lu Y2x1ZGUgImludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImludGVsX2d0LmgiCiAjaW5jbHVk ZSAiaW50ZWxfZ3RfcG0uaCIKICNpbmNsdWRlICJpbnRlbF9yZXNldC5oIgogCkBAIC0yNSwxNiAr MjYsNiBAQAogLyogWFhYIEhvdyB0byBoYW5kbGUgY29uY3VycmVudCBHR1RUIHVwZGF0ZXMgdXNp bmcgdGlsaW5nIHJlZ2lzdGVycz8gKi8KICNkZWZpbmUgUkVTRVRfVU5ERVJfU1RPUF9NQUNISU5F IDAKIAotc3RhdGljIHZvaWQgcm13X3NldChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsIGk5 MTVfcmVnX3QgcmVnLCB1MzIgc2V0KQotewotCWludGVsX3VuY29yZV9ybXcodW5jb3JlLCByZWcs IDAsIHNldCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJtd19jbGVhcihzdHJ1Y3QgaW50ZWxfdW5jb3Jl ICp1bmNvcmUsIGk5MTVfcmVnX3QgcmVnLCB1MzIgY2xyKQotewotCWludGVsX3VuY29yZV9ybXco dW5jb3JlLCByZWcsIGNsciwgMCk7Ci19Ci0KIHN0YXRpYyB2b2lkIHJtd19zZXRfZncoc3RydWN0 IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IHJlZywgdTMyIHNldCkKIHsKIAlpbnRl bF91bmNvcmVfcm13X2Z3KHVuY29yZSwgcmVnLCAwLCBzZXQpOwpAQCAtMTE1NywxMTkgKzExNDgs NiBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSwKIAkJa29iamVjdF91ZXZlbnRfZW52KGtvYmosIEtPQkpfQ0hBTkdFLCByZXNldF9k b25lX2V2ZW50KTsKIH0KIAotc3RhdGljIHZvaWQgY2xlYXJfcmVnaXN0ZXIoc3RydWN0IGludGVs X3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IHJlZykKLXsKLQlpbnRlbF91bmNvcmVfcm13KHVu Y29yZSwgcmVnLCAwLCAwKTsKLX0KLQotc3RhdGljIHZvaWQgZ2VuOF9jbGVhcl9lbmdpbmVfZXJy b3JfcmVnaXN0ZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotewotCUdFTjZfUklO R19GQVVMVF9SRUdfUk1XKGVuZ2luZSwgUklOR19GQVVMVF9WQUxJRCwgMCk7Ci0JR0VONl9SSU5H X0ZBVUxUX1JFR19QT1NUSU5HX1JFQUQoZW5naW5lKTsKLX0KLQotc3RhdGljIHZvaWQgY2xlYXJf ZXJyb3JfcmVnaXN0ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkJCSAgaW50 ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaykKLXsKLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1 bmNvcmUgPSAmaTkxNS0+dW5jb3JlOwotCXUzMiBlaXI7Ci0KLQlpZiAoIUlTX0dFTihpOTE1LCAy KSkKLQkJY2xlYXJfcmVnaXN0ZXIodW5jb3JlLCBQR1RCTF9FUik7Ci0KLQlpZiAoSU5URUxfR0VO KGk5MTUpIDwgNCkKLQkJY2xlYXJfcmVnaXN0ZXIodW5jb3JlLCBJUEVJUihSRU5ERVJfUklOR19C QVNFKSk7Ci0JZWxzZQotCQljbGVhcl9yZWdpc3Rlcih1bmNvcmUsIElQRUlSX0k5NjUpOwotCi0J Y2xlYXJfcmVnaXN0ZXIodW5jb3JlLCBFSVIpOwotCWVpciA9IGludGVsX3VuY29yZV9yZWFkKHVu Y29yZSwgRUlSKTsKLQlpZiAoZWlyKSB7Ci0JCS8qCi0JCSAqIHNvbWUgZXJyb3JzIG1pZ2h0IGhh dmUgYmVjb21lIHN0dWNrLAotCQkgKiBtYXNrIHRoZW0uCi0JCSAqLwotCQlEUk1fREVCVUdfRFJJ VkVSKCJFSVIgc3R1Y2s6IDB4JTA4eCwgbWFza2luZ1xuIiwgZWlyKTsKLQkJcm13X3NldCh1bmNv cmUsIEVNUiwgZWlyKTsKLQkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR0VOMl9JSVIsCi0J CQkJICAgSTkxNV9NQVNURVJfRVJST1JfSU5URVJSVVBUKTsKLQl9Ci0KLQlpZiAoSU5URUxfR0VO KGk5MTUpID49IDgpIHsKLQkJcm13X2NsZWFyKHVuY29yZSwgR0VOOF9SSU5HX0ZBVUxUX1JFRywg UklOR19GQVVMVF9WQUxJRCk7Ci0JCWludGVsX3VuY29yZV9wb3N0aW5nX3JlYWQodW5jb3JlLCBH RU44X1JJTkdfRkFVTFRfUkVHKTsKLQl9IGVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSA2KSB7 Ci0JCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQkJZW51bSBpbnRlbF9lbmdpbmVf aWQgaWQ7Ci0KLQkJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGk5MTUsIGVuZ2luZV9t YXNrLCBpZCkKLQkJCWdlbjhfY2xlYXJfZW5naW5lX2Vycm9yX3JlZ2lzdGVyKGVuZ2luZSk7Ci0J fQotfQotCi1zdGF0aWMgdm9pZCBnZW42X2NoZWNrX2ZhdWx0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWVu dW0gaW50ZWxfZW5naW5lX2lkIGlkOwotCXUzMiBmYXVsdDsKLQotCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2LCBpZCkgewotCQlmYXVsdCA9IEdFTjZfUklOR19GQVVMVF9SRUdfUkVB RChlbmdpbmUpOwotCQlpZiAoZmF1bHQgJiBSSU5HX0ZBVUxUX1ZBTElEKSB7Ci0JCQlEUk1fREVC VUdfRFJJVkVSKCJVbmV4cGVjdGVkIGZhdWx0XG4iCi0JCQkJCSAiXHRBZGRyOiAweCUwOGx4XG4i Ci0JCQkJCSAiXHRBZGRyZXNzIHNwYWNlOiAlc1xuIgotCQkJCQkgIlx0U291cmNlIElEOiAlZFxu IgotCQkJCQkgIlx0VHlwZTogJWRcbiIsCi0JCQkJCSBmYXVsdCAmIFBBR0VfTUFTSywKLQkJCQkJ IGZhdWx0ICYgUklOR19GQVVMVF9HVFRTRUxfTUFTSyA/ICJHR1RUIiA6ICJQUEdUVCIsCi0JCQkJ CSBSSU5HX0ZBVUxUX1NSQ0lEKGZhdWx0KSwKLQkJCQkJIFJJTkdfRkFVTFRfRkFVTFRfVFlQRShm YXVsdCkpOwotCQl9Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBnZW44X2NoZWNrX2ZhdWx0cyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0JdTMyIGZhdWx0ID0gSTkxNV9SRUFE KEdFTjhfUklOR19GQVVMVF9SRUcpOwotCi0JaWYgKGZhdWx0ICYgUklOR19GQVVMVF9WQUxJRCkg ewotCQl1MzIgZmF1bHRfZGF0YTAsIGZhdWx0X2RhdGExOwotCQl1NjQgZmF1bHRfYWRkcjsKLQot CQlmYXVsdF9kYXRhMCA9IEk5MTVfUkVBRChHRU44X0ZBVUxUX1RMQl9EQVRBMCk7Ci0JCWZhdWx0 X2RhdGExID0gSTkxNV9SRUFEKEdFTjhfRkFVTFRfVExCX0RBVEExKTsKLQkJZmF1bHRfYWRkciA9 ICgodTY0KShmYXVsdF9kYXRhMSAmIEZBVUxUX1ZBX0hJR0hfQklUUykgPDwgNDQpIHwKLQkJCSAg ICAgKCh1NjQpZmF1bHRfZGF0YTAgPDwgMTIpOwotCi0JCURSTV9ERUJVR19EUklWRVIoIlVuZXhw ZWN0ZWQgZmF1bHRcbiIKLQkJCQkgIlx0QWRkcjogMHglMDh4XyUwOHhcbiIKLQkJCQkgIlx0QWRk cmVzcyBzcGFjZTogJXNcbiIKLQkJCQkgIlx0RW5naW5lIElEOiAlZFxuIgotCQkJCSAiXHRTb3Vy Y2UgSUQ6ICVkXG4iCi0JCQkJICJcdFR5cGU6ICVkXG4iLAotCQkJCSB1cHBlcl8zMl9iaXRzKGZh dWx0X2FkZHIpLAotCQkJCSBsb3dlcl8zMl9iaXRzKGZhdWx0X2FkZHIpLAotCQkJCSBmYXVsdF9k YXRhMSAmIEZBVUxUX0dUVF9TRUwgPyAiR0dUVCIgOiAiUFBHVFQiLAotCQkJCSBHRU44X1JJTkdf RkFVTFRfRU5HSU5FX0lEKGZhdWx0KSwKLQkJCQkgUklOR19GQVVMVF9TUkNJRChmYXVsdCksCi0J CQkJIFJJTkdfRkFVTFRfRkFVTFRfVFlQRShmYXVsdCkpOwotCX0KLX0KLQotdm9pZCBpOTE1X2No ZWNrX2FuZF9jbGVhcl9mYXVsdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0J LyogRnJvbSBHRU44IG9ud2FyZHMgd2Ugb25seSBoYXZlIG9uZSAnQWxsIEVuZ2luZSBGYXVsdCBS ZWdpc3RlcicgKi8KLQlpZiAoSU5URUxfR0VOKGk5MTUpID49IDgpCi0JCWdlbjhfY2hlY2tfZmF1 bHRzKGk5MTUpOwotCWVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSA2KQotCQlnZW42X2NoZWNr X2ZhdWx0cyhpOTE1KTsKLQllbHNlCi0JCXJldHVybjsKLQotCWNsZWFyX2Vycm9yX3JlZ2lzdGVy cyhpOTE1LCBBTExfRU5HSU5FUyk7Ci19Ci0KIC8qKgogICogaTkxNV9oYW5kbGVfZXJyb3IgLSBo YW5kbGUgYSBncHUgZXJyb3IKICAqIEBpOTE1OiBpOTE1IGRldmljZSBwcml2YXRlCkBAIC0xMzE4 LDcgKzExOTYsNyBAQCB2b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LAogCiAJaWYgKGZsYWdzICYgSTkxNV9FUlJPUl9DQVBUVVJFKSB7CiAJCWk5MTVf Y2FwdHVyZV9lcnJvcl9zdGF0ZShpOTE1LCBlbmdpbmVfbWFzaywgbXNnKTsKLQkJY2xlYXJfZXJy b3JfcmVnaXN0ZXJzKGk5MTUsIGVuZ2luZV9tYXNrKTsKKwkJaW50ZWxfZ3RfY2xlYXJfZXJyb3Jf cmVnaXN0ZXJzKCZpOTE1LT5ndCwgZW5naW5lX21hc2spOwogCX0KIAogCS8qCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfcmVzZXQuaAppbmRleCA1ODBlYmRiNTllY2EuLjAzZmJhMGFiMzg2OCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5oCkBAIC0yNSw4ICsyNSw2IEBAIHZv aWQgaTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCSAg ICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CiAjZGVmaW5lIEk5MTVfRVJST1JfQ0FQVFVSRSBC SVQoMCkKIAotdm9pZCBpOTE1X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpOwotCiB2b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCiAJCWludGVsX2VuZ2luZV9tYXNrX3Qgc3RhbGxlZF9tYXNrLAogCQljb25zdCBj aGFyICpyZWFzb24pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggNGYzZjJjYTExMGY3Li5m ZTQ2NzgxZmE3MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMjM1MSw3ICsyMzUxLDcg QEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWVfZWFybHkoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAogCWludGVsX3VuY29yZV9yZXN1bWVfZWFybHkoJmRldl9wcml2LT51bmNvcmUpOwogCi0J aTkxNV9jaGVja19hbmRfY2xlYXJfZmF1bHRzKGRldl9wcml2KTsKKwlpbnRlbF9ndF9jaGVja19h bmRfY2xlYXJfZmF1bHRzKCZkZXZfcHJpdi0+Z3QpOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gMTEgfHwgSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKIAkJZ2VuOV9zYW5pdGl6ZV9kY19z dGF0ZShkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDZiNDlk YTJkODEwMS4uM2RkODI1MTYyMzZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpA QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgogCiAjaW5jbHVkZSAi ZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5oIgorI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCiAK ICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImk5MTVfc2NhdHRlcmxpc3QuaCIKQEAg LTIzMDcsNyArMjMwOCw3IEBAIHZvaWQgaTkxNV9nZW1fc3VzcGVuZF9ndHRfbWFwcGluZ3Moc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgNikKIAkJcmV0dXJuOwogCi0JaTkxNV9jaGVja19hbmRfY2xlYXJfZmF1bHRzKGRldl9wcml2 KTsKKwlpbnRlbF9ndF9jaGVja19hbmRfY2xlYXJfZmF1bHRzKCZkZXZfcHJpdi0+Z3QpOwogCiAJ Z2d0dC0+dm0uY2xlYXJfcmFuZ2UoJmdndHQtPnZtLCAwLCBnZ3R0LT52bS50b3RhbCk7CiAKQEAg LTM2MTYsNyArMzYxNyw3IEBAIHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRfbWFwcGluZ3Moc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQg PSAmZGV2X3ByaXYtPmdndHQ7CiAJc3RydWN0IGk5MTVfdm1hICp2bWEsICp2bjsKIAotCWk5MTVf Y2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhkZXZfcHJpdik7CisJaW50ZWxfZ3RfY2hlY2tfYW5kX2Ns ZWFyX2ZhdWx0cygmZGV2X3ByaXYtPmd0KTsKIAogCW11dGV4X2xvY2soJmdndHQtPnZtLm11dGV4 KTsKIAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZng=