From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2] drm/i915/guc: Properly capture & release GuC interrupts on Gen11+ Date: Fri, 15 Nov 2019 08:39:33 +0000 Message-ID: <6c4dae6f-c554-5aaf-e1d3-e2336f9b393c@linux.intel.com> References: <20191105225321.26642-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 770EF6E027 for ; Fri, 15 Nov 2019 08:39:37 +0000 (UTC) In-Reply-To: <20191105225321.26642-1-daniele.ceraolospurio@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org Cc: Oscar Mateo List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA1LzExLzIwMTkgMjI6NTMsIERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gd3JvdGU6Cj4gV2l0 aCB0aGUgbmV3IGludGVycnVwdCByZS1wYXJ0aXRpb25pbmcgaW4gR2VuMTEsIEd1QyBjb250cm9s cyBieSBpdHNlbGYKPiB0aGUgaW50ZXJydXB0cyBpdCByZWNlaXZlcywgc28gc3RlZXJpbmcgYml0 cyBhbmQgcmVnaXN0ZXJzIGhhdmUgYmVlbgo+IGRlZmVhdHVyZWQuIEJlaW5nIHRoaXMgdGhlIGNh c2UsIHdoZW4gdGhlIEd1QyBpcyBpbiBjb250cm9sIG9mCj4gc3VibWlzc2lvbnMgd2Ugd29uJ3Qg a25vdyB3aGF0IHRvIGRvIHdpdGggdGhlIGN0eCBzd2l0Y2ggaW50ZXJydXB0Cj4gaW4gdGhlIGRy aXZlciwgc28gZGlzYWJsZSBpdC4KPiAKPiB2MiAoRGFuaWVsZSk6IHJlcGxhY2UgdGhlIGdlbjkg cGF0aHMgaW5zdGVhZCBvZiBrZWVwaW5nIGdlbjkgYW5kIGdlbjExCj4gZnVuY3Rpb25zIHNpbmNl IHdlIHdvbid0IHN1cHBvcnQgZ3VjIHN1Ym1pc3Npb24gb24gYW55IHByZS1nZW4xMSBwbGF0Zm9y bS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBPc2NhciBNYXRlbyA8b3NjYXIubWF0ZW9AaW50ZWwuY29t Pgo+IFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hhbC53YWpkZWN6a29AaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUu Y2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj4gQ2M6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJy aXNvbkBJbnRlbC5jb20+Cj4gQ2M6IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RAaW50ZWwu Y29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcnBzLmMgICAgICAg ICAgIHwgIDIgKy0KPiAgIC4uLi9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Np b24uYyB8IDcyICsrKystLS0tLS0tLS0tLS0tLS0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5z ZXJ0aW9ucygrKSwgNjAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3Jwcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf cnBzLmMKPiBpbmRleCAyMGQ2ZWUxNDhhZmMuLjA4YTM4YTNiOTBiMCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ycHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX3Jwcy5jCj4gQEAgLTE2NjMsNyArMTY2Myw3IEBAIHZvaWQgaW50ZWxf cnBzX2luaXQoc3RydWN0IGludGVsX3JwcyAqcnBzKQo+ICAgCWlmIChJTlRFTF9HRU4oaTkxNSkg PD0gNykKPiAgIAkJcnBzLT5wbV9pbnRybXNrX21ieiB8PSBHRU42X1BNX1JQX1VQX0VJX0VYUElS RUQ7Cj4gICAKPiAtCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gOCkKPiArCWlmIChJTlRFTF9HRU4o aTkxNSkgPj0gOCAmJiBJTlRFTF9HRU4oaTkxNSkgPCAxMSkKCk9yIElTX0dFTl9SQU5HRSg4LCAx MCksIGlmIHlvdSB3YW50LgoKUmVnYXJkcywKClR2cnRrbwoKPiAgIAkJcnBzLT5wbV9pbnRybXNr X21ieiB8PSBHRU44X1BNSU5UUl9ESVNBQkxFX1JFRElSRUNUX1RPX0dVQzsKPiAgIH0KPiAgIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlz c2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24u Ywo+IGluZGV4IDI0OThjNTVlMGVhNS4uOTAyZTI1ZWI2YjlkIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTEwMTEs NzQgKzEwMTEsMjggQEAgdm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBpbnRl bF9ndWMgKmd1YykKPiAgIAo+ICAgc3RhdGljIHZvaWQgZ3VjX2ludGVycnVwdHNfY2FwdHVyZShz dHJ1Y3QgaW50ZWxfZ3QgKmd0KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JwcyAqcnBzID0gJmd0 LT5ycHM7Cj4gICAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKPiAt CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiAtCWVudW0gaW50ZWxfZW5naW5lX2lk IGlkOwo+IC0JaW50IGlycXM7Cj4gKwl1MzIgaXJxcyA9IEdUX0NPTlRFWFRfU1dJVENIX0lOVEVS UlVQVDsKPiArCXUzMiBkbWFzayA9IGlycXMgPDwgMTYgfCBpcnFzOwo+ICAgCj4gLQkvKiB0ZWxs IGFsbCBjb21tYW5kIHN0cmVhbWVycyB0byBmb3J3YXJkIGludGVycnVwdHMgKGJ1dCBub3QgdmJs YW5rKQo+IC0JICogdG8gR3VDCj4gLQkgKi8KPiAtCWlycXMgPSBfTUFTS0VEX0JJVF9FTkFCTEUo R0ZYX0lOVEVSUlVQVF9TVEVFUklORyk7Cj4gLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwg aWQpCj4gLQkJRU5HSU5FX1dSSVRFKGVuZ2luZSwgUklOR19NT0RFX0dFTjcsIGlycXMpOwo+IC0K PiAtCS8qIHJvdXRlIFVTRVJfSU5URVJSVVBUIHRvIEhvc3QsIGFsbCBvdGhlcnMgYXJlIHNlbnQg dG8gR3VDLiAqLwo+IC0JaXJxcyA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1JD U19JUlFfU0hJRlQgfAo+IC0JICAgICAgIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44 X0JDU19JUlFfU0hJRlQ7Cj4gLQkvKiBUaGVzZSB0aHJlZSByZWdpc3RlcnMgaGF2ZSB0aGUgc2Ft ZSBiaXQgZGVmaW5pdGlvbnMgKi8KPiAtCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdVQ19C Q1NfUkNTX0lFUiwgfmlycXMpOwo+IC0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR1VDX1ZD UzJfVkNTMV9JRVIsIH5pcnFzKTsKPiAtCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdVQ19X RF9WRUNTX0lFUiwgfmlycXMpOwo+ICsJR0VNX0JVR19PTihJTlRFTF9HRU4oZ3QtPmk5MTUpIDwg MTEpOwo+ICAgCj4gLQkvKgo+IC0JICogVGhlIFJFRElSRUNUX1RPX0dVQyBiaXQgb2YgdGhlIFBN SU5UUk1TSyByZWdpc3RlciBkaXJlY3RzIGFsbAo+IC0JICogKHVubWFza2VkKSBQTSBpbnRlcnJ1 cHRzIHRvIHRoZSBHdUMuIEFsbCBvdGhlciBiaXRzIG9mIHRoaXMKPiAtCSAqIHJlZ2lzdGVyICpk aXNhYmxlKiBnZW5lcmF0aW9uIG9mIGEgc3BlY2lmaWMgaW50ZXJydXB0Lgo+IC0JICoKPiAtCSAq ICdwbV9pbnRybXNrX21ieicgaW5kaWNhdGVzIGJpdHMgdGhhdCBhcmUgTk9UIHRvIGJlIHNldCB3 aGVuCj4gLQkgKiB3cml0aW5nIHRvIHRoZSBQTSBpbnRlcnJ1cHQgbWFzayByZWdpc3RlciwgaS5l LiBpbnRlcnJ1cHRzCj4gLQkgKiB0aGF0IG11c3Qgbm90IGJlIGRpc2FibGVkLgo+IC0JICoKPiAt CSAqIElmIHRoZSBHdUMgaXMgaGFuZGxpbmcgdGhlc2UgaW50ZXJydXB0cywgdGhlbiB3ZSBtdXN0 IG5vdCBsZXQKPiAtCSAqIHRoZSBQTSBjb2RlIGRpc2FibGUgQU5ZIGludGVycnVwdCB0aGF0IHRo ZSBHdUMgaXMgZXhwZWN0aW5nLgo+IC0JICogU28gZm9yIGVhY2ggRU5BQkxFRCAoMCkgYml0IGlu IHRoaXMgcmVnaXN0ZXIsIHdlIG11c3QgU0VUIHRoZQo+IC0JICogYml0IGluIHBtX2ludHJtc2tf bWJ6IHNvIHRoYXQgaXQncyBsZWZ0IGVuYWJsZWQgZm9yIHRoZSBHdUMuCj4gLQkgKiBHdUMgbmVl ZHMgQVJBVCBleHBpcmVkIGludGVycnVwdCB1bm1hc2tlZCBoZW5jZSBpdCBpcyBzZXQgaW4KPiAt CSAqIHBtX2ludHJtc2tfbWJ6Lgo+IC0JICoKPiAtCSAqIEhlcmUgd2UgQ0xFQVIgUkVESVJFQ1Rf VE9fR1VDIGJpdCBpbiBwbV9pbnRybXNrX21ieiwgd2hpY2ggd2lsbAo+IC0JICogcmVzdWx0IGlu IHRoZSByZWdpc3RlciBiaXQgYmVpbmcgbGVmdCBTRVQhCj4gLQkgKi8KPiAtCXJwcy0+cG1faW50 cm1za19tYnogfD0gQVJBVF9FWFBJUkVEX0lOVFJNU0s7Cj4gLQlycHMtPnBtX2ludHJtc2tfbWJ6 ICY9IH5HRU44X1BNSU5UUl9ESVNBQkxFX1JFRElSRUNUX1RPX0dVQzsKPiArCS8qIERvbid0IGhh bmRsZSB0aGUgY3R4IHN3aXRjaCBpbnRlcnJ1cHQgaW4gR3VDIHN1Ym1pc3Npb24gbW9kZSAqLwo+ ICsJaW50ZWxfdW5jb3JlX3Jtdyh1bmNvcmUsIEdFTjExX1JFTkRFUl9DT1BZX0lOVFJfRU5BQkxF LCBkbWFzaywgMCk7Cj4gKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgR0VOMTFfVkNTX1ZFQ1Nf SU5UUl9FTkFCTEUsIGRtYXNrLCAwKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgZ3VjX2lu dGVycnVwdHNfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQo+ICAgewo+IC0Jc3RydWN0IGlu dGVsX3JwcyAqcnBzID0gJmd0LT5ycHM7Cj4gICAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl ID0gZ3QtPnVuY29yZTsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiAtCWVu dW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+IC0JaW50IGlycXM7Cj4gKwl1MzIgaXJxcyA9IEdUX0NP TlRFWFRfU1dJVENIX0lOVEVSUlVQVDsKPiArCXUzMiBkbWFzayA9IGlycXMgPDwgMTYgfCBpcnFz Owo+ICAgCj4gLQkvKgo+IC0JICogdGVsbCBhbGwgY29tbWFuZCBzdHJlYW1lcnMgTk9UIHRvIGZv cndhcmQgaW50ZXJydXB0cyBvciB2YmxhbmsKPiAtCSAqIHRvIEd1Qy4KPiAtCSAqLwo+IC0JaXJx cyA9IF9NQVNLRURfRklFTEQoR0ZYX0ZPUldBUkRfVkJMQU5LX01BU0ssIEdGWF9GT1JXQVJEX1ZC TEFOS19ORVZFUik7Cj4gLQlpcnFzIHw9IF9NQVNLRURfQklUX0RJU0FCTEUoR0ZYX0lOVEVSUlVQ VF9TVEVFUklORyk7Cj4gLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCj4gLQkJRU5H SU5FX1dSSVRFKGVuZ2luZSwgUklOR19NT0RFX0dFTjcsIGlycXMpOwo+IC0KPiAtCS8qIHJvdXRl IGFsbCBHVCBpbnRlcnJ1cHRzIHRvIHRoZSBob3N0ICovCj4gLQlpbnRlbF91bmNvcmVfd3JpdGUo dW5jb3JlLCBHVUNfQkNTX1JDU19JRVIsIDApOwo+IC0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29y ZSwgR1VDX1ZDUzJfVkNTMV9JRVIsIDApOwo+IC0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwg R1VDX1dEX1ZFQ1NfSUVSLCAwKTsKPiAtCj4gLQlycHMtPnBtX2ludHJtc2tfbWJ6IHw9IEdFTjhf UE1JTlRSX0RJU0FCTEVfUkVESVJFQ1RfVE9fR1VDOwo+IC0JcnBzLT5wbV9pbnRybXNrX21ieiAm PSB+QVJBVF9FWFBJUkVEX0lOVFJNU0s7Cj4gKwlHRU1fQlVHX09OKElOVEVMX0dFTihndC0+aTkx NSkgPCAxMSk7Cj4gKwo+ICsJLyogSGFuZGxlIGN0eCBzd2l0Y2ggaW50ZXJydXB0cyBhZ2FpbiAq Lwo+ICsJaW50ZWxfdW5jb3JlX3Jtdyh1bmNvcmUsIEdFTjExX1JFTkRFUl9DT1BZX0lOVFJfRU5B QkxFLCAwLCBkbWFzayk7Cj4gKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgR0VOMTFfVkNTX1ZF Q1NfSU5UUl9FTkFCTEUsIDAsIGRtYXNrKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgZ3Vj X3NldF9kZWZhdWx0X3N1Ym1pc3Npb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, HK_RANDOM_FROM,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C7344C432C3 for ; Fri, 15 Nov 2019 08:39:39 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A216B2072D for ; Fri, 15 Nov 2019 08:39:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A216B2072D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 077D96E027; Fri, 15 Nov 2019 08:39:39 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 770EF6E027 for ; Fri, 15 Nov 2019 08:39:37 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Nov 2019 00:39:37 -0800 X-IronPort-AV: E=Sophos;i="5.68,307,1569308400"; d="scan'208";a="199134352" Received: from mpotanix-mobl2.ccr.corp.intel.com (HELO [10.252.20.183]) ([10.252.20.183]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/AES256-SHA; 15 Nov 2019 00:39:35 -0800 To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org References: <20191105225321.26642-1-daniele.ceraolospurio@intel.com> From: Tvrtko Ursulin Organization: Intel Corporation UK Plc Message-ID: <6c4dae6f-c554-5aaf-e1d3-e2336f9b393c@linux.intel.com> Date: Fri, 15 Nov 2019 08:39:33 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20191105225321.26642-1-daniele.ceraolospurio@intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH v2] drm/i915/guc: Properly capture & release GuC interrupts on Gen11+ X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Oscar Mateo Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191115083933.Z531xce-0DNNmuV0L_9Bht98Pd3b4awsWru2Wb83bUk@z> Ck9uIDA1LzExLzIwMTkgMjI6NTMsIERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gd3JvdGU6Cj4gV2l0 aCB0aGUgbmV3IGludGVycnVwdCByZS1wYXJ0aXRpb25pbmcgaW4gR2VuMTEsIEd1QyBjb250cm9s cyBieSBpdHNlbGYKPiB0aGUgaW50ZXJydXB0cyBpdCByZWNlaXZlcywgc28gc3RlZXJpbmcgYml0 cyBhbmQgcmVnaXN0ZXJzIGhhdmUgYmVlbgo+IGRlZmVhdHVyZWQuIEJlaW5nIHRoaXMgdGhlIGNh c2UsIHdoZW4gdGhlIEd1QyBpcyBpbiBjb250cm9sIG9mCj4gc3VibWlzc2lvbnMgd2Ugd29uJ3Qg a25vdyB3aGF0IHRvIGRvIHdpdGggdGhlIGN0eCBzd2l0Y2ggaW50ZXJydXB0Cj4gaW4gdGhlIGRy aXZlciwgc28gZGlzYWJsZSBpdC4KPiAKPiB2MiAoRGFuaWVsZSk6IHJlcGxhY2UgdGhlIGdlbjkg cGF0aHMgaW5zdGVhZCBvZiBrZWVwaW5nIGdlbjkgYW5kIGdlbjExCj4gZnVuY3Rpb25zIHNpbmNl IHdlIHdvbid0IHN1cHBvcnQgZ3VjIHN1Ym1pc3Npb24gb24gYW55IHByZS1nZW4xMSBwbGF0Zm9y bS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBPc2NhciBNYXRlbyA8b3NjYXIubWF0ZW9AaW50ZWwuY29t Pgo+IFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hhbC53YWpkZWN6a29AaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUu Y2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj4gQ2M6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJy aXNvbkBJbnRlbC5jb20+Cj4gQ2M6IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RAaW50ZWwu Y29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcnBzLmMgICAgICAg ICAgIHwgIDIgKy0KPiAgIC4uLi9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Np b24uYyB8IDcyICsrKystLS0tLS0tLS0tLS0tLS0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5z ZXJ0aW9ucygrKSwgNjAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3Jwcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf cnBzLmMKPiBpbmRleCAyMGQ2ZWUxNDhhZmMuLjA4YTM4YTNiOTBiMCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ycHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX3Jwcy5jCj4gQEAgLTE2NjMsNyArMTY2Myw3IEBAIHZvaWQgaW50ZWxf cnBzX2luaXQoc3RydWN0IGludGVsX3JwcyAqcnBzKQo+ICAgCWlmIChJTlRFTF9HRU4oaTkxNSkg PD0gNykKPiAgIAkJcnBzLT5wbV9pbnRybXNrX21ieiB8PSBHRU42X1BNX1JQX1VQX0VJX0VYUElS RUQ7Cj4gICAKPiAtCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gOCkKPiArCWlmIChJTlRFTF9HRU4o aTkxNSkgPj0gOCAmJiBJTlRFTF9HRU4oaTkxNSkgPCAxMSkKCk9yIElTX0dFTl9SQU5HRSg4LCAx MCksIGlmIHlvdSB3YW50LgoKUmVnYXJkcywKClR2cnRrbwoKPiAgIAkJcnBzLT5wbV9pbnRybXNr X21ieiB8PSBHRU44X1BNSU5UUl9ESVNBQkxFX1JFRElSRUNUX1RPX0dVQzsKPiAgIH0KPiAgIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlz c2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24u Ywo+IGluZGV4IDI0OThjNTVlMGVhNS4uOTAyZTI1ZWI2YjlkIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTEwMTEs NzQgKzEwMTEsMjggQEAgdm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBpbnRl bF9ndWMgKmd1YykKPiAgIAo+ICAgc3RhdGljIHZvaWQgZ3VjX2ludGVycnVwdHNfY2FwdHVyZShz dHJ1Y3QgaW50ZWxfZ3QgKmd0KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JwcyAqcnBzID0gJmd0 LT5ycHM7Cj4gICAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gZ3QtPnVuY29yZTsKPiAt CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiAtCWVudW0gaW50ZWxfZW5naW5lX2lk IGlkOwo+IC0JaW50IGlycXM7Cj4gKwl1MzIgaXJxcyA9IEdUX0NPTlRFWFRfU1dJVENIX0lOVEVS UlVQVDsKPiArCXUzMiBkbWFzayA9IGlycXMgPDwgMTYgfCBpcnFzOwo+ICAgCj4gLQkvKiB0ZWxs IGFsbCBjb21tYW5kIHN0cmVhbWVycyB0byBmb3J3YXJkIGludGVycnVwdHMgKGJ1dCBub3QgdmJs YW5rKQo+IC0JICogdG8gR3VDCj4gLQkgKi8KPiAtCWlycXMgPSBfTUFTS0VEX0JJVF9FTkFCTEUo R0ZYX0lOVEVSUlVQVF9TVEVFUklORyk7Cj4gLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwg aWQpCj4gLQkJRU5HSU5FX1dSSVRFKGVuZ2luZSwgUklOR19NT0RFX0dFTjcsIGlycXMpOwo+IC0K PiAtCS8qIHJvdXRlIFVTRVJfSU5URVJSVVBUIHRvIEhvc3QsIGFsbCBvdGhlcnMgYXJlIHNlbnQg dG8gR3VDLiAqLwo+IC0JaXJxcyA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1JD U19JUlFfU0hJRlQgfAo+IC0JICAgICAgIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44 X0JDU19JUlFfU0hJRlQ7Cj4gLQkvKiBUaGVzZSB0aHJlZSByZWdpc3RlcnMgaGF2ZSB0aGUgc2Ft ZSBiaXQgZGVmaW5pdGlvbnMgKi8KPiAtCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdVQ19C Q1NfUkNTX0lFUiwgfmlycXMpOwo+IC0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgR1VDX1ZD UzJfVkNTMV9JRVIsIH5pcnFzKTsKPiAtCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIEdVQ19X RF9WRUNTX0lFUiwgfmlycXMpOwo+ICsJR0VNX0JVR19PTihJTlRFTF9HRU4oZ3QtPmk5MTUpIDwg MTEpOwo+ICAgCj4gLQkvKgo+IC0JICogVGhlIFJFRElSRUNUX1RPX0dVQyBiaXQgb2YgdGhlIFBN SU5UUk1TSyByZWdpc3RlciBkaXJlY3RzIGFsbAo+IC0JICogKHVubWFza2VkKSBQTSBpbnRlcnJ1 cHRzIHRvIHRoZSBHdUMuIEFsbCBvdGhlciBiaXRzIG9mIHRoaXMKPiAtCSAqIHJlZ2lzdGVyICpk aXNhYmxlKiBnZW5lcmF0aW9uIG9mIGEgc3BlY2lmaWMgaW50ZXJydXB0Lgo+IC0JICoKPiAtCSAq ICdwbV9pbnRybXNrX21ieicgaW5kaWNhdGVzIGJpdHMgdGhhdCBhcmUgTk9UIHRvIGJlIHNldCB3 aGVuCj4gLQkgKiB3cml0aW5nIHRvIHRoZSBQTSBpbnRlcnJ1cHQgbWFzayByZWdpc3RlciwgaS5l LiBpbnRlcnJ1cHRzCj4gLQkgKiB0aGF0IG11c3Qgbm90IGJlIGRpc2FibGVkLgo+IC0JICoKPiAt CSAqIElmIHRoZSBHdUMgaXMgaGFuZGxpbmcgdGhlc2UgaW50ZXJydXB0cywgdGhlbiB3ZSBtdXN0 IG5vdCBsZXQKPiAtCSAqIHRoZSBQTSBjb2RlIGRpc2FibGUgQU5ZIGludGVycnVwdCB0aGF0IHRo ZSBHdUMgaXMgZXhwZWN0aW5nLgo+IC0JICogU28gZm9yIGVhY2ggRU5BQkxFRCAoMCkgYml0IGlu IHRoaXMgcmVnaXN0ZXIsIHdlIG11c3QgU0VUIHRoZQo+IC0JICogYml0IGluIHBtX2ludHJtc2tf bWJ6IHNvIHRoYXQgaXQncyBsZWZ0IGVuYWJsZWQgZm9yIHRoZSBHdUMuCj4gLQkgKiBHdUMgbmVl ZHMgQVJBVCBleHBpcmVkIGludGVycnVwdCB1bm1hc2tlZCBoZW5jZSBpdCBpcyBzZXQgaW4KPiAt CSAqIHBtX2ludHJtc2tfbWJ6Lgo+IC0JICoKPiAtCSAqIEhlcmUgd2UgQ0xFQVIgUkVESVJFQ1Rf VE9fR1VDIGJpdCBpbiBwbV9pbnRybXNrX21ieiwgd2hpY2ggd2lsbAo+IC0JICogcmVzdWx0IGlu IHRoZSByZWdpc3RlciBiaXQgYmVpbmcgbGVmdCBTRVQhCj4gLQkgKi8KPiAtCXJwcy0+cG1faW50 cm1za19tYnogfD0gQVJBVF9FWFBJUkVEX0lOVFJNU0s7Cj4gLQlycHMtPnBtX2ludHJtc2tfbWJ6 ICY9IH5HRU44X1BNSU5UUl9ESVNBQkxFX1JFRElSRUNUX1RPX0dVQzsKPiArCS8qIERvbid0IGhh bmRsZSB0aGUgY3R4IHN3aXRjaCBpbnRlcnJ1cHQgaW4gR3VDIHN1Ym1pc3Npb24gbW9kZSAqLwo+ ICsJaW50ZWxfdW5jb3JlX3Jtdyh1bmNvcmUsIEdFTjExX1JFTkRFUl9DT1BZX0lOVFJfRU5BQkxF LCBkbWFzaywgMCk7Cj4gKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgR0VOMTFfVkNTX1ZFQ1Nf SU5UUl9FTkFCTEUsIGRtYXNrLCAwKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgZ3VjX2lu dGVycnVwdHNfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQo+ICAgewo+IC0Jc3RydWN0IGlu dGVsX3JwcyAqcnBzID0gJmd0LT5ycHM7Cj4gICAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl ID0gZ3QtPnVuY29yZTsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiAtCWVu dW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+IC0JaW50IGlycXM7Cj4gKwl1MzIgaXJxcyA9IEdUX0NP TlRFWFRfU1dJVENIX0lOVEVSUlVQVDsKPiArCXUzMiBkbWFzayA9IGlycXMgPDwgMTYgfCBpcnFz Owo+ICAgCj4gLQkvKgo+IC0JICogdGVsbCBhbGwgY29tbWFuZCBzdHJlYW1lcnMgTk9UIHRvIGZv cndhcmQgaW50ZXJydXB0cyBvciB2YmxhbmsKPiAtCSAqIHRvIEd1Qy4KPiAtCSAqLwo+IC0JaXJx cyA9IF9NQVNLRURfRklFTEQoR0ZYX0ZPUldBUkRfVkJMQU5LX01BU0ssIEdGWF9GT1JXQVJEX1ZC TEFOS19ORVZFUik7Cj4gLQlpcnFzIHw9IF9NQVNLRURfQklUX0RJU0FCTEUoR0ZYX0lOVEVSUlVQ VF9TVEVFUklORyk7Cj4gLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCj4gLQkJRU5H SU5FX1dSSVRFKGVuZ2luZSwgUklOR19NT0RFX0dFTjcsIGlycXMpOwo+IC0KPiAtCS8qIHJvdXRl IGFsbCBHVCBpbnRlcnJ1cHRzIHRvIHRoZSBob3N0ICovCj4gLQlpbnRlbF91bmNvcmVfd3JpdGUo dW5jb3JlLCBHVUNfQkNTX1JDU19JRVIsIDApOwo+IC0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29y ZSwgR1VDX1ZDUzJfVkNTMV9JRVIsIDApOwo+IC0JaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwg R1VDX1dEX1ZFQ1NfSUVSLCAwKTsKPiAtCj4gLQlycHMtPnBtX2ludHJtc2tfbWJ6IHw9IEdFTjhf UE1JTlRSX0RJU0FCTEVfUkVESVJFQ1RfVE9fR1VDOwo+IC0JcnBzLT5wbV9pbnRybXNrX21ieiAm PSB+QVJBVF9FWFBJUkVEX0lOVFJNU0s7Cj4gKwlHRU1fQlVHX09OKElOVEVMX0dFTihndC0+aTkx NSkgPCAxMSk7Cj4gKwo+ICsJLyogSGFuZGxlIGN0eCBzd2l0Y2ggaW50ZXJydXB0cyBhZ2FpbiAq Lwo+ICsJaW50ZWxfdW5jb3JlX3Jtdyh1bmNvcmUsIEdFTjExX1JFTkRFUl9DT1BZX0lOVFJfRU5B QkxFLCAwLCBkbWFzayk7Cj4gKwlpbnRlbF91bmNvcmVfcm13KHVuY29yZSwgR0VOMTFfVkNTX1ZF Q1NfSU5UUl9FTkFCTEUsIDAsIGRtYXNrKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgZ3Vj X3NldF9kZWZhdWx0X3N1Ym1pc3Npb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=