From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 18/32] drm/i915: Pass intel_context to intel_context_pin_lock() Date: Wed, 17 Apr 2019 08:56:43 +0100 Message-ID: <20190417075657.19456-18-chris@chris-wilson.co.uk> References: <20190417075657.19456-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 140926E026 for ; Wed, 17 Apr 2019 08:14:58 +0000 (UTC) In-Reply-To: <20190417075657.19456-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 TW92ZSB0aGUgaW50ZWxfY29udGV4dF9pbnN0YW5jZSgpIHRvIHRoZSBjYWxsZXIgc28gdGhhdCB3 ZSBjYW4gZGVjb3VwbGUKb3Vyc2VsdmVzIGZyb20gb25lIGNvbnRleHQgaW5zdGFuY2UgcGVyIGVu Z2luZS4KCnYyOiBSZW5hbWUgcGluX2xvY2soKSB0byBsb2NrX3Bpbm5lZCgpLCBob3BlZnVsbHkg dGhhdCBpcyBjbGVhcmVyLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQu YyAgICAgICB8IDI2IC0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4 dC5oICAgICAgIHwgMzQgKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jICAgICAgIHwgOTIgKysrKysrKysrKystLS0tLS0tLQogLi4uL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgODIg aW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfY29udGV4dC5jCmluZGV4IDhiMzg2MjAyYjM3NC4uMTVhYzk5YzVkZDRhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jCkBAIC0xMjgsMzIgKzEyOCw2IEBAIGludGVs X2NvbnRleHRfaW5zdGFuY2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAlyZXR1cm4g aW50ZWxfY29udGV4dF9nZXQocG9zKTsKIH0KIAotc3RydWN0IGludGVsX2NvbnRleHQgKgotaW50 ZWxfY29udGV4dF9waW5fbG9jayhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAotCQkgICAg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotCV9fYWNxdWlyZXMoY2UtPnBpbl9t dXRleCkKLXsKLQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7Ci0KLQljZSA9IGludGVsX2NvbnRl eHRfaW5zdGFuY2UoY3R4LCBlbmdpbmUpOwotCWlmIChJU19FUlIoY2UpKQotCQlyZXR1cm4gY2U7 Ci0KLQlpZiAobXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZjZS0+cGluX211dGV4KSkgewotCQlp bnRlbF9jb250ZXh0X3B1dChjZSk7Ci0JCXJldHVybiBFUlJfUFRSKC1FSU5UUik7Ci0JfQotCi0J cmV0dXJuIGNlOwotfQotCi12b2lkIGludGVsX2NvbnRleHRfcGluX3VubG9jayhzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY2UpCi0JX19yZWxlYXNlcyhjZS0+cGluX211dGV4KQotewotCW11dGV4X3Vu bG9jaygmY2UtPnBpbl9tdXRleCk7Ci0JaW50ZWxfY29udGV4dF9wdXQoY2UpOwotfQotCiBpbnQg X19pbnRlbF9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCiB7CiAJaW50 IGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaAppbmRleCBiOWE1NzQ1 ODdlYjMuLmI3NDZhZGQ2YjcxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfY29udGV4dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRl eHQuaApAQCAtMzEsMjUgKzMxLDQ1IEBAIGludGVsX2NvbnRleHRfbG9va3VwKHN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICpjdHgsCiAJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KTsKIAogLyoqCi0gKiBpbnRlbF9jb250ZXh0X3Bpbl9sb2NrIC0gU3RhYmxpc2VzIHRoZSAncGlu bmVkJyBzdGF0dXMgb2YgdGhlIEhXIGNvbnRleHQKLSAqIEBjdHggLSB0aGUgcGFyZW50IEdFTSBj b250ZXh0Ci0gKiBAZW5naW5lIC0gdGhlIHRhcmdldCBIVyBlbmdpbmUKKyAqIGludGVsX2NvbnRl eHRfbG9ja19waW5uZWQgLSBTdGFibGlzZXMgdGhlICdwaW5uZWQnIHN0YXR1cyBvZiB0aGUgSFcg Y29udGV4dAorICogQGNlIC0gdGhlIGNvbnRleHQKICAqCiAgKiBBY3F1aXJlIGEgbG9jayBvbiB0 aGUgcGlubmVkIHN0YXR1cyBvZiB0aGUgSFcgY29udGV4dCwgc3VjaCB0aGF0IHRoZSBjb250ZXh0 CiAgKiBjYW4gbmVpdGhlciBiZSBib3VuZCB0byB0aGUgR1BVIG9yIHVuYm91bmQgd2hpbHN0IHRo ZSBsb2NrIGlzIGhlbGQsIGkuZS4KICAqIGludGVsX2NvbnRleHRfaXNfcGlubmVkKCkgcmVtYWlu cyBzdGFibGUuCiAgKi8KLXN0cnVjdCBpbnRlbF9jb250ZXh0ICoKLWludGVsX2NvbnRleHRfcGlu X2xvY2soc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKLQkJICAgICAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSk7CitzdGF0aWMgaW5saW5lIGludCBpbnRlbF9jb250ZXh0X2xv Y2tfcGlubmVkKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKKwlfX2FjcXVpcmVzKGNlLT5waW5f bXV0ZXgpCit7CisJcmV0dXJuIG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmY2UtPnBpbl9tdXRl eCk7Cit9CiAKKy8qKgorICogaW50ZWxfY29udGV4dF9pc19waW5uZWQgLSBSZXBvcnRzIHRoZSAn cGlubmVkJyBzdGF0dXMKKyAqIEBjZSAtIHRoZSBjb250ZXh0CisgKgorICogV2hpbGUgaW4gdXNl IGJ5IHRoZSBHUFUsIHRoZSBjb250ZXh0LCBhbG9uZyB3aXRoIGl0cyByaW5nIGFuZCBwYWdlCisg KiB0YWJsZXMgaXMgcGlubmVkIGludG8gbWVtb3J5IGFuZCB0aGUgR1RULgorICoKKyAqIFJldHVy bnM6IHRydWUgaWYgdGhlIGNvbnRleHQgaXMgY3VycmVudGx5IHBpbm5lZCBmb3IgdXNlIGJ5IHRo ZSBHUFUuCisgKi8KIHN0YXRpYyBpbmxpbmUgYm9vbAogaW50ZWxfY29udGV4dF9pc19waW5uZWQo c3RydWN0IGludGVsX2NvbnRleHQgKmNlKQogewogCXJldHVybiBhdG9taWNfcmVhZCgmY2UtPnBp bl9jb3VudCk7CiB9CiAKLXZvaWQgaW50ZWxfY29udGV4dF9waW5fdW5sb2NrKHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSk7CisvKioKKyAqIGludGVsX2NvbnRleHRfdW5sb2NrX3Bpbm5lZCAtIFJl bGVhc2VzIHRoZSBlYXJsaWVyIGxvY2tpbmcgb2YgJ3Bpbm5lZCcgc3RhdHVzCisgKiBAY2UgLSB0 aGUgY29udGV4dAorICoKKyAqIFJlbGVhc2VzIHRoZSBsb2NrIGVhcmxpZXIgYWNxdWlyZWQgYnkg aW50ZWxfY29udGV4dF91bmxvY2tfcGlubmVkKCkuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBp bnRlbF9jb250ZXh0X3VubG9ja19waW5uZWQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQorCV9f cmVsZWFzZXMoY2UtPnBpbl9tdXRleCkKK3sKKwltdXRleF91bmxvY2soJmNlLT5waW5fbXV0ZXgp OworfQogCiBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCiBfX2ludGVsX2NvbnRleHRfaW5zZXJ0KHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmMKaW5kZXggNzZlZDc0ZTc1ZDgyLi4xZTE3NzAwNDdjYzIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTE0MSw2ICsxNDEsMTggQEAgc3RhdGljIHZv aWQgbHV0X2Nsb3NlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCiAJcmN1X3JlYWRfdW5s b2NrKCk7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCitsb29rdXBfdXNlcl9l bmdpbmUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwgdTE2IGNsYXNzLCB1MTYgaW5zdGFu Y2UpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCisJZW5naW5lID0gaW50 ZWxfZW5naW5lX2xvb2t1cF91c2VyKGN0eC0+aTkxNSwgY2xhc3MsIGluc3RhbmNlKTsKKwlpZiAo IWVuZ2luZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisKKwlyZXR1cm4gaW50ZWxfY29u dGV4dF9pbnN0YW5jZShjdHgsIGVuZ2luZSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IG5ld19o d19pZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgZ2ZwX3QgZ2ZwKQogewogCXVuc2ln bmVkIGludCBtYXg7CkBAIC0xMTQyLDE5ICsxMTU0LDE3IEBAIGdlbjhfbW9kaWZ5X3JwY3Moc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlLCBzdHJ1Y3QgaW50ZWxfc3NldSBzc2V1KQogfQogCiBzdGF0 aWMgaW50Ci1fX2k5MTVfZ2VtX2NvbnRleHRfcmVjb25maWd1cmVfc3NldShzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqY3R4LAotCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs Ci0JCQkJICAgIHN0cnVjdCBpbnRlbF9zc2V1IHNzZXUpCitfX2ludGVsX2NvbnRleHRfcmVjb25m aWd1cmVfc3NldShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCQkJIHN0cnVjdCBpbnRlbF9z c2V1IHNzZXUpCiB7Ci0Jc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwotCWludCByZXQgPSAwOwor CWludCByZXQ7CiAKLQlHRU1fQlVHX09OKElOVEVMX0dFTihjdHgtPmk5MTUpIDwgOCk7Ci0JR0VN X0JVR19PTihlbmdpbmUtPmlkICE9IFJDUzApOworCUdFTV9CVUdfT04oSU5URUxfR0VOKGNlLT5n ZW1fY29udGV4dC0+aTkxNSkgPCA4KTsKKwlHRU1fQlVHX09OKGNlLT5lbmdpbmUtPmlkICE9IFJD UzApOwogCi0JY2UgPSBpbnRlbF9jb250ZXh0X3Bpbl9sb2NrKGN0eCwgZW5naW5lKTsKLQlpZiAo SVNfRVJSKGNlKSkKLQkJcmV0dXJuIFBUUl9FUlIoY2UpOworCXJldCA9IGludGVsX2NvbnRleHRf bG9ja19waW5uZWQoY2UpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAkvKiBOb3RoaW5n IHRvIGRvIGlmIHVubW9kaWZpZWQuICovCiAJaWYgKCFtZW1jbXAoJmNlLT5zc2V1LCAmc3NldSwg c2l6ZW9mKHNzZXUpKSkKQEAgLTExNjUsMjQgKzExNzUsMjMgQEAgX19pOTE1X2dlbV9jb250ZXh0 X3JlY29uZmlndXJlX3NzZXUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJY2UtPnNz ZXUgPSBzc2V1OwogCiB1bmxvY2s6Ci0JaW50ZWxfY29udGV4dF9waW5fdW5sb2NrKGNlKTsKKwlp bnRlbF9jb250ZXh0X3VubG9ja19waW5uZWQoY2UpOwogCXJldHVybiByZXQ7CiB9CiAKIHN0YXRp YyBpbnQKLWk5MTVfZ2VtX2NvbnRleHRfcmVjb25maWd1cmVfc3NldShzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4LAotCQkJCSAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAotCQkJ CSAgc3RydWN0IGludGVsX3NzZXUgc3NldSkKK2ludGVsX2NvbnRleHRfcmVjb25maWd1cmVfc3Nl dShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHN0cnVjdCBpbnRlbF9zc2V1IHNzZXUpCiB7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBjZS0+Z2VtX2NvbnRleHQtPmk5MTU7CiAJ aW50IHJldDsKIAotCXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmY3R4LT5pOTE1LT5k cm0uc3RydWN0X211dGV4KTsKKwlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmk5MTUt PmRybS5zdHJ1Y3RfbXV0ZXgpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSBf X2k5MTVfZ2VtX2NvbnRleHRfcmVjb25maWd1cmVfc3NldShjdHgsIGVuZ2luZSwgc3NldSk7CisJ cmV0ID0gX19pbnRlbF9jb250ZXh0X3JlY29uZmlndXJlX3NzZXUoY2UsIHNzZXUpOwogCi0JbXV0 ZXhfdW5sb2NrKCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X3VubG9jaygm aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTI5MCw3ICsx Mjk5LDcgQEAgc3RhdGljIGludCBzZXRfc3NldShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4 LAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gY3R4LT5pOTE1OwogCXN0cnVj dCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHVzZXJfc3NldTsKLQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCXN0cnVj dCBpbnRlbF9zc2V1IHNzZXU7CiAJaW50IHJldDsKIApAQCAtMTMwNywyNyArMTMxNiwzMSBAQCBz dGF0aWMgaW50IHNldF9zc2V1KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJaWYgKHVz ZXJfc3NldS5mbGFncyB8fCB1c2VyX3NzZXUucnN2ZCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQll bmdpbmUgPSBpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoaTkxNSwKLQkJCQkJICB1c2VyX3NzZXUu ZW5naW5lLmVuZ2luZV9jbGFzcywKLQkJCQkJICB1c2VyX3NzZXUuZW5naW5lLmVuZ2luZV9pbnN0 YW5jZSk7Ci0JaWYgKCFlbmdpbmUpCi0JCXJldHVybiAtRUlOVkFMOworCWNlID0gbG9va3VwX3Vz ZXJfZW5naW5lKGN0eCwKKwkJCQl1c2VyX3NzZXUuZW5naW5lLmVuZ2luZV9jbGFzcywKKwkJCQl1 c2VyX3NzZXUuZW5naW5lLmVuZ2luZV9pbnN0YW5jZSk7CisJaWYgKElTX0VSUihjZSkpCisJCXJl dHVybiBQVFJfRVJSKGNlKTsKIAogCS8qIE9ubHkgcmVuZGVyIGVuZ2luZSBzdXBwb3J0cyBSUENT IGNvbmZpZ3VyYXRpb24uICovCi0JaWYgKGVuZ2luZS0+Y2xhc3MgIT0gUkVOREVSX0NMQVNTKQot CQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoY2UtPmVuZ2luZS0+Y2xhc3MgIT0gUkVOREVSX0NMQVNT KSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0X2NlOworCX0KIAogCXJldCA9IHVzZXJf dG9fY29udGV4dF9zc2V1KGk5MTUsICZ1c2VyX3NzZXUsICZzc2V1KTsKIAlpZiAocmV0KQotCQly ZXR1cm4gcmV0OworCQlnb3RvIG91dF9jZTsKIAotCXJldCA9IGk5MTVfZ2VtX2NvbnRleHRfcmVj b25maWd1cmVfc3NldShjdHgsIGVuZ2luZSwgc3NldSk7CisJcmV0ID0gaW50ZWxfY29udGV4dF9y ZWNvbmZpZ3VyZV9zc2V1KGNlLCBzc2V1KTsKIAlpZiAocmV0KQotCQlyZXR1cm4gcmV0OworCQln b3RvIG91dF9jZTsKIAogCWFyZ3MtPnNpemUgPSBzaXplb2YodXNlcl9zc2V1KTsKIAotCXJldHVy biAwOworb3V0X2NlOgorCWludGVsX2NvbnRleHRfcHV0KGNlKTsKKwlyZXR1cm4gcmV0OwogfQog CiBzdGF0aWMgaW50IGN0eF9zZXRwYXJhbShzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpm cHJpdiwKQEAgLTE1MzIsOCArMTU0NSw4IEBAIHN0YXRpYyBpbnQgZ2V0X3NzZXUoc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9w YXJhbSAqYXJncykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW1fc3NldSB1 c2VyX3NzZXU7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZTsKKwlpbnQgZXJyOwogCiAJaWYgKGFyZ3MtPnNpemUgPT0gMCkKIAkJZ290 byBvdXQ7CkBAIC0xNTQ3LDIyICsxNTYwLDI1IEBAIHN0YXRpYyBpbnQgZ2V0X3NzZXUoc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAlpZiAodXNlcl9zc2V1LmZsYWdzIHx8IHVzZXJfc3Nl dS5yc3ZkKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWVuZ2luZSA9IGludGVsX2VuZ2luZV9sb29r dXBfdXNlcihjdHgtPmk5MTUsCi0JCQkJCSAgdXNlcl9zc2V1LmVuZ2luZS5lbmdpbmVfY2xhc3Ms Ci0JCQkJCSAgdXNlcl9zc2V1LmVuZ2luZS5lbmdpbmVfaW5zdGFuY2UpOwotCWlmICghZW5naW5l KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWNlID0gaW50ZWxfY29udGV4dF9waW5fbG9jayhjdHgs IGVuZ2luZSk7IC8qIHNlcmlhbGlzZXMgd2l0aCBzZXRfc3NldSAqLworCWNlID0gbG9va3VwX3Vz ZXJfZW5naW5lKGN0eCwKKwkJCQl1c2VyX3NzZXUuZW5naW5lLmVuZ2luZV9jbGFzcywKKwkJCQl1 c2VyX3NzZXUuZW5naW5lLmVuZ2luZV9pbnN0YW5jZSk7CiAJaWYgKElTX0VSUihjZSkpCiAJCXJl dHVybiBQVFJfRVJSKGNlKTsKIAorCWVyciA9IGludGVsX2NvbnRleHRfbG9ja19waW5uZWQoY2Up OyAvKiBzZXJpYWxpc2VzIHdpdGggc2V0X3NzZXUgKi8KKwlpZiAoZXJyKSB7CisJCWludGVsX2Nv bnRleHRfcHV0KGNlKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKIAl1c2VyX3NzZXUuc2xpY2VfbWFz ayA9IGNlLT5zc2V1LnNsaWNlX21hc2s7CiAJdXNlcl9zc2V1LnN1YnNsaWNlX21hc2sgPSBjZS0+ c3NldS5zdWJzbGljZV9tYXNrOwogCXVzZXJfc3NldS5taW5fZXVzX3Blcl9zdWJzbGljZSA9IGNl LT5zc2V1Lm1pbl9ldXNfcGVyX3N1YnNsaWNlOwogCXVzZXJfc3NldS5tYXhfZXVzX3Blcl9zdWJz bGljZSA9IGNlLT5zc2V1Lm1heF9ldXNfcGVyX3N1YnNsaWNlOwogCi0JaW50ZWxfY29udGV4dF9w aW5fdW5sb2NrKGNlKTsKKwlpbnRlbF9jb250ZXh0X3VubG9ja19waW5uZWQoY2UpOworCWludGVs X2NvbnRleHRfcHV0KGNlKTsKIAogCWlmIChjb3B5X3RvX3VzZXIodTY0X3RvX3VzZXJfcHRyKGFy Z3MtPnZhbHVlKSwgJnVzZXJfc3NldSwKIAkJCSBzaXplb2YodXNlcl9zc2V1KSkpCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCA4 ZTJhOTQzMzM1NTkuLjIxNGQxZmQyZjRkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCkBAIC0xMDE3LDcgKzEwMTcsNyBAQCBfX3Nz ZXVfdGVzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlpZiAocmV0KQogCQlyZXR1 cm4gcmV0OwogCi0JcmV0ID0gX19pOTE1X2dlbV9jb250ZXh0X3JlY29uZmlndXJlX3NzZXUoY2Ut PmdlbV9jb250ZXh0LCBjZS0+ZW5naW5lLCBzc2V1KTsKKwlyZXQgPSBfX2ludGVsX2NvbnRleHRf cmVjb25maWd1cmVfc3NldShjZSwgc3NldSk7CiAJaWYgKHJldCkKIAkJZ290byBvdXRfc3BpbjsK IAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=