From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v5] drm/i915/guc: Add a second client, to be used for preemption Date: Thu, 26 Oct 2017 15:32:31 +0200 Message-ID: <20171026133231.17085-1-michal.winiarski@intel.com> References: <20171026132035.10819-1-michal.winiarski@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 ESMTPS id 3321B6E7BB for ; Thu, 26 Oct 2017 13:32:59 +0000 (UTC) In-Reply-To: <20171026132035.10819-1-michal.winiarski@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 Cc: Dave Gordon List-Id: intel-gfx@lists.freedesktop.org RnJvbTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KClRoaXMgc2Vjb25k IGNsaWVudCBpcyBjcmVhdGVkIHdpdGggcHJpb3JpdHkgS01EX0hJR0gsIGFuZCBtYXJrZWQKYXMg cHJlZW1wdGl2ZS4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIHJlcXVlc3QgcHJlZW1wdGlvbiB1c2lu ZyBHdUMgYWN0aW9ucy4KCnYyOiBFeHRyYWN0IGNsaWVudHMgY3JlYXRpb24gaW50byBhIGhlbHBl ciwgZGVidWdmcyBmaXh1cHMuIChNaWNoYcWCKQpSZWNyZWF0ZSBkb29yYmVsbCBvbiBpbml0LiAo RGFuaWVsZSkKTW92ZSBjbGllbnRzIGludG8gYW4gYXJyYXkuCgp2MzogQW5kIG1vdmUgY2xpZW50 cyBiYWNrIGZyb20gYW4gYXJyYXksIHRvIGdldCByaWQgb2YgdGhlIGVudW0gKE1pY2hhxYIpCgp2 NDogVXNlIGlzX2hpZ2hfcHJpb3JpdHksIG1vdmUgRFJNX0VSUk9SIGludG8gX19jcmVhdGVfZG9v cmJlbGwsIG1vdmUKR0VNX0JVR19PTiBpbnNpZGUgZ3VjX2NsaWVudHNfY3JlYXRlIChNaWNoYcWC KQoKdjU6IFNwbGl0IHRoZSBCVUdfT04gKE1pY2hhxYIpCgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEdv cmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYcWCIFdp bmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmll bGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+CkNjOiBKZWZmIE1jR2VlIDxqZWZmLm1jZ2VlQGlu dGVsLmNvbT4KQ2M6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hhbC53YWpkZWN6a29AaW50ZWwuY29t PgpDYzogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgMTE4ICsrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgIDEg KwogMyBmaWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGM2NWUzODFiODVmMy4uNmUxNzhkNzVi YjE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMjQ4NCw2ICsyNDg0LDgg QEAgc3RhdGljIGludCBpOTE1X2d1Y19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0 YSkKIAogCXNlcV9wcmludGYobSwgIlxuR3VDIGV4ZWNidWYgY2xpZW50IEAgJXA6XG4iLCBndWMt PmV4ZWNidWZfY2xpZW50KTsKIAlpOTE1X2d1Y19jbGllbnRfaW5mbyhtLCBkZXZfcHJpdiwgZ3Vj LT5leGVjYnVmX2NsaWVudCk7CisJc2VxX3ByaW50ZihtLCAiXG5HdUMgcHJlZW1wdCBjbGllbnQg QCAlcDpcbiIsIGd1Yy0+cHJlZW1wdF9jbGllbnQpOworCWk5MTVfZ3VjX2NsaWVudF9pbmZvKG0s IGRldl9wcml2LCBndWMtPnByZWVtcHRfY2xpZW50KTsKIAogCWk5MTVfZ3VjX2xvZ19pbmZvKG0s IGRldl9wcml2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf c3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5j CmluZGV4IGQxYTU2MTNkYTI0Yy4uMzFjNTBhZDQ2ZWI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC0zMywxMCArMzMsMTEgQEAKICAqCiAgKiBHdUMg Y2xpZW50OgogICogQSBpOTE1X2d1Y19jbGllbnQgcmVmZXJzIHRvIGEgc3VibWlzc2lvbiBwYXRo IHRocm91Z2ggR3VDLiBDdXJyZW50bHksIHRoZXJlCi0gKiBpcyBvbmx5IG9uZSBvZiB0aGVzZSAo dGhlIGV4ZWNidWZfY2xpZW50KSBhbmQgdGhpcyBvbmUgaXMgY2hhcmdlZCB3aXRoIGFsbAotICog c3VibWlzc2lvbnMgdG8gdGhlIEd1Qy4gVGhpcyBzdHJ1Y3QgaXMgdGhlIG93bmVyIG9mIGEgZG9v cmJlbGwsIGEgcHJvY2VzcwotICogZGVzY3JpcHRvciBhbmQgYSB3b3JrcXVldWUgKGFsbCBvZiB0 aGVtIGluc2lkZSBhIHNpbmdsZSBnZW0gb2JqZWN0IHRoYXQKLSAqIGNvbnRhaW5zIGFsbCByZXF1 aXJlZCBwYWdlcyBmb3IgdGhlc2UgZWxlbWVudHMpLgorICogYXJlIHR3byBjbGllbnRzLiBPbmUg b2YgdGhlbSAodGhlIGV4ZWNidWZfY2xpZW50KSBpcyBjaGFyZ2VkIHdpdGggYWxsCisgKiBzdWJt aXNzaW9ucyB0byB0aGUgR3VDLCB0aGUgb3RoZXIgb25lIChwcmVlbXB0X2NsaWVudCkgaXMgcmVz cG9uc2libGUgZm9yCisgKiBwcmVlbXB0aW5nIHRoZSBleGVjYnVmX2NsaWVudC4gVGhpcyBzdHJ1 Y3QgaXMgdGhlIG93bmVyIG9mIGEgZG9vcmJlbGwsIGEKKyAqIHByb2Nlc3MgZGVzY3JpcHRvciBh bmQgYSB3b3JrcXVldWUgKGFsbCBvZiB0aGVtIGluc2lkZSBhIHNpbmdsZSBnZW0gb2JqZWN0Cisg KiB0aGF0IGNvbnRhaW5zIGFsbCByZXF1aXJlZCBwYWdlcyBmb3IgdGhlc2UgZWxlbWVudHMpLgog ICoKICAqIEd1QyBzdGFnZSBkZXNjcmlwdG9yOgogICogRHVyaW5nIGluaXRpYWxpemF0aW9uLCB0 aGUgZHJpdmVyIGFsbG9jYXRlcyBhIHN0YXRpYyBwb29sIG9mIDEwMjQgc3VjaApAQCAtODMsNyAr ODQsOCBAQAogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNfaGlnaF9wcmlvcml0eShzdHJ1Y3QgaTkx NV9ndWNfY2xpZW50KiBjbGllbnQpCiB7Ci0JcmV0dXJuIGNsaWVudC0+cHJpb3JpdHkgPD0gR1VD X0NMSUVOVF9QUklPUklUWV9ISUdIOworCXJldHVybiAoY2xpZW50LT5wcmlvcml0eSA9PSBHVUNf Q0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdIIHx8CisJCWNsaWVudC0+cHJpb3JpdHkgPT0gR1VDX0NM SUVOVF9QUklPUklUWV9ISUdIKTsKIH0KIAogc3RhdGljIGludCBfX3Jlc2VydmVfZG9vcmJlbGwo c3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50KQpAQCAtMTk2LDggKzE5OCwxMSBAQCBzdGF0 aWMgaW50IF9fY3JlYXRlX2Rvb3JiZWxsKHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCkK IAlkb29yYmVsbC0+Y29va2llID0gMDsKIAogCWVyciA9IF9fZ3VjX2FsbG9jYXRlX2Rvb3JiZWxs KGNsaWVudC0+Z3VjLCBjbGllbnQtPnN0YWdlX2lkKTsKLQlpZiAoZXJyKQorCWlmIChlcnIpIHsK IAkJZG9vcmJlbGwtPmRiX3N0YXR1cyA9IEdVQ19ET09SQkVMTF9ESVNBQkxFRDsKKwkJRFJNX0VS Uk9SKCJDb3VsZG4ndCBjcmVhdGUgY2xpZW50ICV1IGRvb3JiZWxsOiAlZFxuIiwKKwkJCSAgY2xp ZW50LT5zdGFnZV9pZCwgZXJyKTsKKwl9CiAKIAlyZXR1cm4gZXJyOwogfQpAQCAtMzYzLDYgKzM2 OCw4IEBAIHN0YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2luaXQoc3RydWN0IGludGVsX2d1YyAq Z3VjLAogCW1lbXNldChkZXNjLCAwLCBzaXplb2YoKmRlc2MpKTsKIAogCWRlc2MtPmF0dHJpYnV0 ZSA9IEdVQ19TVEFHRV9ERVNDX0FUVFJfQUNUSVZFIHwgR1VDX1NUQUdFX0RFU0NfQVRUUl9LRVJO RUw7CisJaWYgKGlzX2hpZ2hfcHJpb3JpdHkoY2xpZW50KSkKKwkJZGVzYy0+YXR0cmlidXRlIHw9 IEdVQ19TVEFHRV9ERVNDX0FUVFJfUFJFRU1QVDsKIAlkZXNjLT5zdGFnZV9pZCA9IGNsaWVudC0+ c3RhZ2VfaWQ7CiAJZGVzYy0+cHJpb3JpdHkgPSBjbGllbnQtPnByaW9yaXR5OwogCWRlc2MtPmRi X2lkID0gY2xpZW50LT5kb29yYmVsbF9pZDsKQEAgLTc2MywxNSArNzcwLDEzIEBAIHN0YXRpYyBp bnQgZ3VjX2luaXRfZG9vcmJlbGxfaHcoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogCiAJLyogTm93 IGZvciBldmVyeSBjbGllbnQgKGFuZCBub3Qgb25seSBleGVjYnVmX2NsaWVudCkgbWFrZSBzdXJl IHRoZWlyCiAJICogZG9vcmJlbGxzIGFyZSBrbm93biBieSB0aGUgR3VDICovCi0JLy9mb3IgKGNs aWVudCA9IGNsaWVudF9saXN0OyBjbGllbnQgIT0gTlVMTDsgY2xpZW50ID0gY2xpZW50LT5uZXh0 KQotCXsKLQkJcmV0ID0gX19jcmVhdGVfZG9vcmJlbGwoY2xpZW50KTsKLQkJaWYgKHJldCkgewot CQkJRFJNX0VSUk9SKCJDb3VsZG4ndCByZWNyZWF0ZSBjbGllbnQgJXUgZG9vcmJlbGw6ICVkXG4i LAotCQkJCWNsaWVudC0+c3RhZ2VfaWQsIHJldCk7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JfQor CXJldCA9IF9fY3JlYXRlX2Rvb3JiZWxsKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOworCWlmIChyZXQp CisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBfX2NyZWF0ZV9kb29yYmVsbChndWMtPnByZWVtcHRf Y2xpZW50KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJLyogUmVhZCBiYWNrICYgdmVy aWZ5IGFsbCAodXNlZCAmIHVudXNlZCkgZG9vcmJlbGwgcmVnaXN0ZXJzICovCiAJZm9yIChkYl9p ZCA9IDA7IGRiX2lkIDwgR1VDX05VTV9ET09SQkVMTFM7ICsrZGJfaWQpCkBAIC04OTUsNiArOTAw LDUwIEBAIHN0YXRpYyB2b2lkIGd1Y19jbGllbnRfZnJlZShzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50 ICpjbGllbnQpCiAJa2ZyZWUoY2xpZW50KTsKIH0KIAorc3RhdGljIGludCBndWNfY2xpZW50c19j cmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7CisJc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAq Y2xpZW50OworCisJR0VNX0JVR19PTihndWMtPmV4ZWNidWZfY2xpZW50KTsKKwlHRU1fQlVHX09O KGd1Yy0+cHJlZW1wdF9jbGllbnQpOworCisJY2xpZW50ID0gZ3VjX2NsaWVudF9hbGxvYyhkZXZf cHJpdiwKKwkJCQkgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5yaW5nX21hc2ssCisJCQkJICBHVUNf Q0xJRU5UX1BSSU9SSVRZX0tNRF9OT1JNQUwsCisJCQkJICBkZXZfcHJpdi0+a2VybmVsX2NvbnRl eHQpOworCWlmIChJU19FUlIoY2xpZW50KSkgeworCQlEUk1fRVJST1IoIkZhaWxlZCB0byBjcmVh dGUgR3VDIGNsaWVudCBmb3Igc3VibWlzc2lvbiFcbiIpOworCQlyZXR1cm4gUFRSX0VSUihjbGll bnQpOworCX0KKwlndWMtPmV4ZWNidWZfY2xpZW50ID0gY2xpZW50OworCisJY2xpZW50ID0gZ3Vj X2NsaWVudF9hbGxvYyhkZXZfcHJpdiwKKwkJCQkgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5yaW5n X21hc2ssCisJCQkJICBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdILAorCQkJCSAgZGV2X3By aXYtPnByZWVtcHRfY29udGV4dCk7CisJaWYgKElTX0VSUihjbGllbnQpKSB7CisJCURSTV9FUlJP UigiRmFpbGVkIHRvIGNyZWF0ZSBHdUMgY2xpZW50IGZvciBwcmVlbXB0aW9uIVxuIik7CisJCWd1 Y19jbGllbnRfZnJlZShndWMtPmV4ZWNidWZfY2xpZW50KTsKKwkJZ3VjLT5leGVjYnVmX2NsaWVu dCA9IE5VTEw7CisJCXJldHVybiBQVFJfRVJSKGNsaWVudCk7CisJfQorCWd1Yy0+cHJlZW1wdF9j bGllbnQgPSBjbGllbnQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZ3VjX2NsaWVu dHNfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGk5MTVfZ3VjX2Ns aWVudCAqY2xpZW50OworCisJY2xpZW50ID0gZmV0Y2hfYW5kX3plcm8oJmd1Yy0+ZXhlY2J1Zl9j bGllbnQpOworCWd1Y19jbGllbnRfZnJlZShjbGllbnQpOworCisJY2xpZW50ID0gZmV0Y2hfYW5k X3plcm8oJmd1Yy0+cHJlZW1wdF9jbGllbnQpOworCWd1Y19jbGllbnRfZnJlZShjbGllbnQpOwor fQorCiBzdGF0aWMgdm9pZCBndWNfcG9saWN5X2luaXQoc3RydWN0IGd1Y19wb2xpY3kgKnBvbGlj eSkKIHsKIAlwb2xpY3ktPmV4ZWN1dGlvbl9xdWFudHVtID0gUE9MSUNZX0RFRkFVTFRfRVhFQ1VU SU9OX1FVQU5UVU1fVVM7CkBAIC0xMTM0LDcgKzExODMsNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2d1 Y19zdWJtaXNzaW9uX3VucGFyayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiBpbnQg aTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogewogCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOwotCXN0cnVj dCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCA9IGd1Yy0+ZXhlY2J1Zl9jbGllbnQ7CiAJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCWlu dCBlcnI7CkBAIC0xMTUyLDI4ICsxMjAwLDI4IEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Vu YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCSAgICAgc2l6ZW9mKHN0 cnVjdCBndWNfd3FfaXRlbSkgKgogCQkgICAgIEk5MTVfTlVNX0VOR0lORVMgPiBHVUNfV1FfU0la RSk7CiAKLQlpZiAoIWNsaWVudCkgewotCQljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGRldl9w cml2LAotCQkJCQkgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5yaW5nX21hc2ssCi0JCQkJCSAgR1VD X0NMSUVOVF9QUklPUklUWV9LTURfTk9STUFMLAotCQkJCQkgIGRldl9wcml2LT5rZXJuZWxfY29u dGV4dCk7Ci0JCWlmIChJU19FUlIoY2xpZW50KSkgewotCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g Y3JlYXRlIEd1QyBjbGllbnQgZm9yIGV4ZWNidWYhXG4iKTsKLQkJCXJldHVybiBQVFJfRVJSKGNs aWVudCk7Ci0JCX0KLQotCQlndWMtPmV4ZWNidWZfY2xpZW50ID0gY2xpZW50OworCS8qCisJICog V2UncmUgYmVpbmcgY2FsbGVkIG9uIGJvdGggbW9kdWxlIGluaXRpYWxpemF0aW9uIGFuZCBvbiBy ZXNldCwKKwkgKiB1bnRpbCB0aGlzIGZsb3cgaXMgY2hhbmdlZCwgd2UncmUgdXNpbmcgcmVndWxh ciBjbGllbnQgcHJlc2VuY2UgdG8KKwkgKiBkZXRlcm1pbmUgd2hpY2ggY2FzZSBhcmUgd2UgaW4s IGFuZCB3aGV0aGVyIHdlIHNob3VsZCBhbGxvY2F0ZSBuZXcKKwkgKiBjbGllbnRzIG9yIGp1c3Qg cmVzZXQgdGhlaXIgd29ya3F1ZXVlcy4KKwkgKi8KKwlpZiAoIWd1Yy0+ZXhlY2J1Zl9jbGllbnQp IHsKKwkJZXJyID0gZ3VjX2NsaWVudHNfY3JlYXRlKGd1Yyk7CisJCWlmIChlcnIpCisJCQlyZXR1 cm4gZXJyOworCX0gZWxzZSB7CisJCWd1Y19yZXNldF93cShndWMtPmV4ZWNidWZfY2xpZW50KTsK KwkJZ3VjX3Jlc2V0X3dxKGd1Yy0+cHJlZW1wdF9jbGllbnQpOwogCX0KIAogCWVyciA9IGludGVs X2d1Y19zYW1wbGVfZm9yY2V3YWtlKGd1Yyk7CiAJaWYgKGVycikKLQkJZ290byBlcnJfZXhlY2J1 Zl9jbGllbnQ7Ci0KLQlndWNfcmVzZXRfd3EoY2xpZW50KTsKKwkJZ290byBlcnJfZnJlZV9jbGll bnRzOwogCiAJZXJyID0gZ3VjX2luaXRfZG9vcmJlbGxfaHcoZ3VjKTsKIAlpZiAoZXJyKQotCQln b3RvIGVycl9leGVjYnVmX2NsaWVudDsKKwkJZ290byBlcnJfZnJlZV9jbGllbnRzOwogCiAJLyog VGFrZSBvdmVyIGZyb20gbWFudWFsIGNvbnRyb2wgb2YgRUxTUCAoZXhlY2xpc3RzKSAqLwogCWd1 Y19pbnRlcnJ1cHRzX2NhcHR1cmUoZGV2X3ByaXYpOwpAQCAtMTE4Nyw5ICsxMjM1LDggQEAgaW50 IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAogCXJldHVybiAwOwogCi1lcnJfZXhlY2J1Zl9jbGllbnQ6Ci0JZ3VjX2NsaWVudF9m cmVlKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwotCWd1Yy0+ZXhlY2J1Zl9jbGllbnQgPSBOVUxMOwor ZXJyX2ZyZWVfY2xpZW50czoKKwlndWNfY2xpZW50c19kZXN0cm95KGd1Yyk7CiAJcmV0dXJuIGVy cjsKIH0KIApAQCAtMTIwNCw2ICsxMjUxLDUgQEAgdm9pZCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Rp c2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCS8qIFJldmVydCBiYWNr IHRvIG1hbnVhbCBFTFNQIHN1Ym1pc3Npb24gKi8KIAlpbnRlbF9lbmdpbmVzX3Jlc2V0X2RlZmF1 bHRfc3VibWlzc2lvbihkZXZfcHJpdik7CiAKLQlndWNfY2xpZW50X2ZyZWUoZ3VjLT5leGVjYnVm X2NsaWVudCk7Ci0JZ3VjLT5leGVjYnVmX2NsaWVudCA9IE5VTEw7CisJZ3VjX2NsaWVudHNfZGVz dHJveShndWMpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAppbmRleCBhYTE1ODMxNjdiMGEu LjZjYTU1YzViZWQzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKQEAgLTU4LDYgKzU4LDcg QEAgc3RydWN0IGludGVsX2d1YyB7CiAJdm9pZCAqc2hhcmVkX2RhdGFfdmFkZHI7CiAKIAlzdHJ1 Y3QgaTkxNV9ndWNfY2xpZW50ICpleGVjYnVmX2NsaWVudDsKKwlzdHJ1Y3QgaTkxNV9ndWNfY2xp ZW50ICpwcmVlbXB0X2NsaWVudDsKIAogCURFQ0xBUkVfQklUTUFQKGRvb3JiZWxsX2JpdG1hcCwg R1VDX05VTV9ET09SQkVMTFMpOwogCS8qIEN5Y2xpYyBjb3VudGVyIG1vZCBwYWdlc2l6ZQkqLwot LSAKMi4xMy42CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK