From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v3 12/14] drm/i915/guc: Preemption! With GuC Date: Thu, 19 Oct 2017 20:36:17 +0200 Message-ID: <20171019183619.6235-13-michal.winiarski@intel.com> References: <20171019183619.6235-1-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 2DA2C6EB48 for ; Thu, 19 Oct 2017 18:40:15 +0000 (UTC) In-Reply-To: <20171019183619.6235-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 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 IEd1QyBxdWlya3MuCgpTaWduZWQtb2ZmLWJ5OiBNaWNoYcWCIFdpbmlhcnNraSA8bWljaGFsLndp bmlhcnNraUBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KQ2M6IEplZmYgTWNHZWUgPGplZmYubWNnZWVAaW50ZWwuY29tPgpDYzogSm9vbmFzIExh aHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogT3NjYXIgTWF0ZW8g PG9zY2FyLm1hdGVvQGludGVsLmNvbT4KQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxp bkBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAg ICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAg fCAgMTAgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8IDIw NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjLmggICAgICAgICAgIHwgICA4ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5o ICAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmggICAgfCAgIDggKysKIDcgZmlsZXMgY2hhbmdlZCwgMjIyIGluc2VydGlvbnMoKyksIDE4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IDdiODcxODAyYWUzNi4uYWY3 NDU3NDk1MDljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTM3Myw4ICszNzMsNyBAQCBz dGF0aWMgaW50IGk5MTVfZ2V0cGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKIAkJCXZhbHVlIHw9IEk5MTVfU0NIRURVTEVSX0NBUF9QUklPUklUWTsKIAogCQkJaWYgKEhB U19MT0dJQ0FMX1JJTkdfUFJFRU1QVElPTihkZXZfcHJpdikgJiYKLQkJCSAgICBpOTE1X21vZHBh cmFtcy5lbmFibGVfZXhlY2xpc3RzICYmCi0JCQkgICAgIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9n dWNfc3VibWlzc2lvbikKKwkJCSAgICBpOTE1X21vZHBhcmFtcy5lbmFibGVfZXhlY2xpc3RzKQog CQkJCXZhbHVlIHw9IEk5MTVfU0NIRURVTEVSX0NBUF9QUkVFTVBUSU9OOwogCQl9CiAJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggZWYxNGM2ZDU3MGRjLi43ZDUyYmFmNGYzYmQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMjkwNCw2ICsyOTA0LDE2IEBAIGk5MTVfZ2Vt X3Jlc2V0X3ByZXBhcmVfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl0 YXNrbGV0X2tpbGwoJmVuZ2luZS0+ZXhlY2xpc3RzLmlycV90YXNrbGV0KTsKIAl0YXNrbGV0X2Rp c2FibGUoJmVuZ2luZS0+ZXhlY2xpc3RzLmlycV90YXNrbGV0KTsKIAorCS8qCisJICogV2UncmUg dXNpbmcgd29ya2VyIHRvIHF1ZXVlIHByZWVtcHRpb24gcmVxdWVzdHMgZnJvbSB0aGUgdGFza2xl dCBpbgorCSAqIEd1QyBzdWJtaXNzaW9uIG1vZGUuCisJICogRXZlbiB0aG91Z2ggdGFza2xldCB3 YXMgZGlzYWJsZWQsIHdlIG1heSBzdGlsbCBoYXZlIGEgd29ya2VyIHF1ZXVlZC4KKwkgKiBMZXQn cyBtYWtlIHN1cmUgdGhhdCBhbGwgd29ya2VycyBzY2hlZHVsZWQgYmVmb3JlIGRpc2FibGluZyB0 aGUKKwkgKiB0YXNrbGV0IGFyZSBjb21wbGV0ZWQgYmVmb3JlIGNvbnRpbnVpbmcgd2l0aCB0aGUg cmVzZXQuCisJICovCisJaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWNfc3VibWlzc2lvbikK KwkJZmx1c2hfd29ya3F1ZXVlKGVuZ2luZS0+aTkxNS0+Z3VjLnByZWVtcHRfd3EpOworCiAJaWYg KGVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIpCiAJCWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIo ZW5naW5lKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3Vi bWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmlu ZGV4IGU0N2E1MDAwZmMwMy4uYTExZWQ0ZGVmZjRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC01NTksNiArNTU5LDEwNSBAQCBzdGF0aWMgdm9pZCBn dWNfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2d1YyAqZ3VjLAogCXNwaW5fdW5sb2NrKCZjbGll bnQtPndxX2xvY2spOwogfQogCisvKgorICogV2hlbiB3ZSdyZSBkb2luZyBzdWJtaXNzaW9ucyB1 c2luZyByZWd1bGFyIGV4ZWNsaXN0cyBiYWNrZW5kLCB3cml0aW5nIHRvCisgKiBFTFNQIGZyb20g Q1BVIHNpZGUgaXMgZW5vdWdoIHRvIG1ha2Ugc3VyZSB0aGF0IHdyaXRlcyB0byByaW5nYnVmZmVy IHBhZ2VzCisgKiBwaW5uZWQgaW4gbWFwcGFibGUgYXBlcnR1cmUgcG9ydGlvbiBvZiBHR1RUIGFy ZSB2aXNpYmxlIHRvIGNvbW1hbmQgc3RyZWFtZXIuCisgKiBXcml0ZXMgZG9uZSBieSBHdUMgb24g b3VyIGJlaGFsZiBhcmUgbm90IGd1YXJhbnRlZWluZyBzdWNoIG9yZGVyaW5nLAorICogdGhlcmVm b3JlLCB0byBlbnN1cmUgdGhlIGZsdXNoLCB3ZSdyZSBpc3N1aW5nIGEgUE9TVElORyBSRUFELgor ICovCitzdGF0aWMgdm9pZCBmbHVzaF9nZ3R0X3dyaXRlcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSkK K3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHZtYS0+b2Jq LT5iYXNlLmRldik7CisKKwlpZiAoaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUodm1hKSkK KwkJUE9TVElOR19SRUFEX0ZXKEdVQ19TVEFUVVMpOworfQorCisjZGVmaW5lIEdVQ19QUkVFTVBU X0ZJTklTSEVEIDB4MQorI2RlZmluZSBHVUNfUFJFRU1QVF9CUkVBRENSVU1CX0RXT1JEUyAweDgK K3N0YXRpYyB2b2lkIGluamVjdF9wcmVlbXB0X2NvbnRleHQoc3RydWN0IHdvcmtfc3RydWN0ICp3 b3JrKQoreworCXN0cnVjdCBndWNfcHJlZW1wdF93b3JrICpwcmVlbXB0X3dvcmsgPQorCQljb250 YWluZXJfb2Yod29yaywgdHlwZW9mKCpwcmVlbXB0X3dvcmspLCB3b3JrKTsKKwlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUgPSBwcmVlbXB0X3dvcmstPmVuZ2luZTsKKwlzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMgPSAmZW5naW5lLT5pOTE1LT5ndWM7CisJc3RydWN0IGk5MTVfZ3VjX2NsaWVu dCAqY2xpZW50ID0gZ3VjLT5jbGllbnRbUFJFRU1QVF07CisJc3RydWN0IGludGVsX3JpbmcgKnJp bmcgPSBjbGllbnQtPm93bmVyLT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZzsKKwl1MzIgY3R4X2Rl c2MgPSBsb3dlcl8zMl9iaXRzKGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihjbGllbnQtPm93 bmVyLAorCQkJCQkJCQkgZW5naW5lKSk7CisJdTMyICpjcyA9IHJpbmctPnZhZGRyICsgcmluZy0+ dGFpbDsKKwl1MzIgZGF0YVs3XTsKKworCWlmIChlbmdpbmUtPmlkID09IFJDUykgeworCQljcyA9 IGdlbjhfZW1pdF9nZ3R0X3dyaXRlX3JjcyhjcywgR1VDX1BSRUVNUFRfRklOSVNIRUQsCisJCQkJ aW50ZWxfaHdzX3ByZWVtcHRfZG9uZV9hZGRyZXNzKGVuZ2luZSkpOworCX0gZWxzZSB7CisJCWNz ID0gZ2VuOF9lbWl0X2dndHRfd3JpdGUoY3MsIEdVQ19QUkVFTVBUX0ZJTklTSEVELAorCQkJCWlu dGVsX2h3c19wcmVlbXB0X2RvbmVfYWRkcmVzcyhlbmdpbmUpKTsKKwkJKmNzKysgPSBNSV9OT09Q OworCQkqY3MrKyA9IE1JX05PT1A7CisJfQorCSpjcysrID0gTUlfVVNFUl9JTlRFUlJVUFQ7CisJ KmNzKysgPSBNSV9OT09QOworCisJR0VNX0JVR19PTighSVNfQUxJR05FRChyaW5nLT5zaXplLAor CQkJICAgICAgIEdVQ19QUkVFTVBUX0JSRUFEQ1JVTUJfRFdPUkRTICogc2l6ZW9mKHUzMikpKTsK KwlHRU1fQlVHX09OKCh2b2lkKiljcyAtIChyaW5nLT52YWRkciArIHJpbmctPnRhaWwpICE9CisJ CSAgIEdVQ19QUkVFTVBUX0JSRUFEQ1JVTUJfRFdPUkRTICogc2l6ZW9mKHUzMikpOworCisJcmlu Zy0+dGFpbCArPSBHVUNfUFJFRU1QVF9CUkVBRENSVU1CX0RXT1JEUyAqIHNpemVvZih1MzIpOwor CXJpbmctPnRhaWwgJj0gKHJpbmctPnNpemUgLSAxKTsKKworCWZsdXNoX2dndHRfd3JpdGVzKHJp bmctPnZtYSk7CisKKwlzcGluX2xvY2tfaXJxKCZjbGllbnQtPndxX2xvY2spOworCWd1Y193cV9p dGVtX2FwcGVuZChjbGllbnQsIGVuZ2luZS0+Z3VjX2lkLCBjdHhfZGVzYywKKwkJCSAgIHJpbmct PnRhaWwgLyBzaXplb2YodTY0KSwgMCk7CisJc3Bpbl91bmxvY2tfaXJxKCZjbGllbnQtPndxX2xv Y2spOworCisJZGF0YVswXSA9IElOVEVMX0dVQ19BQ1RJT05fUkVRVUVTVF9QUkVFTVBUSU9OOwor CWRhdGFbMV0gPSBjbGllbnQtPnN0YWdlX2lkOworCWRhdGFbMl0gPSBJTlRFTF9HVUNfUFJFRU1Q VF9PUFRJT05fSU1NRURJQVRFIHwKKwkJICBJTlRFTF9HVUNfUFJFRU1QVF9PUFRJT05fRFJPUF9X T1JLX1EgfAorCQkgIElOVEVMX0dVQ19QUkVFTVBUX09QVElPTl9EUk9QX1NVQk1JVF9ROworCWRh dGFbM10gPSBlbmdpbmUtPmd1Y19pZDsKKwlkYXRhWzRdID0gZ3VjLT5jbGllbnRbU1VCTUlUXS0+ cHJpb3JpdHk7CisJZGF0YVs1XSA9IGd1Yy0+Y2xpZW50W1NVQk1JVF0tPnN0YWdlX2lkOworCWRh dGFbNl0gPSBndWNfZ2d0dF9vZmZzZXQoZ3VjLT5zaGFyZWRfZGF0YSk7CisKKwlpZiAoV0FSTl9P TihpbnRlbF9ndWNfc2VuZChndWMsIGRhdGEsIEFSUkFZX1NJWkUoZGF0YSkpKSkgeworCQlXUklU RV9PTkNFKGVuZ2luZS0+ZXhlY2xpc3RzLnByZWVtcHQsIGZhbHNlKTsKKwkJdGFza2xldF9zY2hl ZHVsZSgmZW5naW5lLT5leGVjbGlzdHMuaXJxX3Rhc2tsZXQpOworCX0KK30KKworLyoKKyAqIFdl J3JlIHVzaW5nIHVzZXIgaW50ZXJydXB0IGFuZCBIV1NQIHZhbHVlIHRvIG1hcmsgdGhhdCBwcmVl bXB0aW9uIGhhcworICogZmluaXNoZWQgYW5kIEdQVSBpcyBpZGxlLiBOb3JtYWxseSwgd2UgY291 bGQgdW53aW5kIGFuZCBjb250aW51ZSBzaW1pbGFyIHRvCisgKiBleGVjbGlzdHMgc3VibWlzc2lv biBwYXRoLiBVbmZvcnR1bmF0ZWx5LCB3aXRoIEd1QyB3ZSBhbHNvIG5lZWQgdG8gd2FpdCBmb3IK KyAqIGl0IHRvIGZpbmlzaCBpdHMgb3duIHBvc3Rwcm9jZXNzaW5nLCBiZWZvcmUgYXR0ZW1wdGlu ZyB0byBzdWJtaXQuIE90aGVyd2lzZQorICogR3VDIG1heSBzaWxlbnRseSBpZ25vcmUgb3VyIHN1 Ym1pc3Npb25zLCBhbmQgdGh1cyB3ZSByaXNrIGxvc2luZyByZXF1ZXN0IGF0CisgKiBiZXN0LCBl eGVjdXRpbmcgb3V0LW9mLW9yZGVyIGFuZCBjYXVzaW5nIGtlcm5lbCBwYW5pYyBhdCB3b3JzdC4K KyAqLworI2RlZmluZSBHVUNfUFJFRU1QVF9QT1NUUFJPQ0VTU19ERUxBWV9NUyAxMAorc3RhdGlj IHZvaWQgd2FpdF9mb3JfZ3VjX3ByZWVtcHRfcmVwb3J0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZW5naW5lLT5pOTE1LT5ndWM7 CisJc3RydWN0IGd1Y19zaGFyZWRfY3R4X2RhdGEgKmRhdGEgPSBndWMtPnNoYXJlZF9kYXRhX3Zh ZGRyOworCXN0cnVjdCBndWNfY3R4X3JlcG9ydCAqcmVwb3J0ID0gJmRhdGEtPnByZWVtcHRfY3R4 X3JlcG9ydFtlbmdpbmUtPmd1Y19pZF07CisKKwlXQVJOX09OKHdhaXRfZm9yX2F0b21pYyhyZXBv cnQtPnJlcG9ydF9yZXR1cm5fc3RhdHVzID09CisJCQkJSU5URUxfR1VDX1JFUE9SVF9TVEFUVVNf Q09NUExFVEUsCisJCQkJR1VDX1BSRUVNUFRfUE9TVFBST0NFU1NfREVMQVlfTVMpKTsKKwkvKiBH dUMgaXMgZXhwZWN0aW5nIHRoYXQgd2UncmUgYWxzbyBnb2luZyB0byBjbGVhciB0aGUgYWZmZWN0 ZWQgY29udGV4dAorCSAqIGNvdW50ZXIsIGxldCdzIGFsc28gcmVzZXQgdGhlIHJldHVybiBzdGF0 dXMgdG8gbm90IGRlcGVuZCBvbiBHdUMKKwkgKiByZXNldHRpbmcgaXQgYWZ0ZXIgcmVjaWV2aW5n IGFub3RoZXIgcHJlZW1wdCBhY3Rpb24gKi8KKwlyZXBvcnQtPmFmZmVjdGVkX2NvdW50ID0gMDsK KwlyZXBvcnQtPnJlcG9ydF9yZXR1cm5fc3RhdHVzID0gSU5URUxfR1VDX1JFUE9SVF9TVEFUVVNf VU5LTk9XTjsKK30KKworCiAvKioKICAqIGk5MTVfZ3VjX3N1Ym1pdCgpIC0gU3VibWl0IGNvbW1h bmRzIHRocm91Z2ggR3VDCiAgKiBAZW5naW5lOiBlbmdpbmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBj b21tYW5kcwpAQCAtNTY4LDggKzY2Nyw3IEBAIHN0YXRpYyB2b2lkIGd1Y19hZGRfcmVxdWVzdChz dHJ1Y3QgaW50ZWxfZ3VjICpndWMsCiAgKi8KIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX3N1Ym1pdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZk ZXZfcHJpdi0+Z3VjOworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZlbmdpbmUtPmk5MTUtPmd1 YzsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZl bmdpbmUtPmV4ZWNsaXN0czsKIAlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0 cy0+cG9ydDsKIAl1bnNpZ25lZCBpbnQgbjsKQEAgLTU4Miw4ICs2ODAsNyBAQCBzdGF0aWMgdm9p ZCBpOTE1X2d1Y19zdWJtaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlpZiAo cnEgJiYgY291bnQgPT0gMCkgewogCQkJcG9ydF9zZXQoJnBvcnRbbl0sIHBvcnRfcGFjayhycSwg Kytjb3VudCkpOwogCi0JCQlpZiAoaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUocnEtPnJp bmctPnZtYSkpCi0JCQkJUE9TVElOR19SRUFEX0ZXKEdVQ19TVEFUVVMpOworCQkJZmx1c2hfZ2d0 dF93cml0ZXMocnEtPnJpbmctPnZtYSk7CiAKIAkJCWd1Y19hZGRfcmVxdWVzdChndWMsIHJxKTsK IAkJfQpAQCAtNjM1LDEzICs3MzIsMzEgQEAgc3RhdGljIHZvaWQgaTkxNV9ndWNfZGVxdWV1ZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJYm9vbCBzdWJtaXQgPSBmYWxzZTsKIAlz dHJ1Y3QgcmJfbm9kZSAqcmI7CiAKLQlpZiAocG9ydF9pc3NldChwb3J0KSkKLQkJcG9ydCsrOwot CiAJc3Bpbl9sb2NrX2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7CiAJcmIgPSBleGVjbGlz dHMtPmZpcnN0OwogCUdFTV9CVUdfT04ocmJfZmlyc3QoJmV4ZWNsaXN0cy0+cXVldWUpICE9IHJi KTsKLQl3aGlsZSAocmIpIHsKKworCWlmICghcmIpCisJCWdvdG8gdW5sb2NrOworCisJaWYgKEhB U19MT0dJQ0FMX1JJTkdfUFJFRU1QVElPTihlbmdpbmUtPmk5MTUpICYmIHBvcnRfaXNzZXQocG9y dCkpIHsKKwkJc3RydWN0IGd1Y19wcmVlbXB0X3dvcmsgKnByZWVtcHRfd29yayA9CisJCQkmZW5n aW5lLT5pOTE1LT5ndWMucHJlZW1wdF93b3JrW2VuZ2luZS0+aWRdOworCisJCWlmIChyYl9lbnRy eShyYiwgc3RydWN0IGk5MTVfcHJpb2xpc3QsIG5vZGUpLT5wcmlvcml0eSA+CisJCSAgICBtYXgo cG9ydF9yZXF1ZXN0KHBvcnQpLT5wcmlvdHJlZS5wcmlvcml0eSwgMCkpIHsKKwkJCVdSSVRFX09O Q0UoZXhlY2xpc3RzLT5wcmVlbXB0LCB0cnVlKTsKKwkJCXF1ZXVlX3dvcmsoZW5naW5lLT5pOTE1 LT5ndWMucHJlZW1wdF93cSwKKwkJCQkgICAmcHJlZW1wdF93b3JrLT53b3JrKTsKKwkJCWdvdG8g dW5sb2NrOworCQl9IGVsc2UgaWYgKHBvcnRfaXNzZXQobGFzdF9wb3J0KSkgeworCQkJZ290byB1 bmxvY2s7CisJCX0KKworCQlwb3J0Kys7CisJfQorCisJZG8gewogCQlzdHJ1Y3QgaTkxNV9wcmlv bGlzdCAqcCA9IHJiX2VudHJ5KHJiLCB0eXBlb2YoKnApLCBub2RlKTsKIAkJc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpycSwgKnJuOwogCkBAIC02NzEsMTMgKzc4NiwxNCBAQCBzdGF0aWMg dm9pZCBpOTE1X2d1Y19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJ SU5JVF9MSVNUX0hFQUQoJnAtPnJlcXVlc3RzKTsKIAkJaWYgKHAtPnByaW9yaXR5ICE9IEk5MTVf UFJJT1JJVFlfTk9STUFMKQogCQkJa21lbV9jYWNoZV9mcmVlKGVuZ2luZS0+aTkxNS0+cHJpb3Jp dGllcywgcCk7Ci0JfQorCX0gd2hpbGUgKHJiKTsKIGRvbmU6CiAJZXhlY2xpc3RzLT5maXJzdCA9 IHJiOwogCWlmIChzdWJtaXQpIHsKIAkJcG9ydF9hc3NpZ24ocG9ydCwgbGFzdCk7CiAJCWk5MTVf Z3VjX3N1Ym1pdChlbmdpbmUpOwogCX0KK3VubG9jazoKIAlzcGluX3VubG9ja19pcnEoJmVuZ2lu ZS0+dGltZWxpbmUtPmxvY2spOwogfQogCkBAIC02ODYsMTAgKzgwMiwyMyBAQCBzdGF0aWMgdm9p ZCBpOTE1X2d1Y19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCiAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0 YTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZl bmdpbmUtPmV4ZWNsaXN0czsKIAlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0 cy0+cG9ydDsKLQljb25zdCBzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqIGNvbnN0IGxhc3RfcG9ydCA9 Ci0JCSZleGVjbGlzdHMtPnBvcnRbZXhlY2xpc3RzLT5wb3J0X21hc2tdOwogCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcnE7CiAKKwlpZiAoUkVBRF9PTkNFKGV4ZWNsaXN0cy0+cHJlZW1w dCkgJiYKKwkgICAgaW50ZWxfcmVhZF9zdGF0dXNfcGFnZShlbmdpbmUsIEk5MTVfR0VNX0hXU19Q UkVFTVBUX0lOREVYKSA9PQorCSAgICBHVUNfUFJFRU1QVF9GSU5JU0hFRCkgeworCQlleGVjbGlz dHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoJmVuZ2luZS0+ZXhlY2xpc3RzKTsKKworCQlzcGluX2xv Y2tfaXJxKCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKKwkJZXhlY2xpc3RzX3Vud2luZF9pbmNv bXBsZXRlX3JlcXVlc3RzKGV4ZWNsaXN0cyk7CisJCXNwaW5fdW5sb2NrX2lycSgmZW5naW5lLT50 aW1lbGluZS0+bG9jayk7CisKKwkJd2FpdF9mb3JfZ3VjX3ByZWVtcHRfcmVwb3J0KGVuZ2luZSk7 CisKKwkJV1JJVEVfT05DRShleGVjbGlzdHMtPnByZWVtcHQsIGZhbHNlKTsKKwkJaW50ZWxfd3Jp dGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfUFJFRU1QVF9JTkRFWCwgMCk7CisJ fQorCiAJcnEgPSBwb3J0X3JlcXVlc3QoJnBvcnRbMF0pOwogCXdoaWxlIChycSAmJiBpOTE1X2dl bV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpIHsKIAkJdHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9vdXQo cnEpOwpAQCAtNzAxLDcgKzgzMCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2lycV9oYW5kbGVy KHVuc2lnbmVkIGxvbmcgZGF0YSkKIAkJcnEgPSBwb3J0X3JlcXVlc3QoJnBvcnRbMF0pOwogCX0K IAotCWlmICghcG9ydF9pc3NldChsYXN0X3BvcnQpKQorCWlmICghUkVBRF9PTkNFKGV4ZWNsaXN0 cy0+cHJlZW1wdCkpCiAJCWk5MTVfZ3VjX2RlcXVldWUoZW5naW5lKTsKIH0KIApAQCAtMTA3Myw2 ICsxMjAyLDUwIEBAIHN0YXRpYyB2b2lkIGd1Y19hZHNfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpCiAJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmd1Yy0+YWRzX3ZtYSk7CiB9CiAK K3N0YXRpYyBpbnQgZ3VjX3ByZWVtcHRfd29ya19jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3Vj KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1 Yyk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5l X2lkIGlkOworCisJLyoKKwkgKiBFdmVuIHRob3VnaCBib3RoIHNlbmRpbmcgR3VDIGFjdGlvbiwg YW5kIGFkZGluZyBhIG5ldyB3b3JraXRlbSB0bworCSAqIEd1QyB3b3JrcXVldWUgYXJlIHNlcmlh bGl6ZWQgKGVhY2ggd2l0aCBpdHMgb3duIGxvY2tpbmcpLCBzaW5jZQorCSAqIHdlJ3JlIHVzaW5n IG11dGxpcGxlIGVuZ2luZXMsIGl0J3MgcG9zc2libGUgdGhhdCB3ZSdyZSBnb2luZyB0bworCSAq IGlzc3VlIGEgcHJlZW1wdCByZXF1ZXN0IHdpdGggdHdvIChvciBtb3JlIC0gZWFjaCBmb3IgZGlm ZmVyZW50CisJICogZW5naW5lKSB3b3JraXRlbXMgaW4gR3VDIHF1ZXVlLiBJbiB0aGlzIHNpdHVh dGlvbiwgR3VDIG1heSBzdWJtaXQKKwkgKiBhbGwgb2YgdGhlbSwgd2hpY2ggd2lsbCBtYWtlIHVz IHZlcnkgY29uZnVzZWQuCisJICogT3VyIHByZWVtcHRpb24gY29udGV4dHMgbWF5IGV2ZW4gYWxy ZWFkeSBiZSBjb21wbGV0ZSAtIGJlZm9yZSB3ZQorCSAqIGV2ZW4gaGFkIHRoZSBjaGFuY2UgdG8g c2VudCB0aGUgcHJlZW1wdCBhY3Rpb24gdG8gR3VDIS4gUmF0aGVyCisJICogdGhhbiBpbnRyb2R1 Y2luZyB5ZXQgYW5vdGhlciBsb2NrLCB3ZSBjYW4ganVzdCB1c2Ugb3JkZXJlZCB3b3JrcXVldWUK KwkgKiB0byBtYWtlIHN1cmUgd2UncmUgYWx3YXlzIHNlbmRpbmcgYSBzaW5nbGUgcHJlZW1wdGlv biByZXF1ZXN0IHdpdGggYQorCSAqIHNpbmdsZSB3b3JraXRlbS4KKwkgKi8KKwlndWMtPnByZWVt cHRfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgiaTkxNS1ndWNfcHJlZW1wdCIsCisJCQkJ CQkgIFdRX0hJR0hQUkkpOworCWlmICghZ3VjLT5wcmVlbXB0X3dxKQorCQlyZXR1cm4gLUVOT01F TTsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgeworCQlndWMtPnBy ZWVtcHRfd29ya1tpZF0uZW5naW5lID0gZW5naW5lOworCQlJTklUX1dPUksoJmd1Yy0+cHJlZW1w dF93b3JrW2lkXS53b3JrLCBpbmplY3RfcHJlZW1wdF9jb250ZXh0KTsKKwl9CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIHZvaWQgZ3VjX3ByZWVtcHRfd29ya19kZXN0cm95KHN0cnVjdCBpbnRl bF9ndWMgKmd1YykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNf dG9faTkxNShndWMpOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBp ZCkKKwkJY2FuY2VsX3dvcmtfc3luYygmZ3VjLT5wcmVlbXB0X3dvcmtbaWRdLndvcmspOworCisJ ZGVzdHJveV93b3JrcXVldWUoZ3VjLT5wcmVlbXB0X3dxKTsKK30KKwogLyoKICAqIFNldCB1cCB0 aGUgbWVtb3J5IHJlc291cmNlcyB0byBiZSBzaGFyZWQgd2l0aCB0aGUgR3VDICh2aWEgdGhlIEdH VFQpCiAgKiBhdCBmaXJtd2FyZSBsb2FkaW5nIHRpbWUuCkBAIC0xMDk3LDEyICsxMjcwLDE4IEBA IGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCWlmIChyZXQgPCAwKQogCQlnb3RvIGVycl9zaGFyZWRfZGF0YTsKIAorCXJldCA9 IGd1Y19wcmVlbXB0X3dvcmtfY3JlYXRlKGd1Yyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfbG9n OworCiAJcmV0ID0gZ3VjX2Fkc19jcmVhdGUoZ3VjKTsKIAlpZiAocmV0IDwgMCkKLQkJZ290byBl cnJfbG9nOworCQlnb3RvIGVycl93cTsKIAogCXJldHVybiAwOwogCitlcnJfd3E6CisJZ3VjX3By ZWVtcHRfd29ya19kZXN0cm95KGd1Yyk7CiBlcnJfbG9nOgogCWludGVsX2d1Y19sb2dfZGVzdHJv eShndWMpOwogZXJyX3NoYXJlZF9kYXRhOgpAQCAtMTExNyw2ICsxMjk2LDcgQEAgdm9pZCBpOTE1 X2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOwogCiAJZ3VjX2Fkc19kZXN0 cm95KGd1Yyk7CisJZ3VjX3ByZWVtcHRfd29ya19kZXN0cm95KGd1Yyk7CiAJaW50ZWxfZ3VjX2xv Z19kZXN0cm95KGd1Yyk7CiAJZ3VjX3NoYXJlZF9kYXRhX2Rlc3Ryb3koZ3VjKTsKIAlndWNfc3Rh Z2VfZGVzY19wb29sX2Rlc3Ryb3koZ3VjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKaW5kZXgg MTVlYWRmMjdiN2FlLi43MjczYTZiZTdkYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCkBA IC00Niw2ICs0NiwxMSBAQCBlbnVtIGk5MTVfZ3VjX2NsaWVudF9pZCB7CiAJUFJFRU1QVAogfTsK IAorc3RydWN0IGd1Y19wcmVlbXB0X3dvcmsgeworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKK307CisKIHN0cnVjdCBpbnRlbF9ndWMg ewogCXN0cnVjdCBpbnRlbF91Y19mdyBmdzsKIAlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyBsb2c7CkBA IC02Niw2ICs3MSw5IEBAIHN0cnVjdCBpbnRlbF9ndWMgewogCiAJc3RydWN0IGk5MTVfZ3VjX2Ns aWVudCAqY2xpZW50W0k5MTVfR1VDX05VTV9DTElFTlRTXTsKIAorCXN0cnVjdCBndWNfcHJlZW1w dF93b3JrIHByZWVtcHRfd29ya1tJOTE1X05VTV9FTkdJTkVTXTsKKwlzdHJ1Y3Qgd29ya3F1ZXVl X3N0cnVjdCAqcHJlZW1wdF93cTsKKwogCURFQ0xBUkVfQklUTUFQKGRvb3JiZWxsX2JpdG1hcCwg R1VDX05VTV9ET09SQkVMTFMpOwogCS8qIEN5Y2xpYyBjb3VudGVyIG1vZCBwYWdlc2l6ZQkqLwog CXUzMiBkYl9jYWNoZWxpbmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IGRkNDcwODkw NGM4NS4uZDIzMjdiMzZjZjcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMzU0LDcg KzM1NCw3IEBAIHN0YXRpYyB2b2lkIHVud2luZF93YV90YWlsKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcnEpCiAJYXNzZXJ0X3JpbmdfdGFpbF92YWxpZChycS0+cmluZywgcnEtPnRhaWwp OwogfQogCi1zdGF0aWMgdm9pZCBleGVjbGlzdHNfdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMo Cit2b2lkIGV4ZWNsaXN0c191bndpbmRfaW5jb21wbGV0ZV9yZXF1ZXN0cygKIAkJY29uc3Qgc3Ry dWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMpCiB7CiAJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0KQEAgLTY4NSw3ICs2ODUsNyBAQCBzdGF0aWMgdm9p ZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWV4 ZWNsaXN0c19zdWJtaXRfcG9ydHMoZW5naW5lKTsKIH0KIAotc3RhdGljIHZvaWQKK3ZvaWQKIGV4 ZWNsaXN0c19jYW5jZWxfcG9ydF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0 cyAqIGNvbnN0IGV4ZWNsaXN0cykKIHsKIAlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4 ZWNsaXN0cy0+cG9ydDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKaW5kZXggNjg5ZmRlMWE2M2E5 Li4xNzE4MmNlMjk2NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC0xMDcsNyArMTA3 LDYgQEAgaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9yKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgsCiAJcmV0dXJuIGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19kZXNjOwogfQogCi0K IC8qIEV4ZWNsaXN0cyAqLwogaW50IGludGVsX3Nhbml0aXplX2VuYWJsZV9leGVjbGlzdHMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgICBpbnQgZW5hYmxlX2V4ZWNs aXN0cyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggOGFkOWEz M2U4MDNiLi41YTY4NDk5YmYzZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKQEAgLTUyNSw2ICs1MjUsMTIgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJdTMy ICgqZ2V0X2NtZF9sZW5ndGhfbWFzaykodTMyIGNtZF9oZWFkZXIpOwogfTsKIAordm9pZAorZXhl Y2xpc3RzX2NhbmNlbF9wb3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3Rz ICogY29uc3QgZXhlY2xpc3RzKTsKKwordm9pZCBleGVjbGlzdHNfdW53aW5kX2luY29tcGxldGVf cmVxdWVzdHMoCisJCWNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3Qg ZXhlY2xpc3RzKTsKKwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKIGV4ZWNsaXN0c19udW1f cG9ydHMoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlz dHMpCiB7CkBAIC01NDMsNiArNTQ5LDggQEAgZXhlY2xpc3RzX3BvcnRfY29tcGxldGUoc3RydWN0 IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMsCiAJbWVtc2V0KHBvcnQg KyBtLCAwLCBzaXplb2Yoc3RydWN0IGV4ZWNsaXN0X3BvcnQpKTsKIH0KIAorCisKIHN0YXRpYyBp bmxpbmUgdW5zaWduZWQgaW50CiBpbnRlbF9lbmdpbmVfZmxhZyhjb25zdCBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiB7Ci0tIAoyLjEzLjYKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=