From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v5] drm/i915/guc: Preemption! With GuC Date: Thu, 26 Oct 2017 09:27:07 +0200 Message-ID: <20171026072707.29180-1-michal.winiarski@intel.com> References: <20171025200020.16636-12-michal.winiarski@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id B23E76E733 for ; Thu, 26 Oct 2017 07:27:52 +0000 (UTC) In-Reply-To: <20171025200020.16636-12-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 List-Id: intel-gfx@lists.freedesktop.org UHJldHR5IHNpbWlsYXIgdG8gd2hhdCB3ZSBoYXZlIG9uIGV4ZWNsaXN0cy4KV2UncmUgcmV1c2lu ZyBtb3N0IG9mIHRoZSBHRU0gY29kZSwgaG93ZXZlciwgZHVlIHRvIEd1QyBxdWlya3Mgd2UgbmVl ZCBhCmNvdXBsZSBvZiBleHRyYSBiaXRzLgpQcmVlbXB0aW9uIGlzIGltcGxlbWVudGVkIGFzIEd1 QyBhY3Rpb24sIGFuZCBhY3Rpb25zIGNhbiBiZSBwcmV0dHkgc2xvdy4KQmVjYXVzZSBvZiB0aGF0 LCB3ZSdyZSB1c2luZyBhIG11dGV4IHRvIHNlcmlhbGl6ZSB0aGVtLiBTaW5jZSB3ZSdyZQpyZXF1 ZXN0aW5nIHByZWVtcHRpb24gZnJvbSB0aGUgdGFza2xldCwgdGhlIHRhc2sgb2YgY3JlYXRpbmcg YSB3b3JraXRlbQphbmQgd3JhcHBpbmcgaXQgaW4gR3VDIGFjdGlvbiBpcyBkZWxlZ2F0ZWQgdG8g YSB3b3JrZXIuCgpUbyBkaXN0aW5ndWlzaCB0aGF0IHByZWVtcHRpb24gaGFzIGZpbmlzaGVkLCB3 ZSdyZSB1c2luZyBhZGRpdGlvbmFsCnBpZWNlIG9mIEhXU1AsIGFuZCBzaW5jZSB3ZSdyZSBub3Qg Z2V0dGluZyBjb250ZXh0IHN3aXRjaCBpbnRlcnJ1cHRzLAp3ZSdyZSBhbHNvIGFkZGluZyBhIHVz ZXIgaW50ZXJydXB0LgoKVGhlIGZhY3QgdGhhdCBvdXIgc3BlY2lhbCBwcmVlbXB0IGNvbnRleHQg aGFzIGNvbXBsZXRlZCB1bmZvcnR1bmF0ZWx5CmRvZXNuJ3QgbWVhbiB0aGF0IHdlJ3JlIHJlYWR5 IHRvIHN1Ym1pdCBuZXcgd29yay4gV2UgYWxzbyBuZWVkIHRvIHdhaXQKZm9yIEd1QyB0byBmaW5p c2ggaXRzIG93biBwcm9jZXNzaW5nLgoKdjI6IERvbid0IGNvbXBpbGUgb3V0IHRoZSB3YWl0IGZv ciBHdUMsIGhhbmRsZSB3b3JrcXVldWUgZmx1c2ggb24gcmVzZXQsCm5vIG5lZWQgZm9yIG9yZGVy ZWQgd29ya3F1ZXVlLCBwdXQgb24gYSByZXZpZXdlciBoYXQgd2hlbiBsb29raW5nIGF0IG15IG93 bgpwYXRjaGVzIChDaHJpcykKTW92ZSBzdHJ1Y3Qgd29yayBhcm91bmQgaW4gaW50ZWxfZ3VjLCBt b3ZlIHVzZXIgaW50ZXJydXB1dCBvdXRzaWRlIG9mCmNvbmRpdGlvbmFsIChNaWNoYcWCKQpLZWVw IHJpbmcgYXJvdW5kIHJhdGhlciB0aGFuIGNoYXNlIHRob3VnaCBpbnRlbF9jb250ZXh0Cgp2Mzog RXh0cmFjdCBXQSBmb3IgZmx1c2hpbmcgZ2d0dCB3cml0ZXMgdG8gYSBoZWxwZXIgKENocmlzKQpL ZWVwIHdvcmtfc3RydWN0IGluIGludGVsX2d1YyByYXRoZXIgdGhhbiBlbmdpbmUgKE1pY2hhxYIp ClVzZSBvcmRlcmVkIHdvcmtxdWV1ZSBmb3IgaW5qZWN0X3ByZWVtcHQgd29ya2VyIHRvIGF2b2lk IEd1QyBxdWlya3MuCgp2NDogRHJvcCBub3cgdW51c2VkIElOVEVMX0dVQ19QUkVFTVBUX09QVElP Tl9JTU1FRElBVEUgKERhbmllbGUpCkRyb3Agc3RyYXkgbmV3bGluZXMsIHVzZSBjb250YWluZXJf b2YgZm9yIGludGVsX2d1YyBpbiB3b3JrZXIsCmNoZWNrIGZvciBwcmVzZW5jZSBvZiB3b3JrcXVl dWUgd2hlbiBmbHVzaGluZyBpdCwgcmF0aGVyIHRoYW4KZW5hYmxlX2d1Y19zdWJtaXNzaW9uIG1v ZHBhcmFtLCByZW9yZGVyIHByZWVtcHQgcG9zdHByb2Nlc3NpbmcgKENocmlzKQoKdjU6IE1ha2Ug d3EgTlVMTCBhZnRlciBkZXN0cm95aW5nIGl0CgpTaWduZWQtb2ZmLWJ5OiBNaWNoYcWCIFdpbmlh cnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KQ2M6IEplZmYgTWNHZWUgPGplZmYubWNnZWVAaW50ZWwuY29t PgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpD YzogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KQ2M6IFR2cnRrbyBVcnN1bGlu IDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jICAgICAgICAgICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg ICAgICAgICAgICB8ICAxMCArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz c2lvbi5jIHwgMjA4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgIDggKysKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmggICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaCAgICB8ICAgNiArCiA3IGZpbGVzIGNoYW5nZWQsIDIyMiBpbnNlcnRpb25z KCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCA3Yjg3MTgw MmFlMzYuLmFmNzQ1NzQ5NTA5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0zNzMsOCAr MzczLDcgQEAgc3RhdGljIGludCBpOTE1X2dldHBhcmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCiAJCQl2YWx1ZSB8PSBJOTE1X1NDSEVEVUxFUl9DQVBfUFJJT1JJVFk7CiAK IAkJCWlmIChIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oZGV2X3ByaXYpICYmCi0JCQkgICAg aTkxNV9tb2RwYXJhbXMuZW5hYmxlX2V4ZWNsaXN0cyAmJgotCQkJICAgICFpOTE1X21vZHBhcmFt cy5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pCisJCQkgICAgaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2V4 ZWNsaXN0cykKIAkJCQl2YWx1ZSB8PSBJOTE1X1NDSEVEVUxFUl9DQVBfUFJFRU1QVElPTjsKIAkJ fQogCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IGQ4MDNlZjVmNGE3Zi4uYzI1 MDZmYjNhNDgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTI5MjEsNiArMjkyMSwxNiBA QCBpOTE1X2dlbV9yZXNldF9wcmVwYXJlX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiAJdGFza2xldF9raWxsKCZlbmdpbmUtPmV4ZWNsaXN0cy5pcnFfdGFza2xldCk7CiAJ dGFza2xldF9kaXNhYmxlKCZlbmdpbmUtPmV4ZWNsaXN0cy5pcnFfdGFza2xldCk7CiAKKwkvKgor CSAqIFdlJ3JlIHVzaW5nIHdvcmtlciB0byBxdWV1ZSBwcmVlbXB0aW9uIHJlcXVlc3RzIGZyb20g dGhlIHRhc2tsZXQgaW4KKwkgKiBHdUMgc3VibWlzc2lvbiBtb2RlLgorCSAqIEV2ZW4gdGhvdWdo IHRhc2tsZXQgd2FzIGRpc2FibGVkLCB3ZSBtYXkgc3RpbGwgaGF2ZSBhIHdvcmtlciBxdWV1ZWQu CisJICogTGV0J3MgbWFrZSBzdXJlIHRoYXQgYWxsIHdvcmtlcnMgc2NoZWR1bGVkIGJlZm9yZSBk aXNhYmxpbmcgdGhlCisJICogdGFza2xldCBhcmUgY29tcGxldGVkIGJlZm9yZSBjb250aW51aW5n IHdpdGggdGhlIHJlc2V0LgorCSAqLworCWlmIChlbmdpbmUtPmk5MTUtPmd1Yy5wcmVlbXB0X3dx KQorCQlmbHVzaF93b3JrcXVldWUoZW5naW5lLT5pOTE1LT5ndWMucHJlZW1wdF93cSk7CisKIAlp ZiAoZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcikKIAkJZW5naW5lLT5pcnFfc2Vxbm9fYmFycmll cihlbmdpbmUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19z dWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMK aW5kZXggNjAwZWY5ZDMzNzczLi5jM2VhZWI0NDg1ZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTU2MSw2ICs1NjEsMTA4IEBAIHN0YXRpYyB2b2lk IGd1Y19hZGRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCiAJc3Bpbl91bmxvY2soJmNs aWVudC0+d3FfbG9jayk7CiB9CiAKKy8qCisgKiBXaGVuIHdlJ3JlIGRvaW5nIHN1Ym1pc3Npb25z IHVzaW5nIHJlZ3VsYXIgZXhlY2xpc3RzIGJhY2tlbmQsIHdyaXRpbmcgdG8KKyAqIEVMU1AgZnJv bSBDUFUgc2lkZSBpcyBlbm91Z2ggdG8gbWFrZSBzdXJlIHRoYXQgd3JpdGVzIHRvIHJpbmdidWZm ZXIgcGFnZXMKKyAqIHBpbm5lZCBpbiBtYXBwYWJsZSBhcGVydHVyZSBwb3J0aW9uIG9mIEdHVFQg YXJlIHZpc2libGUgdG8gY29tbWFuZCBzdHJlYW1lci4KKyAqIFdyaXRlcyBkb25lIGJ5IEd1QyBv biBvdXIgYmVoYWxmIGFyZSBub3QgZ3VhcmFudGVlaW5nIHN1Y2ggb3JkZXJpbmcsCisgKiB0aGVy ZWZvcmUsIHRvIGVuc3VyZSB0aGUgZmx1c2gsIHdlJ3JlIGlzc3VpbmcgYSBQT1NUSU5HIFJFQUQu CisgKi8KK3N0YXRpYyB2b2lkIGZsdXNoX2dndHRfd3JpdGVzKHN0cnVjdCBpOTE1X3ZtYSAqdm1h KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUodm1hLT5v YmotPmJhc2UuZGV2KTsKKworCWlmIChpOTE1X3ZtYV9pc19tYXBfYW5kX2ZlbmNlYWJsZSh2bWEp KQorCQlQT1NUSU5HX1JFQURfRlcoR1VDX1NUQVRVUyk7Cit9CisKKyNkZWZpbmUgR1VDX1BSRUVN UFRfRklOSVNIRUQgMHgxCisjZGVmaW5lIEdVQ19QUkVFTVBUX0JSRUFEQ1JVTUJfRFdPUkRTIDB4 OAorc3RhdGljIHZvaWQgaW5qZWN0X3ByZWVtcHRfY29udGV4dChzdHJ1Y3Qgd29ya19zdHJ1Y3Qg KndvcmspCit7CisJc3RydWN0IGd1Y19wcmVlbXB0X3dvcmsgKnByZWVtcHRfd29yayA9CisJCWNv bnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKnByZWVtcHRfd29yayksIHdvcmspOworCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHByZWVtcHRfd29yay0+ZW5naW5lOworCXN0cnVjdCBp bnRlbF9ndWMgKmd1YyA9IGNvbnRhaW5lcl9vZihwcmVlbXB0X3dvcmssIHR5cGVvZigqZ3VjKSwK KwkJCQkJICAgICBwcmVlbXB0X3dvcmtbZW5naW5lLT5pZF0pOworCXN0cnVjdCBpOTE1X2d1Y19j bGllbnQgKmNsaWVudCA9IGd1Yy0+cHJlZW1wdF9jbGllbnQ7CisJc3RydWN0IGludGVsX3Jpbmcg KnJpbmcgPSBjbGllbnQtPm93bmVyLT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZzsKKwl1MzIgY3R4 X2Rlc2MgPSBsb3dlcl8zMl9iaXRzKGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihjbGllbnQt Pm93bmVyLAorCQkJCQkJCQkgZW5naW5lKSk7CisJdTMyICpjcyA9IHJpbmctPnZhZGRyICsgcmlu Zy0+dGFpbDsKKwl1MzIgZGF0YVs3XTsKKworCWlmIChlbmdpbmUtPmlkID09IFJDUykgeworCQlj cyA9IGdlbjhfZW1pdF9nZ3R0X3dyaXRlX3JjcyhjcywgR1VDX1BSRUVNUFRfRklOSVNIRUQsCisJ CQkJaW50ZWxfaHdzX3ByZWVtcHRfZG9uZV9hZGRyZXNzKGVuZ2luZSkpOworCX0gZWxzZSB7CisJ CWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGUoY3MsIEdVQ19QUkVFTVBUX0ZJTklTSEVELAorCQkJ CWludGVsX2h3c19wcmVlbXB0X2RvbmVfYWRkcmVzcyhlbmdpbmUpKTsKKwkJKmNzKysgPSBNSV9O T09QOworCQkqY3MrKyA9IE1JX05PT1A7CisJfQorCSpjcysrID0gTUlfVVNFUl9JTlRFUlJVUFQ7 CisJKmNzKysgPSBNSV9OT09QOworCisJR0VNX0JVR19PTighSVNfQUxJR05FRChyaW5nLT5zaXpl LAorCQkJICAgICAgIEdVQ19QUkVFTVBUX0JSRUFEQ1JVTUJfRFdPUkRTICogc2l6ZW9mKHUzMikp KTsKKwlHRU1fQlVHX09OKCh2b2lkICopY3MgLSAocmluZy0+dmFkZHIgKyByaW5nLT50YWlsKSAh PQorCQkgICBHVUNfUFJFRU1QVF9CUkVBRENSVU1CX0RXT1JEUyAqIHNpemVvZih1MzIpKTsKKwor CXJpbmctPnRhaWwgKz0gR1VDX1BSRUVNUFRfQlJFQURDUlVNQl9EV09SRFMgKiBzaXplb2YodTMy KTsKKwlyaW5nLT50YWlsICY9IChyaW5nLT5zaXplIC0gMSk7CisKKwlmbHVzaF9nZ3R0X3dyaXRl cyhyaW5nLT52bWEpOworCisJc3Bpbl9sb2NrX2lycSgmY2xpZW50LT53cV9sb2NrKTsKKwlndWNf d3FfaXRlbV9hcHBlbmQoY2xpZW50LCBlbmdpbmUtPmd1Y19pZCwgY3R4X2Rlc2MsCisJCQkgICBy aW5nLT50YWlsIC8gc2l6ZW9mKHU2NCksIDApOworCXNwaW5fdW5sb2NrX2lycSgmY2xpZW50LT53 cV9sb2NrKTsKKworCWRhdGFbMF0gPSBJTlRFTF9HVUNfQUNUSU9OX1JFUVVFU1RfUFJFRU1QVElP TjsKKwlkYXRhWzFdID0gY2xpZW50LT5zdGFnZV9pZDsKKwlkYXRhWzJdID0gSU5URUxfR1VDX1BS RUVNUFRfT1BUSU9OX0RST1BfV09SS19RIHwKKwkJICBJTlRFTF9HVUNfUFJFRU1QVF9PUFRJT05f RFJPUF9TVUJNSVRfUTsKKwlkYXRhWzNdID0gZW5naW5lLT5ndWNfaWQ7CisJZGF0YVs0XSA9IGd1 Yy0+ZXhlY2J1Zl9jbGllbnQtPnByaW9yaXR5OworCWRhdGFbNV0gPSBndWMtPmV4ZWNidWZfY2xp ZW50LT5zdGFnZV9pZDsKKwlkYXRhWzZdID0gZ3VjX2dndHRfb2Zmc2V0KGd1Yy0+c2hhcmVkX2Rh dGEpOworCisJaWYgKFdBUk5fT04oaW50ZWxfZ3VjX3NlbmQoZ3VjLCBkYXRhLCBBUlJBWV9TSVpF KGRhdGEpKSkpIHsKKwkJZXhlY2xpc3RzX2NsZWFyX2FjdGl2ZSgmZW5naW5lLT5leGVjbGlzdHMs CisJCQkJICAgICAgIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCk7CisJCXRhc2tsZXRfc2NoZWR1 bGUoJmVuZ2luZS0+ZXhlY2xpc3RzLmlycV90YXNrbGV0KTsKKwl9Cit9CisKKy8qCisgKiBXZSdy ZSB1c2luZyB1c2VyIGludGVycnVwdCBhbmQgSFdTUCB2YWx1ZSB0byBtYXJrIHRoYXQgcHJlZW1w dGlvbiBoYXMKKyAqIGZpbmlzaGVkIGFuZCBHUFUgaXMgaWRsZS4gTm9ybWFsbHksIHdlIGNvdWxk IHVud2luZCBhbmQgY29udGludWUgc2ltaWxhciB0bworICogZXhlY2xpc3RzIHN1Ym1pc3Npb24g cGF0aC4gVW5mb3J0dW5hdGVseSwgd2l0aCBHdUMgd2UgYWxzbyBuZWVkIHRvIHdhaXQgZm9yCisg KiBpdCB0byBmaW5pc2ggaXRzIG93biBwb3N0cHJvY2Vzc2luZywgYmVmb3JlIGF0dGVtcHRpbmcg dG8gc3VibWl0LiBPdGhlcndpc2UKKyAqIEd1QyBtYXkgc2lsZW50bHkgaWdub3JlIG91ciBzdWJt aXNzaW9ucywgYW5kIHRodXMgd2UgcmlzayBsb3NpbmcgcmVxdWVzdCBhdAorICogYmVzdCwgZXhl Y3V0aW5nIG91dC1vZi1vcmRlciBhbmQgY2F1c2luZyBrZXJuZWwgcGFuaWMgYXQgd29yc3QuCisg Ki8KKyNkZWZpbmUgR1VDX1BSRUVNUFRfUE9TVFBST0NFU1NfREVMQVlfTVMgMTAKK3N0YXRpYyB2 b2lkIHdhaXRfZm9yX2d1Y19wcmVlbXB0X3JlcG9ydChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmVuZ2luZS0+aTkxNS0+Z3VjOwor CXN0cnVjdCBndWNfc2hhcmVkX2N0eF9kYXRhICpkYXRhID0gZ3VjLT5zaGFyZWRfZGF0YV92YWRk cjsKKwlzdHJ1Y3QgZ3VjX2N0eF9yZXBvcnQgKnJlcG9ydCA9CisJCSZkYXRhLT5wcmVlbXB0X2N0 eF9yZXBvcnRbZW5naW5lLT5ndWNfaWRdOworCisJV0FSTl9PTih3YWl0X2Zvcl9hdG9taWMocmVw b3J0LT5yZXBvcnRfcmV0dXJuX3N0YXR1cyA9PQorCQkJCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVT X0NPTVBMRVRFLAorCQkJCUdVQ19QUkVFTVBUX1BPU1RQUk9DRVNTX0RFTEFZX01TKSk7CisJLyoK KwkgKiBHdUMgaXMgZXhwZWN0aW5nIHRoYXQgd2UncmUgYWxzbyBnb2luZyB0byBjbGVhciB0aGUg YWZmZWN0ZWQgY29udGV4dAorCSAqIGNvdW50ZXIsIGxldCdzIGFsc28gcmVzZXQgdGhlIHJldHVy biBzdGF0dXMgdG8gbm90IGRlcGVuZCBvbiBHdUMKKwkgKiByZXNldHRpbmcgaXQgYWZ0ZXIgcmVj aWV2aW5nIGFub3RoZXIgcHJlZW1wdCBhY3Rpb24KKwkgKi8KKwlyZXBvcnQtPmFmZmVjdGVkX2Nv dW50ID0gMDsKKwlyZXBvcnQtPnJlcG9ydF9yZXR1cm5fc3RhdHVzID0gSU5URUxfR1VDX1JFUE9S VF9TVEFUVVNfVU5LTk9XTjsKK30KKwogLyoqCiAgKiBpOTE1X2d1Y19zdWJtaXQoKSAtIFN1Ym1p dCBjb21tYW5kcyB0aHJvdWdoIEd1QwogICogQGVuZ2luZTogZW5naW5lIGFzc29jaWF0ZWQgd2l0 aCB0aGUgY29tbWFuZHMKQEAgLTU3MCw4ICs2NzIsNyBAQCBzdGF0aWMgdm9pZCBndWNfYWRkX3Jl cXVlc3Qoc3RydWN0IGludGVsX2d1YyAqZ3VjLAogICovCiBzdGF0aWMgdm9pZCBpOTE1X2d1Y19z dWJtaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpn dWMgPSAmZGV2X3ByaXYtPmd1YzsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZW5naW5lLT5p OTE1LT5ndWM7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlz dHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CiAJc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQgPSBl eGVjbGlzdHMtPnBvcnQ7CiAJdW5zaWduZWQgaW50IG47CkBAIC01ODQsOCArNjg1LDcgQEAgc3Rh dGljIHZvaWQgaTkxNV9ndWNfc3VibWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK IAkJaWYgKHJxICYmIGNvdW50ID09IDApIHsKIAkJCXBvcnRfc2V0KCZwb3J0W25dLCBwb3J0X3Bh Y2socnEsICsrY291bnQpKTsKIAotCQkJaWYgKGk5MTVfdm1hX2lzX21hcF9hbmRfZmVuY2VhYmxl KHJxLT5yaW5nLT52bWEpKQotCQkJCVBPU1RJTkdfUkVBRF9GVyhHVUNfU1RBVFVTKTsKKwkJCWZs dXNoX2dndHRfd3JpdGVzKHJxLT5yaW5nLT52bWEpOwogCiAJCQlndWNfYWRkX3JlcXVlc3QoZ3Vj LCBycSk7CiAJCX0KQEAgLTYxMywxMyArNzEzLDMyIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2Rl cXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWJvb2wgc3VibWl0ID0gZmFs c2U7CiAJc3RydWN0IHJiX25vZGUgKnJiOwogCi0JaWYgKHBvcnRfaXNzZXQocG9ydCkpCi0JCXBv cnQrKzsKLQogCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOwogCXJiID0g ZXhlY2xpc3RzLT5maXJzdDsKIAlHRU1fQlVHX09OKHJiX2ZpcnN0KCZleGVjbGlzdHMtPnF1ZXVl KSAhPSByYik7Ci0Jd2hpbGUgKHJiKSB7CisKKwlpZiAoIXJiKQorCQlnb3RvIHVubG9jazsKKwor CWlmIChIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oZW5naW5lLT5pOTE1KSAmJiBwb3J0X2lz c2V0KHBvcnQpKSB7CisJCXN0cnVjdCBndWNfcHJlZW1wdF93b3JrICpwcmVlbXB0X3dvcmsgPQor CQkJJmVuZ2luZS0+aTkxNS0+Z3VjLnByZWVtcHRfd29ya1tlbmdpbmUtPmlkXTsKKworCQlpZiAo cmJfZW50cnkocmIsIHN0cnVjdCBpOTE1X3ByaW9saXN0LCBub2RlKS0+cHJpb3JpdHkgPgorCQkg ICAgbWF4KHBvcnRfcmVxdWVzdChwb3J0KS0+cHJpb3RyZWUucHJpb3JpdHksIDApKSB7CisJCQll eGVjbGlzdHNfc2V0X2FjdGl2ZShleGVjbGlzdHMsCisJCQkJCSAgICAgRVhFQ0xJU1RTX0FDVElW RV9QUkVFTVBUKTsKKwkJCXF1ZXVlX3dvcmsoZW5naW5lLT5pOTE1LT5ndWMucHJlZW1wdF93cSwK KwkJCQkgICAmcHJlZW1wdF93b3JrLT53b3JrKTsKKwkJCWdvdG8gdW5sb2NrOworCQl9IGVsc2Ug aWYgKHBvcnRfaXNzZXQobGFzdF9wb3J0KSkgeworCQkJZ290byB1bmxvY2s7CisJCX0KKworCQlw b3J0Kys7CisJfQorCisJZG8gewogCQlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCA9IHJiX2VudHJ5 KHJiLCB0eXBlb2YoKnApLCBub2RlKTsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy cSwgKnJuOwogCkBAIC02NDksNyArNzY4LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9ndWNfZGVxdWV1 ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCUlOSVRfTElTVF9IRUFEKCZwLT5y ZXF1ZXN0cyk7CiAJCWlmIChwLT5wcmlvcml0eSAhPSBJOTE1X1BSSU9SSVRZX05PUk1BTCkKIAkJ CWttZW1fY2FjaGVfZnJlZShlbmdpbmUtPmk5MTUtPnByaW9yaXRpZXMsIHApOwotCX0KKwl9IHdo aWxlIChyYik7CiBkb25lOgogCWV4ZWNsaXN0cy0+Zmlyc3QgPSByYjsKIAlpZiAoc3VibWl0KSB7 CkBAIC02NTcsNiArNzc2LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9ndWNfZGVxdWV1ZShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWV4ZWNsaXN0c19zZXRfYWN0aXZlKGV4ZWNsaXN0 cywgRVhFQ0xJU1RTX0FDVElWRV9VU0VSKTsKIAkJaTkxNV9ndWNfc3VibWl0KGVuZ2luZSk7CiAJ fQordW5sb2NrOgogCXNwaW5fdW5sb2NrX2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7CiB9 CiAKQEAgLTY2NSw4ICs3ODUsNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2d1Y19pcnFfaGFuZGxlcih1 bnNpZ25lZCBsb25nIGRhdGEpCiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2lu ZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKIAlzdHJ1 Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0cy0+cG9ydDsKLQljb25zdCBzdHJ1Y3Qg ZXhlY2xpc3RfcG9ydCAqIGNvbnN0IGxhc3RfcG9ydCA9Ci0JCSZleGVjbGlzdHMtPnBvcnRbZXhl Y2xpc3RzLT5wb3J0X21hc2tdOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnE7CiAK IAlycSA9IHBvcnRfcmVxdWVzdCgmcG9ydFswXSk7CkBAIC02ODEsNyArNzk5LDE5IEBAIHN0YXRp YyB2b2lkIGk5MTVfZ3VjX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKIAlpZiAoIXJx KQogCQlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9V U0VSKTsKIAotCWlmICghcG9ydF9pc3NldChsYXN0X3BvcnQpKQorCWlmIChleGVjbGlzdHNfaXNf YWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKSAmJgorCSAgICBpbnRl bF9yZWFkX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX1BSRUVNUFRfSU5ERVgpID09 CisJICAgIEdVQ19QUkVFTVBUX0ZJTklTSEVEKSB7CisJCWV4ZWNsaXN0c19jYW5jZWxfcG9ydF9y ZXF1ZXN0cygmZW5naW5lLT5leGVjbGlzdHMpOworCQlleGVjbGlzdHNfdW53aW5kX2luY29tcGxl dGVfcmVxdWVzdHMoZXhlY2xpc3RzKTsKKworCQl3YWl0X2Zvcl9ndWNfcHJlZW1wdF9yZXBvcnQo ZW5naW5lKTsKKworCQlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RT X0FDVElWRV9QUkVFTVBUKTsKKwkJaW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1 X0dFTV9IV1NfUFJFRU1QVF9JTkRFWCwgMCk7CisJfQorCisJaWYgKCFleGVjbGlzdHNfaXNfYWN0 aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKSkKIAkJaTkxNV9ndWNfZGVx dWV1ZShlbmdpbmUpOwogfQogCkBAIC0xMDU2LDYgKzExODYsNTEgQEAgc3RhdGljIHZvaWQgZ3Vj X2Fkc19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAlpOTE1X3ZtYV91bnBpbl9hbmRf cmVsZWFzZSgmZ3VjLT5hZHNfdm1hKTsKIH0KIAorc3RhdGljIGludCBndWNfcHJlZW1wdF93b3Jr X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisKKwkvKgorCSAqIEV2ZW4gdGhv dWdoIGJvdGggc2VuZGluZyBHdUMgYWN0aW9uLCBhbmQgYWRkaW5nIGEgbmV3IHdvcmtpdGVtIHRv CisJICogR3VDIHdvcmtxdWV1ZSBhcmUgc2VyaWFsaXplZCAoZWFjaCB3aXRoIGl0cyBvd24gbG9j a2luZyksIHNpbmNlCisJICogd2UncmUgdXNpbmcgbXV0bGlwbGUgZW5naW5lcywgaXQncyBwb3Nz aWJsZSB0aGF0IHdlJ3JlIGdvaW5nIHRvCisJICogaXNzdWUgYSBwcmVlbXB0IHJlcXVlc3Qgd2l0 aCB0d28gKG9yIG1vcmUgLSBlYWNoIGZvciBkaWZmZXJlbnQKKwkgKiBlbmdpbmUpIHdvcmtpdGVt cyBpbiBHdUMgcXVldWUuIEluIHRoaXMgc2l0dWF0aW9uLCBHdUMgbWF5IHN1Ym1pdAorCSAqIGFs bCBvZiB0aGVtLCB3aGljaCB3aWxsIG1ha2UgdXMgdmVyeSBjb25mdXNlZC4KKwkgKiBPdXIgcHJl ZW1wdGlvbiBjb250ZXh0cyBtYXkgZXZlbiBhbHJlYWR5IGJlIGNvbXBsZXRlIC0gYmVmb3JlIHdl CisJICogZXZlbiBoYWQgdGhlIGNoYW5jZSB0byBzZW50IHRoZSBwcmVlbXB0IGFjdGlvbiB0byBH dUMhLiBSYXRoZXIKKwkgKiB0aGFuIGludHJvZHVjaW5nIHlldCBhbm90aGVyIGxvY2ssIHdlIGNh biBqdXN0IHVzZSBvcmRlcmVkIHdvcmtxdWV1ZQorCSAqIHRvIG1ha2Ugc3VyZSB3ZSdyZSBhbHdh eXMgc2VuZGluZyBhIHNpbmdsZSBwcmVlbXB0aW9uIHJlcXVlc3Qgd2l0aCBhCisJICogc2luZ2xl IHdvcmtpdGVtLgorCSAqLworCWd1Yy0+cHJlZW1wdF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1 ZXVlKCJpOTE1LWd1Y19wcmVlbXB0IiwKKwkJCQkJCSAgV1FfSElHSFBSSSk7CisJaWYgKCFndWMt PnByZWVtcHRfd3EpCisJCXJldHVybiAtRU5PTUVNOworCisJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZGV2X3ByaXYsIGlkKSB7CisJCWd1Yy0+cHJlZW1wdF93b3JrW2lkXS5lbmdpbmUgPSBlbmdp bmU7CisJCUlOSVRfV09SSygmZ3VjLT5wcmVlbXB0X3dvcmtbaWRdLndvcmssIGluamVjdF9wcmVl bXB0X2NvbnRleHQpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBndWNfcHJl ZW1wdF93b3JrX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7CisJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCisJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQorCQljYW5jZWxfd29ya19zeW5jKCZndWMt PnByZWVtcHRfd29ya1tpZF0ud29yayk7CisKKwlkZXN0cm95X3dvcmtxdWV1ZShndWMtPnByZWVt cHRfd3EpOworCWd1Yy0+cHJlZW1wdF93cSA9IE5VTEw7Cit9CisKIC8qCiAgKiBTZXQgdXAgdGhl IG1lbW9yeSByZXNvdXJjZXMgdG8gYmUgc2hhcmVkIHdpdGggdGhlIEd1QyAodmlhIHRoZSBHR1RU KQogICogYXQgZmlybXdhcmUgbG9hZGluZyB0aW1lLgpAQCAtMTA4MCwxMiArMTI1NSwxOCBAQCBp bnQgaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJfc2hhcmVkX2RhdGE7CiAKKwlyZXQgPSBn dWNfcHJlZW1wdF93b3JrX2NyZWF0ZShndWMpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX2xvZzsK KwogCXJldCA9IGd1Y19hZHNfY3JlYXRlKGd1Yyk7CiAJaWYgKHJldCA8IDApCi0JCWdvdG8gZXJy X2xvZzsKKwkJZ290byBlcnJfd3E7CiAKIAlyZXR1cm4gMDsKIAorZXJyX3dxOgorCWd1Y19wcmVl bXB0X3dvcmtfZGVzdHJveShndWMpOwogZXJyX2xvZzoKIAlpbnRlbF9ndWNfbG9nX2Rlc3Ryb3ko Z3VjKTsKIGVycl9zaGFyZWRfZGF0YToKQEAgLTExMDAsNiArMTI4MSw3IEBAIHZvaWQgaTkxNV9n dWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlz dHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKIAogCWd1Y19hZHNfZGVzdHJv eShndWMpOworCWd1Y19wcmVlbXB0X3dvcmtfZGVzdHJveShndWMpOwogCWludGVsX2d1Y19sb2df ZGVzdHJveShndWMpOwogCWd1Y19zaGFyZWRfZGF0YV9kZXN0cm95KGd1Yyk7CiAJZ3VjX3N0YWdl X2Rlc2NfcG9vbF9kZXN0cm95KGd1Yyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCmluZGV4IDZj YTU1YzViZWQzYy4uNTM4NjE1ZmY1ZWEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaApAQCAt MzQsNiArMzQsMTEgQEAKICNpbmNsdWRlICJpOTE1X2d1Y19yZWcuaCIKICNpbmNsdWRlICJpOTE1 X3ZtYS5oIgogCitzdHJ1Y3QgZ3VjX3ByZWVtcHRfd29yayB7CisJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOworCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOworfTsKKwogLyoKICAqIFRv cCBsZXZlbCBzdHJ1Y3R1cmUgb2YgR3VDLiBJdCBoYW5kbGVzIGZpcm13YXJlIGxvYWRpbmcgYW5k IG1hbmFnZXMgY2xpZW50CiAgKiBwb29sIGFuZCBkb29yYmVsbHMuIGludGVsX2d1YyBvd25zIGEg aTkxNV9ndWNfY2xpZW50IHRvIHJlcGxhY2UgdGhlIGxlZ2FjeQpAQCAtNjAsNiArNjUsOSBAQCBz dHJ1Y3QgaW50ZWxfZ3VjIHsKIAlzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpleGVjYnVmX2NsaWVu dDsKIAlzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpwcmVlbXB0X2NsaWVudDsKIAorCXN0cnVjdCBn dWNfcHJlZW1wdF93b3JrIHByZWVtcHRfd29ya1tJOTE1X05VTV9FTkdJTkVTXTsKKwlzdHJ1Y3Qg d29ya3F1ZXVlX3N0cnVjdCAqcHJlZW1wdF93cTsKKwogCURFQ0xBUkVfQklUTUFQKGRvb3JiZWxs X2JpdG1hcCwgR1VDX05VTV9ET09SQkVMTFMpOwogCS8qIEN5Y2xpYyBjb3VudGVyIG1vZCBwYWdl c2l6ZQkqLwogCXUzMiBkYl9jYWNoZWxpbmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4 IGI1ZDM4MmVmOGQ4NS4uNjg0MGVjOGRiMDM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpA QCAtMzg1LDcgKzM4NSw3IEBAIHN0YXRpYyB2b2lkIF9fdW53aW5kX2luY29tcGxldGVfcmVxdWVz dHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCX0KIH0KIAotc3RhdGljIHZvaWQK K3ZvaWQKIGV4ZWNsaXN0c191bndpbmRfaW5jb21wbGV0ZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSA9CkBAIC02OTYsNyArNjk2LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVl dWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCX0KIH0KIAotc3RhdGljIHZvaWQK K3ZvaWQKIGV4ZWNsaXN0c19jYW5jZWxfcG9ydF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cykKIHsKIAlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAq cG9ydCA9IGV4ZWNsaXN0cy0+cG9ydDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKaW5kZXggNjg5 ZmRlMWE2M2E5Li4xNzE4MmNlMjk2NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC0x MDcsNyArMTA3LDYgQEAgaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9yKHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0ICpjdHgsCiAJcmV0dXJuIGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19kZXNj OwogfQogCi0KIC8qIEV4ZWNsaXN0cyAqLwogaW50IGludGVsX3Nhbml0aXplX2VuYWJsZV9leGVj bGlzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgICBpbnQgZW5h YmxlX2V4ZWNsaXN0cyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5k ZXggNGE1YTA4OTg1MzI4Li42OWFkODc1ZmQwMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKQEAgLTU1Nyw2ICs1NTcsMTIgQEAgZXhlY2xpc3RzX2lzX2FjdGl2ZShj b25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzLAogCXJldHVybiB0 ZXN0X2JpdChiaXQsICh1bnNpZ25lZCBsb25nICopJmV4ZWNsaXN0cy0+YWN0aXZlKTsKIH0KIAor dm9pZAorZXhlY2xpc3RzX2NhbmNlbF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVf ZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzKTsKKwordm9pZAorZXhlY2xpc3RzX3Vud2luZF9p bmNvbXBsZXRlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlz dHMpOworCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAogZXhlY2xpc3RzX251bV9wb3J0cyhj b25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cykKIHsK LS0gCjIuMTMuNgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==