From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2 2/6] drm/i915: Retire requests along rings Date: Mon, 23 Apr 2018 19:08:50 +0100 Message-ID: <20180423180854.24219-2-chris@chris-wilson.co.uk> References: <20180423180854.24219-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 7DB466E2C3 for ; Mon, 23 Apr 2018 18:09:14 +0000 (UTC) In-Reply-To: <20180423180854.24219-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 SW4gdGhlIG5leHQgcGF0Y2gsIHJpbmdzIGFyZSB0aGUgY2VudHJhbCB0aW1lbGluZSBhcyByZXF1 ZXN0cyBtYXkganVtcApiZXR3ZWVuIGVuZ2luZXMuIFRoZXJlZm9yZSBpbiB0aGUgZnV0dXJlIGFz IHdlIHJldGlyZSBpbiBvcmRlciBhbG9uZyB0aGUKZW5naW5lIHRpbWVsaW5lLCB3ZSBtYXkgcmV0 aXJlIG91dC1vZi1vcmRlciB3aXRoaW4gYSByaW5nIChhcyB0aGUgcmluZyBub3cKb2NjdXJzIGFs b25nIG11bHRpcGxlIGVuZ2luZXMpLCBsZWFkaW5nIHRvIG11Y2ggaGlsYXJpdHkgaW4gbWlzY29t cHV0aW5nCnRoZSBwb3NpdGlvbiBvZiByaW5nLT5oZWFkLgoKQXMgYW4gYWRkZWQgYm9udXMsIHJl dGlyaW5nIGFsb25nIHRoZSByaW5nIHJlZHVjZXMgdGhlIHBlbmFsdHkgb2YgaGF2aW5nCm9uZSBl eGVjbGlzdHMgY2xpZW50IGRvIGNsZWFudXAgZm9yIGFub3RoZXIgKG9sZCBsZWdhY3kgc3VibWlz c2lvbgpzaGFyZXMgYSByaW5nIGJldHdlZW4gYWxsIGNsaWVudHMpLiBUaGUgZG93bnNpZGUgaXMg dGhhdCBzbG93IGFuZAppcnJlZ3VsYXIgKG9mZiB0aGUgY3JpdGljYWwgcGF0aCkgcHJvY2VzcyBv ZiBjbGVhbmluZyB1cCBzdGFsZSByZXF1ZXN0cwphZnRlciB1c2Vyc3BhY2UgYmVjb21lcyBhIG1v ZGljdW0gbGVzcyBlZmZpY2llbnQuCgpJbiB0aGUgbG9uZyBydW4sIGl0IHdpbGwgYmVjb21lIGFw cGFyZW50IHRoYXQgdGhlIG9yZGVyZWQKcmluZy0+cmVxdWVzdF9saXN0IG1hdGNoZXMgdGhlIHJp bmctPnRpbWVsaW5lLCBhIGZ1biBjaGFsbGVuZ2UgZm9yIHRoZQpmdXR1cmUgd2lsbCBiZSB1bmlm eWluZyB0aGUgdHdvIGxpc3RzIHRvIGF2b2lkIGR1cGxpY2F0aW9uIQoKdjI6IFdlIG5lZWQgYm90 aCBlbmdpbmUtb3JkZXIgYW5kIHJpbmctb3JkZXIgcHJvY2Vzc2luZyB0byBtYWludGFpbiBvdXIK a25vd2xlZGdlIG9mIHdoZXJlIGluZGl2aWR1YWwgcmluZ3MgaGF2ZSBjb21wbGV0ZWQgdXB0byBh cyB3ZWxsIGFzCmtub3dpbmcgd2hhdCB3YXMgbGFzdCBleGVjdXRpbmcgb24gYW55IGVuZ2luZS4g QW5kIGZpbmFsbHkgYnkgZGVjb3VwbGluZwpyZXRpcmluZyB0aGUgY29udGV4dHMgb24gdGhlIGVu Z2luZSBhbmQgdGhlIHRpbWVsaW5lcyBhbG9uZyB0aGUgcmluZ3MsCndlIGRvIGhhdmUgdG8ga2Vl cCBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dCBvbiBlYWNoIHJlcXVlc3QKKHByZXZpb3VzbHkg aXQgd2FzIGd1YXJhbnRlZWQgYnkgdGhlIGNvbnRleHQgYmVpbmcgcGlubmVkKS4KClNpZ25lZC1v ZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlcXVlc3QuYyAgICAgICAgICAgfCAxMzUgKysrKysrKysrKy0tLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3V0aWxzLmggICAgICAgICAgICAgfCAgIDYgKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgICAgIHwgICA2ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggICAgICAgfCAgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5lLmMgIHwgIDI3ICsrKy0KIC4uLi9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jICB8ICAgMiArCiA4IGZpbGVzIGNo YW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCA4ZmQ5ZmI2ZWZiYTUuLjE4MzdjMDFkNDRkMCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCkBAIC0yMDU4LDggKzIwNTgsOSBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7 CiAJCXZvaWQgKCpyZXN1bWUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICopOwogCQl2b2lkICgq Y2xlYW51cF9lbmdpbmUpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKLQkJc3Ry dWN0IGxpc3RfaGVhZCB0aW1lbGluZXM7CiAJCXN0cnVjdCBpOTE1X2dlbV90aW1lbGluZSBnbG9i YWxfdGltZWxpbmU7CisJCXN0cnVjdCBsaXN0X2hlYWQgdGltZWxpbmVzOworCQlzdHJ1Y3QgbGlz dF9oZWFkIHJpbmdzOwogCQl1MzIgYWN0aXZlX3JlcXVlc3RzOwogCQl1MzIgcmVxdWVzdF9zZXJp YWw7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDc5NWNhODNhZWQ3YS4uOTA2ZTIzOTVj MjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTU2MDAsNiArNTYwMCw3IEBAIGludCBp OTE1X2dlbV9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJ Z290byBlcnJfZGVwZW5kZW5jaWVzOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1 Y3RfbXV0ZXgpOworCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+Z3QucmluZ3MpOwogCUlOSVRf TElTVF9IRUFEKCZkZXZfcHJpdi0+Z3QudGltZWxpbmVzKTsKIAllcnIgPSBpOTE1X2dlbV90aW1l bGluZV9pbml0X19nbG9iYWwoZGV2X3ByaXYpOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwppbmRleCBmM2Qw NGYwYWIyMWMuLjBhMTE3YmY5ZTQ1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZXF1ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMK QEAgLTI5OCw2ICsyOTgsNyBAQCB2b2lkIGk5MTVfZ2VtX3JldGlyZV9ub29wKHN0cnVjdCBpOTE1 X2dlbV9hY3RpdmUgKmFjdGl2ZSwKIAogc3RhdGljIHZvaWQgYWR2YW5jZV9yaW5nKHN0cnVjdCBp OTE1X3JlcXVlc3QgKnJlcXVlc3QpCiB7CisJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXF1 ZXN0LT5yaW5nOwogCXVuc2lnbmVkIGludCB0YWlsOwogCiAJLyoKQEAgLTMwOSw3ICszMTAsOCBA QCBzdGF0aWMgdm9pZCBhZHZhbmNlX3Jpbmcoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkK IAkgKiBOb3RlIHRoaXMgcmVxdWlyZXMgdGhhdCB3ZSBhcmUgYWx3YXlzIGNhbGxlZCBpbiByZXF1 ZXN0CiAJICogY29tcGxldGlvbiBvcmRlci4KIAkgKi8KLQlpZiAobGlzdF9pc19sYXN0KCZyZXF1 ZXN0LT5yaW5nX2xpbmssICZyZXF1ZXN0LT5yaW5nLT5yZXF1ZXN0X2xpc3QpKSB7CisJR0VNX0JV R19PTighbGlzdF9pc19maXJzdCgmcmVxdWVzdC0+cmluZ19saW5rLCAmcmluZy0+cmVxdWVzdF9s aXN0KSk7CisJaWYgKGxpc3RfaXNfbGFzdCgmcmVxdWVzdC0+cmluZ19saW5rLCAmcmluZy0+cmVx dWVzdF9saXN0KSkgewogCQkvKgogCQkgKiBXZSBtYXkgcmFjZSBoZXJlIHdpdGggZXhlY2xpc3Rz IHJlc3VibWl0dGluZyB0aGlzIHJlcXVlc3QKIAkJICogYXMgd2UgcmV0aXJlIGl0LiBUaGUgcmVz dWJtaXNzaW9uIHdpbGwgbW92ZSB0aGUgcmluZy0+dGFpbApAQCAtMzIyLDkgKzMyNCw5IEBAIHN0 YXRpYyB2b2lkIGFkdmFuY2VfcmluZyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogCX0g ZWxzZSB7CiAJCXRhaWwgPSByZXF1ZXN0LT5wb3N0Zml4OwogCX0KLQlsaXN0X2RlbCgmcmVxdWVz dC0+cmluZ19saW5rKTsKKwlsaXN0X2RlbF9pbml0KCZyZXF1ZXN0LT5yaW5nX2xpbmspOwogCi0J cmVxdWVzdC0+cmluZy0+aGVhZCA9IHRhaWw7CisJcmluZy0+aGVhZCA9IHRhaWw7CiB9CiAKIHN0 YXRpYyB2b2lkIGZyZWVfY2FwdHVyZV9saXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3Qp CkBAIC0zNDAsMTYgKzM0Miw2OCBAQCBzdGF0aWMgdm9pZCBmcmVlX2NhcHR1cmVfbGlzdChzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogCX0KIH0KIAotc3RhdGljIHZvaWQgaTkxNV9yZXF1 ZXN0X3JldGlyZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQorc3RhdGljIHZvaWQgX19y ZXF1ZXN0X3JldGlyZV9fZW5naW5lKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiB7CiAJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOworCisJbG9j YWxfaXJxX2Rpc2FibGUoKTsKKworCXNwaW5fbG9jaygmZW5naW5lLT50aW1lbGluZS0+bG9jayk7 CisJR0VNX0JVR19PTighbGlzdF9pc19maXJzdCgmcmVxdWVzdC0+bGluaywgJmVuZ2luZS0+dGlt ZWxpbmUtPnJlcXVlc3RzKSk7CisJbGlzdF9kZWxfaW5pdCgmcmVxdWVzdC0+bGluayk7CisJc3Bp bl91bmxvY2soJmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOworCisJc3Bpbl9sb2NrKCZyZXF1ZXN0 LT5sb2NrKTsKKwlpZiAoIXRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJnJl cXVlc3QtPmZlbmNlLmZsYWdzKSkKKwkJZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoJnJlcXVlc3Qt PmZlbmNlKTsKKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQs ICZyZXF1ZXN0LT5mZW5jZS5mbGFncykpCisJCWludGVsX2VuZ2luZV9jYW5jZWxfc2lnbmFsaW5n KHJlcXVlc3QpOworCWlmIChyZXF1ZXN0LT53YWl0Ym9vc3QpIHsKKwkJR0VNX0JVR19PTighYXRv bWljX3JlYWQoJnJlcXVlc3QtPmk5MTUtPmd0X3BtLnJwcy5udW1fd2FpdGVycykpOworCQlhdG9t aWNfZGVjKCZyZXF1ZXN0LT5pOTE1LT5ndF9wbS5ycHMubnVtX3dhaXRlcnMpOworCX0KKwlzcGlu X3VubG9jaygmcmVxdWVzdC0+bG9jayk7CisKKwlsb2NhbF9pcnFfZW5hYmxlKCk7CisKKwkvKgor CSAqIFRoZSBiYWNraW5nIG9iamVjdCBmb3IgdGhlIGNvbnRleHQgaXMgZG9uZSBhZnRlciBzd2l0 Y2hpbmcgdG8gdGhlCisJICogKm5leHQqIGNvbnRleHQuIFRoZXJlZm9yZSB3ZSBjYW5ub3QgcmV0 aXJlIHRoZSBwcmV2aW91cyBjb250ZXh0IHVudGlsCisJICogdGhlIG5leHQgY29udGV4dCBoYXMg YWxyZWFkeSBzdGFydGVkIHJ1bm5pbmcuIEhvd2V2ZXIsIHNpbmNlIHdlCisJICogY2Fubm90IHRh a2UgdGhlIHJlcXVpcmVkIGxvY2tzIGF0IGk5MTVfcmVxdWVzdF9zdWJtaXQoKSB3ZQorCSAqIGRl ZmVyIHRoZSB1bnBpbm5pbmcgb2YgdGhlIGFjdGl2ZSBjb250ZXh0IHRvIG5vdywgcmV0aXJlbWVu dCBvZgorCSAqIHRoZSBzdWJzZXF1ZW50IHJlcXVlc3QuCisJICovCisJaWYgKGVuZ2luZS0+bGFz dF9yZXRpcmVkX2NvbnRleHQpCisJCWVuZ2luZS0+Y29udGV4dF91bnBpbihlbmdpbmUsIGVuZ2lu ZS0+bGFzdF9yZXRpcmVkX2NvbnRleHQpOworCWVuZ2luZS0+bGFzdF9yZXRpcmVkX2NvbnRleHQg PSByZXF1ZXN0LT5jdHg7Cit9CisKK3N0YXRpYyB2b2lkIF9fcmV0aXJlX2VuZ2luZV91cHRvKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgc3RydWN0IGk5MTVfcmVxdWVzdCAq cnEpCit7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqdG1wOworCisJaWYgKGxpc3RfZW1wdHkoJnJx LT5saW5rKSkKKwkJcmV0dXJuOworCisJZG8geworCQl0bXAgPSBsaXN0X2ZpcnN0X2VudHJ5KCZl bmdpbmUtPnRpbWVsaW5lLT5yZXF1ZXN0cywKKwkJCQkgICAgICAgdHlwZW9mKCp0bXApLCBsaW5r KTsKKworCQlfX3JlcXVlc3RfcmV0aXJlX19lbmdpbmUodG1wKTsKKwl9IHdoaWxlICh0bXAgIT0g cnEpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJlcXVlc3QpCit7CiAJc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlLCAqbmV4 dDsKIAogCUdFTV9UUkFDRSgiJXMgZmVuY2UgJWxseDolZCwgZ2xvYmFsPSVkLCBjdXJyZW50ICVk XG4iLAotCQkgIGVuZ2luZS0+bmFtZSwKKwkJICByZXF1ZXN0LT5lbmdpbmUtPm5hbWUsCiAJCSAg cmVxdWVzdC0+ZmVuY2UuY29udGV4dCwgcmVxdWVzdC0+ZmVuY2Uuc2Vxbm8sCiAJCSAgcmVxdWVz dC0+Z2xvYmFsX3NlcW5vLAotCQkgIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKSk7CisJ CSAgaW50ZWxfZW5naW5lX2dldF9zZXFubyhyZXF1ZXN0LT5lbmdpbmUpKTsKIAogCWxvY2tkZXBf YXNzZXJ0X2hlbGQoJnJlcXVlc3QtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCUdFTV9CVUdf T04oIWk5MTVfc3dfZmVuY2Vfc2lnbmFsZWQoJnJlcXVlc3QtPnN1Ym1pdCkpOwpAQCAtMzU4LDEy ICs0MTIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJlcXVlc3QpCiAKIAl0cmFjZV9pOTE1X3JlcXVlc3RfcmV0aXJlKHJlcXVlc3QpOwog Ci0Jc3Bpbl9sb2NrX2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7Ci0JbGlzdF9kZWxfaW5p dCgmcmVxdWVzdC0+bGluayk7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZlbmdpbmUtPnRpbWVsaW5lLT5s b2NrKTsKLQogCWFkdmFuY2VfcmluZyhyZXF1ZXN0KTsKLQogCWZyZWVfY2FwdHVyZV9saXN0KHJl cXVlc3QpOwogCiAJLyoKQEAgLTQwMCw0OSArNDQ5LDMwIEBAIHN0YXRpYyB2b2lkIGk5MTVfcmVx dWVzdF9yZXRpcmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAkvKiBSZXRpcmVtZW50 IGRlY2F5cyB0aGUgYmFuIHNjb3JlIGFzIGl0IGlzIGEgc2lnbiBvZiBjdHggcHJvZ3Jlc3MgKi8K IAlhdG9taWNfZGVjX2lmX3Bvc2l0aXZlKCZyZXF1ZXN0LT5jdHgtPmJhbl9zY29yZSk7CiAKLQkv KgotCSAqIFRoZSBiYWNraW5nIG9iamVjdCBmb3IgdGhlIGNvbnRleHQgaXMgZG9uZSBhZnRlciBz d2l0Y2hpbmcgdG8gdGhlCi0JICogKm5leHQqIGNvbnRleHQuIFRoZXJlZm9yZSB3ZSBjYW5ub3Qg cmV0aXJlIHRoZSBwcmV2aW91cyBjb250ZXh0IHVudGlsCi0JICogdGhlIG5leHQgY29udGV4dCBo YXMgYWxyZWFkeSBzdGFydGVkIHJ1bm5pbmcuIEhvd2V2ZXIsIHNpbmNlIHdlCi0JICogY2Fubm90 IHRha2UgdGhlIHJlcXVpcmVkIGxvY2tzIGF0IGk5MTVfcmVxdWVzdF9zdWJtaXQoKSB3ZQotCSAq IGRlZmVyIHRoZSB1bnBpbm5pbmcgb2YgdGhlIGFjdGl2ZSBjb250ZXh0IHRvIG5vdywgcmV0aXJl bWVudCBvZgotCSAqIHRoZSBzdWJzZXF1ZW50IHJlcXVlc3QuCi0JICovCi0JaWYgKGVuZ2luZS0+ bGFzdF9yZXRpcmVkX2NvbnRleHQpCi0JCWVuZ2luZS0+Y29udGV4dF91bnBpbihlbmdpbmUsIGVu Z2luZS0+bGFzdF9yZXRpcmVkX2NvbnRleHQpOwotCWVuZ2luZS0+bGFzdF9yZXRpcmVkX2NvbnRl eHQgPSByZXF1ZXN0LT5jdHg7Ci0KLQlzcGluX2xvY2tfaXJxKCZyZXF1ZXN0LT5sb2NrKTsKLQlp ZiAoIXRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJnJlcXVlc3QtPmZlbmNl LmZsYWdzKSkKLQkJZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoJnJlcXVlc3QtPmZlbmNlKTsKLQlp ZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQsICZyZXF1ZXN0LT5m ZW5jZS5mbGFncykpCi0JCWludGVsX2VuZ2luZV9jYW5jZWxfc2lnbmFsaW5nKHJlcXVlc3QpOwot CWlmIChyZXF1ZXN0LT53YWl0Ym9vc3QpIHsKLQkJR0VNX0JVR19PTighYXRvbWljX3JlYWQoJnJl cXVlc3QtPmk5MTUtPmd0X3BtLnJwcy5udW1fd2FpdGVycykpOwotCQlhdG9taWNfZGVjKCZyZXF1 ZXN0LT5pOTE1LT5ndF9wbS5ycHMubnVtX3dhaXRlcnMpOwotCX0KLQlzcGluX3VubG9ja19pcnEo JnJlcXVlc3QtPmxvY2spOworCV9fcmV0aXJlX2VuZ2luZV91cHRvKHJlcXVlc3QtPmVuZ2luZSwg cmVxdWVzdCk7CiAKIAl1bnJlc2VydmVfZ3QocmVxdWVzdC0+aTkxNSk7CiAKIAlpOTE1X3NjaGVk X25vZGVfZmluaShyZXF1ZXN0LT5pOTE1LCAmcmVxdWVzdC0+c2NoZWQpOworCisJaTkxNV9nZW1f Y29udGV4dF9wdXQocmVxdWVzdC0+Y3R4KTsKIAlpOTE1X3JlcXVlc3RfcHV0KHJlcXVlc3QpOwog fQogCiB2b2lkIGk5MTVfcmVxdWVzdF9yZXRpcmVfdXB0byhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpy cSkKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBycS0+ZW5naW5lOworCXN0 cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcnEtPnJpbmc7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAq dG1wOwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmcnEtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgp OwogCUdFTV9CVUdfT04oIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKTsKIAotCWlmIChsaXN0 X2VtcHR5KCZycS0+bGluaykpCisJaWYgKGxpc3RfZW1wdHkoJnJxLT5yaW5nX2xpbmspKQogCQly ZXR1cm47CiAKIAlkbyB7Ci0JCXRtcCA9IGxpc3RfZmlyc3RfZW50cnkoJmVuZ2luZS0+dGltZWxp bmUtPnJlcXVlc3RzLAotCQkJCSAgICAgICB0eXBlb2YoKnRtcCksIGxpbmspOworCQl0bXAgPSBs aXN0X2ZpcnN0X2VudHJ5KCZyaW5nLT5yZXF1ZXN0X2xpc3QsCisJCQkJICAgICAgIHR5cGVvZigq dG1wKSwgcmluZ19saW5rKTsKIAogCQlpOTE1X3JlcXVlc3RfcmV0aXJlKHRtcCk7CiAJfSB3aGls ZSAodG1wICE9IHJxKTsKQEAgLTY1MSw5ICs2ODEsOSBAQCBpOTE1X3JlcXVlc3RfYWxsb2Moc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4 KQogCWlmIChyZXQpCiAJCWdvdG8gZXJyX3VucmVzZXJ2ZTsKIAotCS8qIE1vdmUgdGhlIG9sZGVz dCByZXF1ZXN0IHRvIHRoZSBzbGFiLWNhY2hlIChpZiBub3QgaW4gdXNlISkgKi8KLQlycSA9IGxp c3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmZW5naW5lLT50aW1lbGluZS0+cmVxdWVzdHMsCi0JCQkJ ICAgICAgdHlwZW9mKCpycSksIGxpbmspOworCS8qIE1vdmUgb3VyIG9sZGVzdCByZXF1ZXN0IHRv IHRoZSBzbGFiLWNhY2hlIChpZiBub3QgaW4gdXNlISkgKi8KKwlycSA9IGxpc3RfZmlyc3RfZW50 cnlfb3JfbnVsbCgmcmluZy0+cmVxdWVzdF9saXN0LAorCQkJCSAgICAgIHR5cGVvZigqcnEpLCBy aW5nX2xpbmspOwogCWlmIChycSAmJiBpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJxKSkKIAkJaTkx NV9yZXF1ZXN0X3JldGlyZShycSk7CiAKQEAgLTczMyw3ICs3NjMsNyBAQCBpOTE1X3JlcXVlc3Rf YWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqY3R4KQogCUlOSVRfTElTVF9IRUFEKCZycS0+YWN0aXZlX2xpc3QpOwogCXJxLT5pOTE1 ID0gaTkxNTsKIAlycS0+ZW5naW5lID0gZW5naW5lOwotCXJxLT5jdHggPSBjdHg7CisJcnEtPmN0 eCA9IGk5MTVfZ2VtX2NvbnRleHRfZ2V0KGN0eCk7CiAJcnEtPnJpbmcgPSByaW5nOwogCiAJLyog Tm8gemFsbG9jLCBtdXN0IGNsZWFyIHdoYXQgd2UgbmVlZCBieSBoYW5kICovCkBAIC03NzcsNiAr ODA3LDcgQEAgaTkxNV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIAogZXJyX3Vud2luZDoKIAlycS0+cmlu Zy0+ZW1pdCA9IHJxLT5oZWFkOworCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGN0eCk7CiAKIAkvKiBN YWtlIHN1cmUgd2UgZGlkbid0IGFkZCBvdXJzZWx2ZXMgdG8gZXh0ZXJuYWwgc3RhdGUgYmVmb3Jl IGZyZWVpbmcgKi8KIAlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZycS0+YWN0aXZlX2xpc3QpKTsK QEAgLTEzNTcsMzggKzEzODgsMzAgQEAgbG9uZyBpOTE1X3JlcXVlc3Rfd2FpdChzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpycSwKIAlyZXR1cm4gdGltZW91dDsKIH0KIAotc3RhdGljIHZvaWQgZW5naW5l X3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitzdGF0aWMg dm9pZCByaW5nX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZykKIHsKIAlz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCAqbmV4dDsKLQl1MzIgc2Vxbm8gPSBpbnRlbF9l bmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSk7Ci0JTElTVF9IRUFEKHJldGlyZSk7CiAKLQlzcGluX2xv Y2tfaXJxKCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUocmVxdWVzdCwgbmV4dCwKLQkJCQkgJmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3RzLCBsaW5r KSB7Ci0JCWlmICghaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcXVlc3QtPmdsb2JhbF9zZXFu bykpCisJCQkJICZyaW5nLT5yZXF1ZXN0X2xpc3QsIHJpbmdfbGluaykgeworCQlpZiAoIWk5MTVf cmVxdWVzdF9jb21wbGV0ZWQocmVxdWVzdCkpCiAJCQlicmVhazsKIAotCQlsaXN0X21vdmVfdGFp bCgmcmVxdWVzdC0+bGluaywgJnJldGlyZSk7Ci0JfQotCXNwaW5fdW5sb2NrX2lycSgmZW5naW5l LT50aW1lbGluZS0+bG9jayk7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxdWVzdCwg bmV4dCwgJnJldGlyZSwgbGluaykKIAkJaTkxNV9yZXF1ZXN0X3JldGlyZShyZXF1ZXN0KTsKKwl9 CiB9CiAKIHZvaWQgaTkxNV9yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWVudW0gaW50ZWxf ZW5naW5lX2lkIGlkOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nLCAqbmV4dDsKIAogCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiAJaWYgKCFpOTE1LT5n dC5hY3RpdmVfcmVxdWVzdHMpCiAJCXJldHVybjsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGk5MTUsIGlkKQotCQllbmdpbmVfcmV0aXJlX3JlcXVlc3RzKGVuZ2luZSk7CisJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKHJpbmcsIG5leHQsICZpOTE1LT5ndC5yaW5ncywgbGluaykKKwkJcmlu Z19yZXRpcmVfcmVxdWVzdHMocmluZyk7CiB9CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1f STkxNV9TRUxGVEVTVCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRp bHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaAppbmRleCAwNjk1NzE3NTIy ZWEuLjAwMTY1YWQ1NWZiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91 dGlscy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaApAQCAtMTIwLDYg KzEyMCwxMiBAQCBzdGF0aWMgaW5saW5lIHU2NCBwdHJfdG9fdTY0KGNvbnN0IHZvaWQgKnB0cikK IAogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KIAorc3RhdGljIGlubGluZSBpbnQgbGlzdF9pc19m aXJzdChjb25zdCBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAorCQkJCWNvbnN0IHN0cnVjdCBsaXN0 X2hlYWQgKmhlYWQpCit7CisJcmV0dXJuIGhlYWQtPm5leHQgPT0gbGlzdDsKK30KKwogc3RhdGlj IGlubGluZSB2b2lkIF9fbGlzdF9kZWxfbWFueShzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLAogCQkJ CSAgIHN0cnVjdCBsaXN0X2hlYWQgKmZpcnN0KQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCmluZGV4IGM2OGFjNjA1YjhhOS4uNzVkY2EyODc4MmVlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0xMDY1LDcgKzEwNjUsNiBAQCBpbnQg aW50ZWxfcmluZ19waW4oc3RydWN0IGludGVsX3JpbmcgKnJpbmcsCiAKIHZvaWQgaW50ZWxfcmlu Z19yZXNldChzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZywgdTMyIHRhaWwpCiB7Ci0JR0VNX0JVR19P TighbGlzdF9lbXB0eSgmcmluZy0+cmVxdWVzdF9saXN0KSk7CiAJcmluZy0+dGFpbCA9IHRhaWw7 CiAJcmluZy0+aGVhZCA9IHRhaWw7CiAJcmluZy0+ZW1pdCA9IHRhaWw7CkBAIC0xMTI0LDYgKzEx MjMsNyBAQCBpbnRlbF9lbmdpbmVfY3JlYXRlX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLCBpbnQgc2l6ZSkKIAogCUdFTV9CVUdfT04oIWlzX3Bvd2VyX29mXzIoc2l6ZSkpOwog CUdFTV9CVUdfT04oUklOR19DVExfU0laRShzaXplKSAmIH5SSU5HX05SX1BBR0VTKTsKKwlsb2Nr ZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCiAJcmlu ZyA9IGt6YWxsb2Moc2l6ZW9mKCpyaW5nKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFyaW5nKQpAQCAt MTE0OSw2ICsxMTQ5LDggQEAgaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpCiAJfQogCXJpbmctPnZtYSA9IHZtYTsKIAorCWxp c3RfYWRkKCZyaW5nLT5saW5rLCAmZW5naW5lLT5pOTE1LT5ndC5yaW5ncyk7CisKIAlyZXR1cm4g cmluZzsKIH0KIApAQCAtMTE2MCw2ICsxMTYyLDggQEAgaW50ZWxfcmluZ19mcmVlKHN0cnVjdCBp bnRlbF9yaW5nICpyaW5nKQogCWk5MTVfdm1hX2Nsb3NlKHJpbmctPnZtYSk7CiAJX19pOTE1X2dl bV9vYmplY3RfcmVsZWFzZV91bmxlc3NfYWN0aXZlKG9iaik7CiAKKwlsaXN0X2RlbCgmcmluZy0+ bGluayk7CisKIAlrZnJlZShyaW5nKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCmluZGV4IGM1ZTI3OTA1YjBlMS4uZDgxNmY4ZGVhMjQ1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC0xMjksNiArMTI5LDcgQEAgc3RydWN0IGlu dGVsX3JpbmcgewogCXZvaWQgKnZhZGRyOwogCiAJc3RydWN0IGxpc3RfaGVhZCByZXF1ZXN0X2xp c3Q7CisJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwogCiAJdTMyIGhlYWQ7CiAJdTMyIHRhaWw7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jCmluZGV4IDc4YTg5 ZWZhMTExOS4uYTBiYzMyNGVkYWRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvbW9ja19lbmdpbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvbW9ja19lbmdpbmUuYwpAQCAtMTQwLDkgKzE0MCwxOCBAQCBzdGF0aWMgc3RydWN0IGludGVs X3JpbmcgKm1vY2tfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJSU5JVF9M SVNUX0hFQUQoJnJpbmctPnJlcXVlc3RfbGlzdCk7CiAJaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uo cmluZyk7CiAKKwlsaXN0X2FkZCgmcmluZy0+bGluaywgJmVuZ2luZS0+aTkxNS0+Z3QucmluZ3Mp OworCiAJcmV0dXJuIHJpbmc7CiB9CiAKK3N0YXRpYyB2b2lkIG1vY2tfcmluZ19mcmVlKHN0cnVj dCBpbnRlbF9yaW5nICpyaW5nKQoreworCWxpc3RfZGVsKCZyaW5nLT5saW5rKTsKKworCWtmcmVl KHJpbmcpOworfQorCiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptb2NrX2VuZ2luZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkgICAgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkg ICAgaW50IGlkKQpAQCAtMTU1LDEyICsxNjQsNiBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpt b2NrX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlpZiAoIWVuZ2luZSkK IAkJcmV0dXJuIE5VTEw7CiAKLQllbmdpbmUtPmJhc2UuYnVmZmVyID0gbW9ja19yaW5nKCZlbmdp bmUtPmJhc2UpOwotCWlmICghZW5naW5lLT5iYXNlLmJ1ZmZlcikgewotCQlrZnJlZShlbmdpbmUp OwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0KIAkvKiBtaW5pbWFsIGVuZ2luZSBzZXR1cCBmb3IgcmVx dWVzdHMgKi8KIAllbmdpbmUtPmJhc2UuaTkxNSA9IGk5MTU7CiAJc25wcmludGYoZW5naW5lLT5i YXNlLm5hbWUsIHNpemVvZihlbmdpbmUtPmJhc2UubmFtZSksICIlcyIsIG5hbWUpOwpAQCAtMTg1 LDcgKzE4OCwxNiBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptb2NrX2VuZ2luZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAl0aW1lcl9zZXR1cCgmZW5naW5lLT5od19kZWxheSwg aHdfZGVsYXlfY29tcGxldGUsIDApOwogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmh3X3F1ZXVl KTsKIAorCWVuZ2luZS0+YmFzZS5idWZmZXIgPSBtb2NrX3JpbmcoJmVuZ2luZS0+YmFzZSk7CisJ aWYgKCFlbmdpbmUtPmJhc2UuYnVmZmVyKQorCQlnb3RvIGVycl9icmVhZGNydW1iczsKKwogCXJl dHVybiAmZW5naW5lLT5iYXNlOworCitlcnJfYnJlYWRjcnVtYnM6CisJaW50ZWxfZW5naW5lX2Zp bmlfYnJlYWRjcnVtYnMoJmVuZ2luZS0+YmFzZSk7CisJa2ZyZWUoZW5naW5lKTsKKwlyZXR1cm4g TlVMTDsKIH0KIAogdm9pZCBtb2NrX2VuZ2luZV9mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCkBAIC0yMTksOCArMjMxLDkgQEAgdm9pZCBtb2NrX2VuZ2luZV9mcmVlKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpZiAoZW5naW5lLT5sYXN0X3JldGlyZWRfY29u dGV4dCkKIAkJZW5naW5lLT5jb250ZXh0X3VucGluKGVuZ2luZSwgZW5naW5lLT5sYXN0X3JldGly ZWRfY29udGV4dCk7CiAKKwltb2NrX3JpbmdfZnJlZShlbmdpbmUtPmJ1ZmZlcik7CisKIAlpbnRl bF9lbmdpbmVfZmluaV9icmVhZGNydW1icyhlbmdpbmUpOwogCi0Ja2ZyZWUoZW5naW5lLT5idWZm ZXIpOwogCWtmcmVlKGVuZ2luZSk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKaW5kZXggZTZkNGI4ODI1OTlhLi5hYzRiYWNmOGI1Yjkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZp Y2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNl LmMKQEAgLTQ0LDYgKzQ0LDcgQEAgdm9pZCBtb2NrX2RldmljZV9mbHVzaChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKIAkJbW9ja19lbmdpbmVfZmx1c2goZW5naW5lKTsKIAogCWk5MTVf cmV0aXJlX3JlcXVlc3RzKGk5MTUpOworCUdFTV9CVUdfT04oaTkxNS0+Z3QuYWN0aXZlX3JlcXVl c3RzKTsKIH0KIAogc3RhdGljIHZvaWQgbW9ja19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQpAQCAtMjI0LDYgKzIyNSw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpt b2NrX2dlbV9kZXZpY2Uodm9pZCkKIAkJZ290byBlcnJfZGVwZW5kZW5jaWVzOwogCiAJbXV0ZXhf bG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJSU5JVF9MSVNUX0hFQUQoJmk5MTUtPmd0 LnJpbmdzKTsKIAlJTklUX0xJU1RfSEVBRCgmaTkxNS0+Z3QudGltZWxpbmVzKTsKIAllcnIgPSBp OTE1X2dlbV90aW1lbGluZV9pbml0X19nbG9iYWwoaTkxNSk7CiAJaWYgKGVycikgewotLSAKMi4x Ny4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK