From mboxrd@z Thu Jan 1 00:00:00 1970 From: yu.dai@intel.com Subject: [PATCH 13/18] drm/i915: Enable commands submission via GuC Date: Thu, 26 Mar 2015 12:41:20 -0700 Message-ID: <1427398885-31988-14-git-send-email-yu.dai@intel.com> References: <1427398885-31988-1-git-send-email-yu.dai@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 981AF72122 for ; Thu, 26 Mar 2015 12:44:31 -0700 (PDT) In-Reply-To: <1427398885-31988-1-git-send-email-yu.dai@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 RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpBZGQgZnVuY3Rpb25zIHRvIHN1Ym1p dCB3b3JrIHF1ZXVlIGl0ZW0gYW5kIHJpbmcgdGhlIGRvb3IgYmVsbC4KR3VDIFRMQiBuZWVkcyB0 byBiZSBpbnZhbGlkZWQgaWYgTFJDIGNvbnRleHQgY2hhbmdlcy4KCklzc3VlOiBWSVotNDg4NApT aWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2NsaWVudC5jICAgIHwgMTc1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc2NoZWR1bGVyLmMgfCAgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8ICAxNiArKy0K IDQgZmlsZXMgY2hhbmdlZCwgMTkzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWMuaAppbmRleCAzMjI4YzY4Li40OTg3ODlkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWMuaApAQCAtMzEsNiArMzEsNyBAQAogI2RlZmluZSBHVUNfV1FfU0laRQkoUEFH RV9TSVpFICogMikKIAogc3RydWN0IGk5MTVfZ3VjX2NsaWVudCB7CisJc3BpbmxvY2tfdCB3cV9s b2NrOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjbGllbnRfb2JqOwogCXUzMiBwcmlv cml0eTsKIAlvZmZfdCBkb29yYmVsbF9vZmZzZXQ7CkBAIC0zOSw2ICs0MCw4IEBAIHN0cnVjdCBp OTE1X2d1Y19jbGllbnQgewogCXVpbnQxNl90IGRvb3JiZWxsX2lkOwogCXVpbnQzMl90IGN0eF9p bmRleDsKIAl1aW50MzJfdCB3cV9zaXplOworCXVpbnQzMl90IHdxX3RhaWw7CisJdWludDMyX3Qg Y29va2llOwogfTsKIAogI2RlZmluZSBJOTE1X01BWF9ET09SQkVMTFMJMjU2CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfY2xpZW50LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfY2xpZW50LmMKaW5kZXggZjc2NzJmZi4uMjQxNWJmYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2NsaWVudC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19jbGllbnQuYwpAQCAtMjIsNiArMjIsNyBAQAogICoK ICAqLwogI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvY2lyY19i dWYuaD4KICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2d1Yy5oIgogCkBA IC0zNzIsNiArMzczLDggQEAgaTkxNV9ndWNfY2xpZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHUzMiBwcmlvcml0eSkKIAkJLyogWFhYOiBldmljdCBhIGRvb3JiZWxsIGluc3RlYWQg Ki8KIAkJZ290byBlcnI7CiAKKwlzcGluX2xvY2tfaW5pdCgmY2xpZW50LT53cV9sb2NrKTsKKwog CWluaXRfY3R4X2Rlc2MoZ3VjLCBjbGllbnQpOwogCWluaXRfcHJvY19kZXNjKGd1YywgY2xpZW50 KTsKIAlpbml0X2Rvb3JiZWxsKGd1YywgY2xpZW50KTsKQEAgLTM5MSw5ICszOTQsMTc5IEBAIGVy cjoKIAlyZXR1cm4gTlVMTDsKIH0KIAorCisvKiBHZXQgdmFsaWQgd29ya3F1ZXVlIGl0ZW0gYW5k IHJldHVybiBpdCBiYWNrIHRvIG9mZnNldCAqLworc3RhdGljIGludCBnZXRfd29ya3F1ZXVlX3Nw YWNlKHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmdjLCB1MzIgKm9mZnNldCkKK3sKKwlzdHJ1Y3Qg Z3VjX3Byb2Nlc3NfZGVzYyAqZGVzYzsKKwl2b2lkICpiYXNlOworCXUzMiBzaXplID0gc2l6ZW9m KHN0cnVjdCBndWNfd3FfaXRlbSk7CisJaW50IHJldCA9IDAsIHRpbWVvdXRfY291bnRlciA9IDIw MDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJYmFzZSA9IGttYXBfYXRvbWljKGk5MTVfZ2Vt X29iamVjdF9nZXRfcGFnZShnYy0+Y2xpZW50X29iaiwgMCkpOworCWRlc2MgPSBiYXNlICsgZ2Mt PnByb2NfZGVzY19vZmZzZXQ7CisKKwl3aGlsZSAodGltZW91dF9jb3VudGVyLS0gPiAwKSB7CisJ CXNwaW5fbG9ja19pcnFzYXZlKCZnYy0+d3FfbG9jaywgZmxhZ3MpOworCisJCXJldCA9IHdhaXRf Zm9yKENJUkNfU1BBQ0UoZ2MtPndxX3RhaWwsIGRlc2MtPmhlYWQsCisJCQkgICAgICAgZ2MtPndx X3NpemUpID49IHNpemUsIDEpOworCisJCWlmICghcmV0KSB7CisJCQkqb2Zmc2V0ID0gZ2MtPndx X3RhaWw7CisKKwkJCS8qIGFkdmFuY2UgdGhlIHRhaWwgZm9yIG5leHQgd29ya3F1ZXVlIGl0ZW0g Ki8KKwkJCWdjLT53cV90YWlsICs9IHNpemU7CisJCQlnYy0+d3FfdGFpbCAmPSBnYy0+d3Ffc2l6 ZSAtIDE7CisKKwkJCS8qIHRoaXMgd2lsbCBicmVhayB0aGUgbG9vcCAqLworCQkJdGltZW91dF9j b3VudGVyID0gMDsKKwkJfQorCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmdjLT53cV9sb2Nr LCBmbGFncyk7CisJfTsKKworCWt1bm1hcF9hdG9taWMoYmFzZSk7CisKKwlyZXR1cm4gcmV0Owor fQorCisKK3N0YXRpYyBpbnQgYWRkX3dvcmtxdWV1ZV9pdGVtKHN0cnVjdCBpOTE1X2d1Y19jbGll bnQgKmdjLAorCQkJICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKKwkJCSAgICAgIHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCit7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYgPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKKwlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqY3R4X29iajsKKwlzdHJ1Y3QgZ3VjX3dxX2l0ZW0gKndxaTsKKwl2b2lk ICpiYXNlOworCXN0cnVjdCBwYWdlICpwYWdlOworCXUzMiB3cV9vZmYgPSAwLCB0YWlsID0gcmlu Z2J1Zi0+dGFpbCwgd3FfbGVuOworCWludCByZXQ7CisKKwljdHhfb2JqID0gY3R4LT5lbmdpbmVb cmluZy0+aWRdLnN0YXRlOworCisJV0FSTl9PTighaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChjdHhf b2JqKSk7CisJV0FSTl9PTighaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChyaW5nYnVmLT5vYmopKTsK KworCS8qIE5lZWQgdGhpcyBiZWNhdXNlIG9mIHRoZSBkZWZlcnJlZCBwaW4gY3R4IGFuZCByaW5n ICovCisJLyogU2hhbGwgd2UgbW92ZSB0aGlzIHJpZ2h0IGFmdGVyIHJpbmcgaXMgcGlubmVkPyAq LworCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY3R4X29iaiwgMSk7CisJYmFzZSA9 IGttYXBfYXRvbWljKHBhZ2UpOworCisJKigodTMyICopYmFzZSArIENUWF9SSU5HX0JVRkZFUl9T VEFSVCArIDEpID0KKwkJaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHJpbmdidWYtPm9iaik7CisK KwlrdW5tYXBfYXRvbWljKGJhc2UpOworCisJcmV0ID0gZ2V0X3dvcmtxdWV1ZV9zcGFjZShnYywg JndxX29mZik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qIEZvciBub3cgd29ya3F1 ZXVlIGl0ZW0gaXMgNCBEV3M7IHdvcmtxdWV1ZSBidWZmZXIgaXMgMiBwYWdlcy4gU28gd2UKKwkg KiBzaG91bGQgbm90IGhhdmUgdGhlIGNhc2Ugd2hlcmUgc3RydWN0dXJlIHdxaSBpcyBhY3Jvc3Mg cGFnZSwgbmVpdGhlcgorCSAqIHdyYXBwZWQgdG8gdGhlIGJlZ2lubmluZy4gVGhpcyBzaW1wbGlm aWVzIHRoZSBpbXBsZW1lbnRhdGlvbiBiZWxvdy4KKwkgKgorCSAqIFhYWDogaWYgbm90IHRoZSBj YXNlLCB3ZSBuZWVkIHNhdmUgZGF0YSB0byBhIHRlbXAgd3FpIGFuZCBjb3B5IGl0IHRvCisJICog d29ya3F1ZXVlIGJ1ZmZlciBkdyBieSBkdy4KKwkgKi8KKwlXQVJOX09OKHNpemVvZihzdHJ1Y3Qg Z3VjX3dxX2l0ZW0pICE9IDE2KTsKKwlXQVJOX09OKHdxX29mZiAmIDMpOworCisJLyogd3Egc3Rh cnRzIGZyb20gdGhlIHBhZ2UgYWZ0ZXIgZG9vcmJlbGwgLyBwcm9jZXNzX2Rlc2MgKi8KKwliYXNl ID0ga21hcF9hdG9taWMoaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGdjLT5jbGllbnRfb2JqLAor CQkJKHdxX29mZiArIEdVQ19EQl9TSVpFKSA+PiBQQUdFX1NISUZUKSk7CisJd3Ffb2ZmICY9IFBB R0VfU0laRSAtIDE7CisJd3FpID0gKHN0cnVjdCBndWNfd3FfaXRlbSAqKSgoY2hhciAqKWJhc2Ug KyB3cV9vZmYpOworCisJLyogbGVuIGRvZXMgbm90IGluY2x1ZGUgdGhlIGhlYWRlciAqLworCXdx X2xlbiA9IHNpemVvZihzdHJ1Y3QgZ3VjX3dxX2l0ZW0pIC8gc2l6ZW9mKHUzMikgLSAxOworCXdx aS0+aGVhZGVyID0gV1FfVFlQRV9JTk9SREVSIHwKKwkJCSh3cV9sZW4gPDwgV1FfTEVOX1NISUZU KSB8CisJCQkocmluZy0+aWQgPDwgV1FfVEFSR0VUX1NISUZUKSB8CisJCQlXUV9OT19XQ0ZMVVNI X1dBSVQ7CisKKwl3cWktPmNvbnRleHRfZGVzYyA9ICh1MzIpZXhlY2xpc3RzX2N0eF9kZXNjcmlw dG9yKHJpbmcsIGN0eF9vYmopOworCS8qIHRhaWwgaW5kZXggaXMgaW4gcXcgKi8KKwl0YWlsID4+ PSAzOworCXdxaS0+cmluZ190YWlsID0gdGFpbCA8PCBXUV9SSU5HX1RBSUxfU0hJRlQ7CisJd3Fp LT5mZW5jZV9pZCA9IDA7IC8qWFhYOiB3aGF0IGZlbmNlIHRvIGJlIGhlcmUgKi8KKworCWt1bm1h cF9hdG9taWMoYmFzZSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByaW5nX2Rvb3Ji ZWxsKHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmdjKQoreworCXN0cnVjdCBndWNfcHJvY2Vzc19k ZXNjICpkZXNjOworCXVuaW9uIGd1Y19kb29yYmVsbF9xdyBkYl9jbXAsIGRiX2V4YywgZGJfcmV0 OworCXVuaW9uIGd1Y19kb29yYmVsbF9xdyAqZGI7CisJdm9pZCAqYmFzZTsKKwlpbnQgYXR0ZW1w dCA9IDIsIHJldCA9IC1FQUdBSU47CisKKwliYXNlID0ga21hcF9hdG9taWMoaTkxNV9nZW1fb2Jq ZWN0X2dldF9wYWdlKGdjLT5jbGllbnRfb2JqLCAwKSk7CisJZGVzYyA9IGJhc2UgKyBnYy0+cHJv Y19kZXNjX29mZnNldDsKKworCS8qIFVwZGF0ZSB0aGUgdGFpbCBzbyBpdCBpcyB2aXNpYmxlIHRv IEd1QyAqLworCWRlc2MtPnRhaWwgPSBnYy0+d3FfdGFpbDsKKworCS8qIGN1cnJlbnQgY29va2ll ICovCisJZGJfY21wLmRiX3N0YXR1cyA9IEdVQ19ET09SQkVMTF9FTkFCTEVEOworCWRiX2NtcC5j b29raWUgPSBnYy0+Y29va2llOworCisJLyogY29va2llIHRvIGJlIHVwZGF0ZWQgKi8KKwlkYl9l eGMuZGJfc3RhdHVzID0gR1VDX0RPT1JCRUxMX0VOQUJMRUQ7CisJZGJfZXhjLmNvb2tpZSA9IGdj LT5jb29raWUgKyAxOworCWlmIChkYl9leGMuY29va2llID09IDApCisJCWRiX2V4Yy5jb29raWUg PSAxOworCisJLyogcG9pbnRlciBvZiBjdXJyZW50IGRvb3JiZWxsIGNhY2hlbGluZSAqLworCWRi ID0gYmFzZSArIGdjLT5kb29yYmVsbF9vZmZzZXQ7CisKKwl3aGlsZSAoYXR0ZW1wdC0tKSB7CisJ CS8qIGxldHMgcmluZyB0aGUgZG9vcmJlbGwgKi8KKwkJZGJfcmV0LnZhbHVlX3F3ID0gYXRvbWlj NjRfY21weGNoZygoYXRvbWljNjRfdCAqKWRiLAorCQkJZGJfY21wLnZhbHVlX3F3LCBkYl9leGMu dmFsdWVfcXcpOworCisJCS8qIGlmIHRoZSBleGNoYW5nZSB3YXMgc3VjY2Vzc2Z1bGx5IGV4ZWN1 dGVkICovCisJCWlmIChkYl9yZXQudmFsdWVfcXcgPT0gZGJfY21wLnZhbHVlX3F3KSB7CisJCQkv KiBkYiB3YXMgc3VjY2Vzc2Z1bGx5IHJ1bmcgKi8KKwkJCWdjLT5jb29raWUgPSBkYl9leGMuY29v a2llOworCQkJcmV0ID0gMDsKKwkJCWJyZWFrOworCQl9CisKKwkJLyogWFhYOiBkb29yYmVsbCB3 YXMgbG9zdCBhbmQgbmVlZCB0byBhY3F1aXJlIGl0IGFnYWluICovCisJCWlmIChkYl9yZXQuZGJf c3RhdHVzID09IEdVQ19ET09SQkVMTF9ESVNBQkxFRCkKKwkJCWJyZWFrOworCisJCURSTV9FUlJP UigiQ29va2llIG1pc21hdGNoLiBFeHBlY3RlZCAlZCwgcmV0dXJuZWQgJWRcbiIsCisJCQkgIGRi X2NtcC5jb29raWUsIGRiX3JldC5jb29raWUpOworCisJCS8qIHVwZGF0ZSB0aGUgY29va2llIHRv IG5ld2x5IHJlYWQgY29va2llIGZyb20gR3VDICovCisJCWRiX2NtcC5jb29raWUgPSBkYl9yZXQu Y29va2llOworCQlkYl9leGMuY29va2llID0gZGJfcmV0LmNvb2tpZSArIDE7CisJCWlmIChkYl9l eGMuY29va2llID09IDApCisJCQlkYl9leGMuY29va2llID0gMTsKKwl9CisKKwlrdW5tYXBfYXRv bWljKGJhc2UpOworCXJldHVybiByZXQ7Cit9CisKIGludCBpOTE1X2d1Y19jbGllbnRfc3VibWl0 KHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCwKIAkJCSAgIHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgsCiAJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewotCXJldHVy biAwOworCWludCByZXQ7CisKKwlyZXQgPSBhZGRfd29ya3F1ZXVlX2l0ZW0oY2xpZW50LCBjdHgs IHJpbmcpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSByaW5nX2Rvb3JiZWxs KGNsaWVudCk7CisKKwlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX3NjaGVkdWxlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjX3NjaGVkdWxlci5jCmluZGV4IDAwOGY3NGMuLmMwYjcyMzEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zY2hlZHVsZXIuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfc2NoZWR1bGVyLmMKQEAgLTE2MCw2ICsxNjAsNiBAQCBib29sIHNh bml0aXplX2VuYWJsZV9ndWNfc2NoZWR1bGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlm ICghSEFTX0dVQ19VQ09ERShkZXYpIHx8ICFIQVNfR1VDX1NDSEVEKGRldikpCiAJCXJldHVybiBm YWxzZTsKIAotCXJldHVybiBpOTE1LmVuYWJsZV9ndWNfc2NoZWR1bGluZzsKKwlyZXR1cm4gaTkx NS5lbmFibGVfZXhlY2xpc3RzICYmIGk5MTUuZW5hYmxlX2d1Y19zY2hlZHVsaW5nOwogfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDJjMThkNTkuLjk2N2ViZjcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCkBAIC03MzUsMTMgKzczNSwxNyBAQCBpbnRlbF9sb2dpY2FsX3Jpbmdf YWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAogCQkJ CSAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIHsKIAlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmluZ2J1Zi0+cmluZzsKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwogCiAJaW50ZWxfbG9n aWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CiAKIAlpZiAoaW50ZWxfcmluZ19zdG9wcGVkKHJp bmcpKQogCQlyZXR1cm47CiAKLQlleGVjbGlzdHNfY29udGV4dF9xdWV1ZShyaW5nLCBjdHgsIHJp bmdidWYtPnRhaWwsIHJlcXVlc3QpOworCWlmIChkZXZfcHJpdi0+Z3VjLmV4ZWNidWZfY2xpZW50 KQorCQlpOTE1X2d1Y19jbGllbnRfc3VibWl0KGRldl9wcml2LT5ndWMuZXhlY2J1Zl9jbGllbnQs IGN0eCwgcmluZyk7CisJZWxzZQorCQlleGVjbGlzdHNfY29udGV4dF9xdWV1ZShyaW5nLCBjdHgs IHJpbmdidWYtPnRhaWwsIHJlcXVlc3QpOwogfQogCiBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRl eHRfcGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCkBAIC03NDksNiArNzUzLDcgQEAg c3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdp bmVbcmluZy0+aWRdLnN0YXRlOwogCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0g Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gcmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAlpbnQgcmV0ID0gMDsKIAogCVdB Uk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKQEAgLTc2 MSw2ICs3NjYsMTAgQEAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLAogCQlyZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVy X29iaihyaW5nLT5kZXYsIHJpbmdidWYpOwogCQlpZiAocmV0KQogCQkJZ290byB1bnBpbl9jdHhf b2JqOworCisJCS8qIEludmFsaWRhdGUgR3VDIFRMQi4gKi8KKwkJaWYgKGk5MTUuZW5hYmxlX2d1 Y19zY2hlZHVsaW5nKQorCQkJSTkxNV9XUklURShHRU44X0dUQ1IsIEdFTjhfR1RDUl9JTlZBTElE QVRFKTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtMTMwNSw4ICsxMzE0LDEzIEBAIG91dDoKIHN0 YXRpYyBpbnQgZ2VuOF9pbml0X3Jjc19jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcsCiAJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQogeworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7CiAJaW50IHJl dDsKIAorCS8qIEludmFsaWRhdGUgR3VDIFRMQi4gKi8KKwlpZiAoaTkxNS5lbmFibGVfZ3VjX3Nj aGVkdWxpbmcpCisJCUk5MTVfV1JJVEUoR0VOOF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7 CisKIAlyZXQgPSBpbnRlbF9sb2dpY2FsX3Jpbmdfd29ya2Fyb3VuZHNfZW1pdChyaW5nLCBjdHgp OwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK