From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 22/49] drm/i915: Map the execlists context regs once during pinning Date: Fri, 27 Mar 2015 11:01:54 +0000 Message-ID: <1427454141-4000-23-git-send-email-chris@chris-wilson.co.uk> References: <1427454141-4000-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from relay.fireflyinternet.com (hostedrelay.fireflyinternet.com [109.228.30.76]) by gabe.freedesktop.org (Postfix) with ESMTP id 4CABA7214E for ; Fri, 27 Mar 2015 04:02:49 -0700 (PDT) In-Reply-To: <1427454141-4000-1-git-send-email-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 V2hlbiB3ZSBwaW4gdGhlIGV4ZWNsaXN0cyBjb250ZXh0IG9uIHF1ZXVpbmcsIGl0IHRoZSBpZGVh bCB0aW1lIHRvIG1hcAp0aGUgcmVnaXN0ZXIgcGFnZSB0aGF0IHdlIG5lZWQgdG8gdXBkYXRlIHdo ZW4gd2Ugc3VibWl0IHRoZSByZXF1ZXN0IHRvCnRoZSBoYXJkd2FyZSAoYW5kIGtlZXAgaXQgYXJv dW5kIGZvciBmdXR1cmUgcmVxdWVzdHMpLgoKVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGRvIGFuIGF0 b21pYyBrbWFwIG9uIGV2ZXJ5IHN1Ym1pc3Npb24uIE9uIHRoZQpvdGhlciBoYW5kLCBpdCBkb2Vz IGRlcGVuZCB1cG9uIGNvcnJlY3QgcmVxdWVzdCBjb25zdHJ1Y3Rpb24uCgpTaWduZWQtb2ZmLWJ5 OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCAgMTAgLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jICAgICAgICB8IDE1NyArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggICAgICAgIHwgICAyIC0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAgMSArCiA0IGZpbGVzIGNo YW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDExMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwppbmRleCA0ZWMxOTVhNjNkNjAuLmNjMjNhODc3M2E4OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCkBAIC0yNTc0LDEzICsyNTc0LDYgQEAgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Zy ZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpCiAJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IHJl cS0+Y3R4OwogCiAJaWYgKGN0eCkgewotCQlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7Ci0J CQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwotCi0JCQlpZiAoY3R4 ICE9IHJpbmctPmRlZmF1bHRfY29udGV4dCkKLQkJCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJp bmcsIGN0eCk7Ci0JCX0KLQogCQlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNlKGN0eCk7CiAJ fQogCkBAIC0yNjQ3LDkgKzI2NDAsNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9yaW5n X2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCWV4ZWNsaXN0 X2xpbmspOwogCQlsaXN0X2RlbCgmc3VibWl0X3JlcS0+ZXhlY2xpc3RfbGluayk7CiAKLQkJaWYg KHN1Ym1pdF9yZXEtPmN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpCi0JCQlpbnRlbF9scl9j b250ZXh0X3VucGluKHJpbmcsIHN1Ym1pdF9yZXEtPmN0eCk7Ci0KIAkJaTkxNV9nZW1fcmVxdWVz dF91bnJlZmVyZW5jZShzdWJtaXRfcmVxKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK aW5kZXggMmVkMWNmNDQ4YzZmLi42MWMxMDNiOWJhMjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCkBAIC0yMDMsOSArMjAzLDYgQEAgZW51bSB7CiB9OwogI2RlZmluZSBHRU44X0NUWF9JRF9T SElGVCAzMgogCi1zdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcsCi0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwotCiAvKioKICAq IGludGVsX3Nhbml0aXplX2VuYWJsZV9leGVjbGlzdHMoKSAtIHNhbml0aXplIGk5MTUuZW5hYmxl X2V4ZWNsaXN0cwogICogQGRldjogRFJNIGRldmljZS4KQEAgLTMxOCw0NyArMzE1LDE4IEBAIHN0 YXRpYyB2b2lkIGV4ZWNsaXN0c19lbHNwX3dyaXRlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcsCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwp OwogfQogCi1zdGF0aWMgaW50IGV4ZWNsaXN0c191cGRhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqY3R4X29iaiwKLQkJCQkgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKnJpbmdfb2JqLAotCQkJCSAgICB1MzIgdGFpbCkKLXsKLQlzdHJ1Y3QgcGFnZSAqcGFnZTsK LQl1aW50MzJfdCAqcmVnX3N0YXRlOwotCi0JcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFn ZShjdHhfb2JqLCAxKTsKLQlyZWdfc3RhdGUgPSBrbWFwX2F0b21pYyhwYWdlKTsKLQotCXJlZ19z dGF0ZVtDVFhfUklOR19UQUlMKzFdID0gdGFpbDsKLQlyZWdfc3RhdGVbQ1RYX1JJTkdfQlVGRkVS X1NUQVJUKzFdID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHJpbmdfb2JqKTsKLQotCWt1bm1h cF9hdG9taWMocmVnX3N0YXRlKTsKLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgdm9pZCBleGVj bGlzdHNfc3VibWl0X2NvbnRleHRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQkJ ICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKnRvMCwgdTMyIHRhaWwwLAogCQkJCSAgICAgIHN0 cnVjdCBpbnRlbF9jb250ZXh0ICp0bzEsIHUzMiB0YWlsMSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqY3R4X29iajAgPSB0bzAtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Ci0Jc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYwID0gdG8wLT5lbmdpbmVbcmluZy0+aWRdLnJp bmdidWY7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmoxID0gTlVMTDsKLQlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjEgPSBOVUxMOwotCi0JQlVHX09OKCFjdHhf b2JqMCk7Ci0JV0FSTl9PTighaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChjdHhfb2JqMCkpOwotCVdB Uk5fT04oIWk5MTVfZ2VtX29ial9pc19waW5uZWQocmluZ2J1ZjAtPm9iaikpOwogCi0JZXhlY2xp c3RzX3VwZGF0ZV9jb250ZXh0KGN0eF9vYmowLCByaW5nYnVmMC0+b2JqLCB0YWlsMCk7CisJdG8w LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWYtPnJlZ3NbQ1RYX1JJTkdfVEFJTCsxXSA9IHRhaWww OwogCiAJaWYgKHRvMSkgewotCQlyaW5nYnVmMSA9IHRvMS0+ZW5naW5lW3JpbmctPmlkXS5yaW5n YnVmOworCQl0bzEtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1Zi0+cmVnc1tDVFhfUklOR19UQUlM KzFdID0gdGFpbDE7CiAJCWN0eF9vYmoxID0gdG8xLT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwot CQlCVUdfT04oIWN0eF9vYmoxKTsKLQkJV0FSTl9PTighaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChj dHhfb2JqMSkpOwotCQlXQVJOX09OKCFpOTE1X2dlbV9vYmpfaXNfcGlubmVkKHJpbmdidWYxLT5v YmopKTsKLQotCQlleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQoY3R4X29iajEsIHJpbmdidWYxLT5v YmosIHRhaWwxKTsKIAl9CiAKIAlleGVjbGlzdHNfZWxzcF93cml0ZShyaW5nLCBjdHhfb2JqMCwg Y3R4X29iajEpOwpAQCAtNTAwLDI5ICs0NjgsMTcgQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29u dGV4dF9xdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJCSAgIHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKmN1cnNvcjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5n LT5kZXYtPmRldl9wcml2YXRlOwogCWludCBudW1fZWxlbWVudHMgPSAwOwogCi0JaWYgKHRvICE9 IHJpbmctPmRlZmF1bHRfY29udGV4dCkKLQkJaW50ZWxfbHJfY29udGV4dF9waW4ocmluZywgdG8p OworCWlmIChXQVJOX09OKHJlcXVlc3QgPT0gTlVMTCkpCisJCXJldHVybiAtRU5PREVWOworCisJ aWYgKFdBUk5fT04odG8tPmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50ID09IDApKQorCQlyZXR1 cm4gLUVOT0RFVjsKKworCWk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOworCVdB Uk5fT04odG8gIT0gcmVxdWVzdC0+Y3R4KTsKIAotCWlmICghcmVxdWVzdCkgewotCQkvKgotCQkg KiBJZiB0aGVyZSBpc24ndCBhIHJlcXVlc3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3VibWlzc2lv biwKLQkJICogY3JlYXRlIG9uZSBhcyBhIHRlbXBvcmFyeSBob2xkZXIuCi0JCSAqLwotCQlyZXF1 ZXN0ID0ga3phbGxvYyhzaXplb2YoKnJlcXVlc3QpLCBHRlBfS0VSTkVMKTsKLQkJaWYgKHJlcXVl c3QgPT0gTlVMTCkKLQkJCXJldHVybiAtRU5PTUVNOwotCQlyZXF1ZXN0LT5yaW5nID0gcmluZzsK LQkJcmVxdWVzdC0+Y3R4ID0gdG87Ci0JCWtyZWZfaW5pdCgmcmVxdWVzdC0+cmVmKTsKLQkJcmVx dWVzdC0+dW5pcSA9IGRldl9wcml2LT5yZXF1ZXN0X3VuaXErKzsKLQkJaTkxNV9nZW1fY29udGV4 dF9yZWZlcmVuY2UocmVxdWVzdC0+Y3R4KTsKLQl9IGVsc2UgewotCQlpOTE1X2dlbV9yZXF1ZXN0 X3JlZmVyZW5jZShyZXF1ZXN0KTsKLQkJV0FSTl9PTih0byAhPSByZXF1ZXN0LT5jdHgpOwotCX0K IAlyZXF1ZXN0LT50YWlsID0gdGFpbDsKIAogCXNwaW5fbG9ja19pcnEoJnJpbmctPmV4ZWNsaXN0 X2xvY2spOwpAQCAtNzE2LDMwICs2NzIsNDIgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNz aW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAlyZXR1 cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLAorCQkJCSAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCit7 CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5n LT5pZF0uc3RhdGU7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVu Z2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKKworCWlmICgtLWN0eC0+ZW5naW5lW3JpbmctPmlkXS5w aW5fY291bnQpCisJCXJldHVybjsKKworCWt1bm1hcChpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uo Y3R4X29iaiwgMSkpOworCXJpbmdidWYtPnJlZ3MgPSBOVUxMOworCisJaW50ZWxfdW5waW5fcmlu Z2J1ZmZlcl9vYmoocmluZ2J1Zik7CisJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29i aik7Cit9CisKIHZvaWQgaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nKQogewotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LCAqdG1wOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGxpc3RfaGVhZCByZXRpcmVkX2xpc3Q7CisJc3RydWN0IGxp c3RfaGVhZCBsaXN0OwogCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYtPnN0 cnVjdF9tdXRleCkpOwogCWlmIChsaXN0X2VtcHR5KCZyaW5nLT5leGVjbGlzdF9yZXRpcmVkX3Jl cV9saXN0KSkKIAkJcmV0dXJuOwogCi0JSU5JVF9MSVNUX0hFQUQoJnJldGlyZWRfbGlzdCk7CiAJ c3Bpbl9sb2NrX2lycSgmcmluZy0+ZXhlY2xpc3RfbG9jayk7Ci0JbGlzdF9yZXBsYWNlX2luaXQo JnJpbmctPmV4ZWNsaXN0X3JldGlyZWRfcmVxX2xpc3QsICZyZXRpcmVkX2xpc3QpOworCWxpc3Rf cmVwbGFjZV9pbml0KCZyaW5nLT5leGVjbGlzdF9yZXRpcmVkX3JlcV9saXN0LCAmbGlzdCk7CiAJ c3Bpbl91bmxvY2tfaXJxKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsKIAotCWxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZShyZXEsIHRtcCwgJnJldGlyZWRfbGlzdCwgZXhlY2xpc3RfbGluaykgewotCQlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcmVxLT5jdHg7Ci0JCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpjdHhfb2JqID0KLQkJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7CisJ d2hpbGUgKCFsaXN0X2VtcHR5KCZsaXN0KSkgeworCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJxOworCisJCXJxID0gbGlzdF9maXJzdF9lbnRyeSgmbGlzdCwgdHlwZW9mKCpycSksIGV4 ZWNsaXN0X2xpbmspOworCQlsaXN0X2RlbCgmcnEtPmV4ZWNsaXN0X2xpbmspOwogCi0JCWlmIChj dHhfb2JqICYmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSkKLQkJCWludGVsX2xyX2Nv bnRleHRfdW5waW4ocmluZywgY3R4KTsKLQkJbGlzdF9kZWwoJnJlcS0+ZXhlY2xpc3RfbGluayk7 Ci0JCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVxKTsKKwkJaW50ZWxfbHJfY29udGV4 dF91bnBpbihyaW5nLCBycS0+Y3R4KTsKKwkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShy cSk7CiAJfQogfQogCkBAIC04MDcsMjUgKzc3NSwyOSBAQCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2 YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAogfQogCiBz dGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcsCi0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCisJCQkJc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwotCWludCByZXQgPSAwOworCWludCBy ZXQ7CiAKIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211dGV4 KSk7Ci0JaWYgKGN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQrKyA9PSAwKSB7Ci0JCXJl dCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihjdHhfb2JqLAotCQkJCUdFTjhfTFJfQ09OVEVYVF9B TElHTiwgMCk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIHJlc2V0X3Bpbl9jb3VudDsKKwlpZiAoY3R4 LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCsrKQorCQlyZXR1cm4gMDsKIAotCQlyZXQgPSBp bnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihyaW5nLT5kZXYsIHJpbmdidWYpOwotCQlp ZiAocmV0KQotCQkJZ290byB1bnBpbl9jdHhfb2JqOwotCX0KKwlyZXQgPSBpOTE1X2dlbV9vYmpf Z2d0dF9waW4oY3R4X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLCAwKTsKKwlpZiAocmV0KQor CQlnb3RvIHJlc2V0X3Bpbl9jb3VudDsKIAotCXJldHVybiByZXQ7CisJcmV0ID0gaW50ZWxfcGlu X2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmoocmluZy0+ZGV2LCByaW5nYnVmKTsKKwlpZiAocmV0KQor CQlnb3RvIHVucGluX2N0eF9vYmo7CisKKwlyaW5nYnVmLT5yZWdzID0ga21hcChpOTE1X2dlbV9v YmplY3RfZ2V0X3BhZ2UoY3R4X29iaiwgMSkpOworCXJpbmdidWYtPnJlZ3NbQ1RYX1JJTkdfQlVG RkVSX1NUQVJUKzFdID0KKwkJaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHJpbmdidWYtPm9iaik7 CisKKwlyZXR1cm4gMDsKIAogdW5waW5fY3R4X29iajoKIAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91 bnBpbihjdHhfb2JqKTsKQEAgLTgzNSwyMSArODA3LDYgQEAgcmVzZXRfcGluX2NvdW50OgogCXJl dHVybiByZXQ7CiB9CiAKLXZvaWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLAotCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQotewotCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0 YXRlOwotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gY3R4LT5lbmdpbmVbcmlu Zy0+aWRdLnJpbmdidWY7Ci0KLQlpZiAoY3R4X29iaikgewotCQlXQVJOX09OKCFtdXRleF9pc19s b2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211dGV4KSk7Ci0JCWlmICgtLWN0eC0+ZW5naW5lW3Jp bmctPmlkXS5waW5fY291bnQgPT0gMCkgewotCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoo cmluZ2J1Zik7Ci0JCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKLQkJfQot CX0KLX0KLQogc3RhdGljIGludCBsb2dpY2FsX3JpbmdfYWxsb2NfcmVxdWVzdChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgp CiB7CkBAIC04NjQsMTIgKzgyMSwxMCBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19hbGxvY19y ZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJaWYgKHJlcXVlc3QgPT0gTlVM TCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlpZiAoY3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4 dCkgewotCQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X3BpbihyaW5nLCBjdHgpOwotCQlpZiAocmV0 KSB7Ci0JCQlrZnJlZShyZXF1ZXN0KTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KKwlyZXQgPSBpbnRl bF9scl9jb250ZXh0X3BpbihyaW5nLCBjdHgpOworCWlmIChyZXQpIHsKKwkJa2ZyZWUocmVxdWVz dCk7CisJCXJldHVybiByZXQ7CiAJfQogCiAJa3JlZl9pbml0KCZyZXF1ZXN0LT5yZWYpOwpAQCAt MTk5MCw3ICsxOTQ1LDcgQEAgZXJyb3JfdW5waW5fY3R4OgogfQogCiB2b2lkIGludGVsX2xyX2Nv bnRleHRfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgpCisJCQkgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmc7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4IGFkYjcz MWU0OWM1Ny4uMWQyNGQ0Zjk2M2YxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApAQCAtNzEs OCArNzEsNiBAQCBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmLAogdm9pZCBpbnRlbF9scl9jb250ZXh0X2ZyZWUoc3RydWN0IGludGVs X2NvbnRleHQgKmN0eCk7CiBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcpOwotdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCi0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwogdm9pZCBpbnRlbF9scl9j b250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQlzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY3R4KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4 IDFkMDhkOGY5MTQ5ZC4uMjQ3N2NmM2UzOTA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oCkBAIC05Nyw2ICs5Nyw3IEBAIHN0cnVjdCBpbnRlbF9yaW5nX2hhbmdjaGVj ayB7CiBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iajsKIAl2b2lkIF9faW9tZW0gKnZpcnR1YWxfc3RhcnQ7CisJdWludDMyX3QgKnJlZ3M7 CiAKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwogCi0tIAoyLjEuNAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK