From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff McGee Subject: Re: [PATCH v2] drm/i915/execlists: Flush pending preemption events during reset Date: Tue, 27 Mar 2018 08:33:14 -0700 Message-ID: <20180327153314.GC2879@jeffdesk> References: <20180326115044.2505-8-chris@chris-wilson.co.uk> <20180327114402.18978-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 489A86E1EB for ; Tue, 27 Mar 2018 15:48:30 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180327114402.18978-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMjcsIDIwMTggYXQgMTI6NDQ6MDJQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IENhdGNoIHVwIHdpdGggdGhlIGluZmxpZ2h0IENTQiBldmVudHMsIGFmdGVyIGRpc2Fi bGluZyB0aGUgdGFza2xldAo+IGJlZm9yZSBkZWNpZGluZyB3aGljaCByZXF1ZXN0IHdhcyB0cnVs eSBndWlsdHkgb2YgaGFuZ2luZyB0aGUgR1BVLgo+IAo+IHYyOiBSZXN0b3JlIGNoZWNraW5nIG9m IHVzZV9jc2JfbW1pbyBvbiBldmVyeSBsb29wLCBkb24ndCBmb3JnZXQgb2xkCj4gdmdwdS4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K PiBDYzogTWljaGHFgiBXaW5pYXJza2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgo+IEND OiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+IENjOiBKZWZmIE1j R2VlIDxqZWZmLm1jZ2VlQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMgfCAxMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IGNmMzFiMDc0OTAyMy4uNzVkYmRlZGRl OGIwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtODc0LDM0ICs4NzQsMTQg QEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cj4gIH0KPiAgCj4g LS8qCj4gLSAqIENoZWNrIHRoZSB1bnJlYWQgQ29udGV4dCBTdGF0dXMgQnVmZmVycyBhbmQgbWFu YWdlIHRoZSBzdWJtaXNzaW9uIG9mIG5ldwo+IC0gKiBjb250ZXh0cyB0byB0aGUgRUxTUCBhY2Nv cmRpbmdseS4KPiAtICovCj4gLXN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2ts ZXQodW5zaWduZWQgbG9uZyBkYXRhKQo+ICtzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KiBjb25zdCBlbmdpbmUgPSAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqKWRhdGE7Cj4gIAlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4 ZWNsaXN0czsKPiAgCXN0cnVjdCBleGVjbGlzdF9wb3J0ICogY29uc3QgcG9ydCA9IGV4ZWNsaXN0 cy0+cG9ydDsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+ aTkxNTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1Owo+ ICAJYm9vbCBmdyA9IGZhbHNlOwo+ICAKPiAtCS8qCj4gLQkgKiBXZSBjYW4gc2tpcCBhY3F1aXJp bmcgaW50ZWxfcnVudGltZV9wbV9nZXQoKSBoZXJlIGFzIGl0IHdhcyB0YWtlbgo+IC0JICogb24g b3VyIGJlaGFsZiBieSB0aGUgcmVxdWVzdCAoc2VlIGk5MTVfZ2VtX21hcmtfYnVzeSgpKSBhbmQg aXQgd2lsbAo+IC0JICogbm90IGJlIHJlbGlucXVpc2hlZCB1bnRpbCB0aGUgZGV2aWNlIGlzIGlk bGUgKHNlZQo+IC0JICogaTkxNV9nZW1faWRsZV93b3JrX2hhbmRsZXIoKSkuIEFzIGEgcHJlY2F1 dGlvbiwgd2UgbWFrZSBzdXJlCj4gLQkgKiB0aGF0IGFsbCBFTFNQIGFyZSBkcmFpbmVkIGkuZS4g d2UgaGF2ZSBwcm9jZXNzZWQgdGhlIENTQiwKPiAtCSAqIGJlZm9yZSBhbGxvd2luZyBvdXJzZWx2 ZXMgdG8gaWRsZSBhbmQgY2FsbGluZyBpbnRlbF9ydW50aW1lX3BtX3B1dCgpLgo+IC0JICovCj4g LQlHRU1fQlVHX09OKCFkZXZfcHJpdi0+Z3QuYXdha2UpOwo+IC0KPiAtCS8qCj4gLQkgKiBQcmVm ZXIgZG9pbmcgdGVzdF9hbmRfY2xlYXJfYml0KCkgYXMgYSB0d28gc3RhZ2Ugb3BlcmF0aW9uIHRv IGF2b2lkCj4gLQkgKiBpbXBvc2luZyB0aGUgY29zdCBvZiBhIGxvY2tlZCBhdG9taWMgdHJhbnNh Y3Rpb24gd2hlbiBzdWJtaXR0aW5nIGEKPiAtCSAqIG5ldyByZXF1ZXN0IChvdXRzaWRlIG9mIHRo ZSBjb250ZXh0LXN3aXRjaCBpbnRlcnJ1cHQpLgo+IC0JICovCj4gLQl3aGlsZSAodGVzdF9iaXQo RU5HSU5FX0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCkpIHsKPiArCWRvIHsKV291 bGRuJ3QgaXQgYmUgc2ltcGxlciBmb3IgcHJvY2Vzc19jc2IgdG8gdXNlIGEgd2hpbGUgbG9vcCBo ZXJlLCBhbmQgZm9yCmNhbGxlcnMgdGhhdCBuZWVkIGEgQ1NCIHByb2Nlc3NpbmcgcG9pbnQgdG8g anVzdCBjYWxsIGl0IHdpdGhvdXQgdGhlbXNlbHZlcwpjaGVja2luZyBpcnFfcG9zdGVkPyBBcmUg d2UgcmVhbGx5IHNhdmluZyBtdWNoIHdpdGggdGhlIGlmLWRvLXdoaWxlIGFwcHJvYWNoPwoKPiAg CQkvKiBUaGUgSFdTUCBjb250YWlucyBhIChjYWNoZWFibGUpIG1pcnJvciBvZiB0aGUgQ1NCICov Cj4gIAkJY29uc3QgdTMyICpidWYgPQo+ICAJCQkmZW5naW5lLT5zdGF0dXNfcGFnZS5wYWdlX2Fk ZHJbSTkxNV9IV1NfQ1NCX0JVRjBfSU5ERVhdOwo+IEBAIC05MDksMjggKzg4OSwyNyBAQCBzdGF0 aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkK PiAgCj4gIAkJaWYgKHVubGlrZWx5KGV4ZWNsaXN0cy0+Y3NiX3VzZV9tbWlvKSkgewo+ICAJCQli dWYgPSAodTMyICogX19mb3JjZSkKPiAtCQkJCShkZXZfcHJpdi0+cmVncyArIGk5MTVfbW1pb19y ZWdfb2Zmc2V0KFJJTkdfQ09OVEVYVF9TVEFUVVNfQlVGX0xPKGVuZ2luZSwgMCkpKTsKPiAtCQkJ ZXhlY2xpc3RzLT5jc2JfaGVhZCA9IC0xOyAvKiBmb3JjZSBtbWlvIHJlYWQgb2YgQ1NCIHB0cnMg Ki8KPiArCQkJCShpOTE1LT5yZWdzICsgaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19DT05URVhU X1NUQVRVU19CVUZfTE8oZW5naW5lLCAwKSkpOwo+ICsJCQlleGVjbGlzdHMtPmNzYl9oZWFkID0g LTE7IC8qIGZvcmNlIG1taW8gcmVhZCBvZiBDU0IgKi8KPiAgCQl9Cj4gIAo+ICAJCS8qIENsZWFy IGJlZm9yZSByZWFkaW5nIHRvIGNhdGNoIG5ldyBpbnRlcnJ1cHRzICovCj4gIAkJY2xlYXJfYml0 KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpOwo+ICAJCXNtcF9tYl9f YWZ0ZXJfYXRvbWljKCk7Cj4gIAo+IC0JCWlmICh1bmxpa2VseShleGVjbGlzdHMtPmNzYl9oZWFk ID09IC0xKSkgeyAvKiBmb2xsb3dpbmcgYSByZXNldCAqLwo+ICsJCWlmICh1bmxpa2VseShleGVj bGlzdHMtPmNzYl9oZWFkID09IC0xKSkgeyAvKiBhZnRlciBhIHJlc2V0ICovCj4gIAkJCWlmICgh ZncpIHsKPiAtCQkJCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LAo+IC0JCQkJ CQkJICAgZXhlY2xpc3RzLT5md19kb21haW5zKTsKPiArCQkJCWludGVsX3VuY29yZV9mb3JjZXdh a2VfZ2V0KGk5MTUsIGV4ZWNsaXN0cy0+ZndfZG9tYWlucyk7Cj4gIAkJCQlmdyA9IHRydWU7Cj4g IAkJCX0KPiAgCj4gLQkJCWhlYWQgPSByZWFkbChkZXZfcHJpdi0+cmVncyArIGk5MTVfbW1pb19y ZWdfb2Zmc2V0KFJJTkdfQ09OVEVYVF9TVEFUVVNfUFRSKGVuZ2luZSkpKTsKPiArCQkJaGVhZCA9 IHJlYWRsKGk5MTUtPnJlZ3MgKyBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX0NPTlRFWFRfU1RB VFVTX1BUUihlbmdpbmUpKSk7Cj4gIAkJCXRhaWwgPSBHRU44X0NTQl9XUklURV9QVFIoaGVhZCk7 Cj4gIAkJCWhlYWQgPSBHRU44X0NTQl9SRUFEX1BUUihoZWFkKTsKPiAgCQkJZXhlY2xpc3RzLT5j c2JfaGVhZCA9IGhlYWQ7Cj4gIAkJfSBlbHNlIHsKPiAgCQkJY29uc3QgaW50IHdyaXRlX2lkeCA9 Cj4gLQkJCQlpbnRlbF9od3NfY3NiX3dyaXRlX2luZGV4KGRldl9wcml2KSAtCj4gKwkJCQlpbnRl bF9od3NfY3NiX3dyaXRlX2luZGV4KGk5MTUpIC0KPiAgCQkJCUk5MTVfSFdTX0NTQl9CVUYwX0lO REVYOwo+ICAKPiAgCQkJaGVhZCA9IGV4ZWNsaXN0cy0+Y3NiX2hlYWQ7Cj4gQEAgLTkzOCw4ICs5 MTcsOCBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVk IGxvbmcgZGF0YSkKPiAgCQl9Cj4gIAkJR0VNX1RSQUNFKCIlcyBjcy1pcnEgaGVhZD0lZCBbJWQl c10sIHRhaWw9JWQgWyVkJXNdXG4iLAo+ICAJCQkgIGVuZ2luZS0+bmFtZSwKPiAtCQkJICBoZWFk LCBHRU44X0NTQl9SRUFEX1BUUihyZWFkbChkZXZfcHJpdi0+cmVncyArIGk5MTVfbW1pb19yZWdf b2Zmc2V0KFJJTkdfQ09OVEVYVF9TVEFUVVNfUFRSKGVuZ2luZSkpKSksIGZ3ID8gIiIgOiAiPyIs Cj4gLQkJCSAgdGFpbCwgR0VOOF9DU0JfV1JJVEVfUFRSKHJlYWRsKGRldl9wcml2LT5yZWdzICsg aTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19DT05URVhUX1NUQVRVU19QVFIoZW5naW5lKSkpKSwg ZncgPyAiIiA6ICI/Iik7Cj4gKwkJCSAgaGVhZCwgR0VOOF9DU0JfUkVBRF9QVFIocmVhZGwoaTkx NS0+cmVncyArIGk5MTVfbW1pb19yZWdfb2Zmc2V0KFJJTkdfQ09OVEVYVF9TVEFUVVNfUFRSKGVu Z2luZSkpKSksIGZ3ID8gIiIgOiAiPyIsCj4gKwkJCSAgdGFpbCwgR0VOOF9DU0JfV1JJVEVfUFRS KHJlYWRsKGk5MTUtPnJlZ3MgKyBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX0NPTlRFWFRfU1RB VFVTX1BUUihlbmdpbmUpKSkpLCBmdyA/ICIiIDogIj8iKTsKPiAgCj4gIAkJd2hpbGUgKGhlYWQg IT0gdGFpbCkgewo+ICAJCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKPiBAQCAtOTQ5LDcgKzky OCw4IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWduZWQg bG9uZyBkYXRhKQo+ICAJCQlpZiAoKytoZWFkID09IEdFTjhfQ1NCX0VOVFJJRVMpCj4gIAkJCQlo ZWFkID0gMDsKPiAgCj4gLQkJCS8qIFdlIGFyZSBmbHlpbmcgbmVhciBkcmFnb25zIGFnYWluLgo+ ICsJCQkvKgo+ICsJCQkgKiBXZSBhcmUgZmx5aW5nIG5lYXIgZHJhZ29ucyBhZ2Fpbi4KPiAgCQkJ ICoKPiAgCQkJICogV2UgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgcmVxdWVzdCBpbiBleGVjbGlz dF9wb3J0W10KPiAgCQkJICogYnV0IG5vIG1vcmUgdGhhbiB0aGF0LiBXZSBhcmUgb3BlcmF0aW5n IGluIHNvZnRpcnEKPiBAQCAtMTA0MCwxNSArMTAyMCw0OCBAQCBzdGF0aWMgdm9pZCBleGVjbGlz dHNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgCQlpZiAoaGVhZCAh PSBleGVjbGlzdHMtPmNzYl9oZWFkKSB7Cj4gIAkJCWV4ZWNsaXN0cy0+Y3NiX2hlYWQgPSBoZWFk Owo+ICAJCQl3cml0ZWwoX01BU0tFRF9GSUVMRChHRU44X0NTQl9SRUFEX1BUUl9NQVNLLCBoZWFk IDw8IDgpLAo+IC0JCQkgICAgICAgZGV2X3ByaXYtPnJlZ3MgKyBpOTE1X21taW9fcmVnX29mZnNl dChSSU5HX0NPTlRFWFRfU1RBVFVTX1BUUihlbmdpbmUpKSk7Cj4gKwkJCSAgICAgICBpOTE1LT5y ZWdzICsgaTkxNV9tbWlvX3JlZ19vZmZzZXQoUklOR19DT05URVhUX1NUQVRVU19QVFIoZW5naW5l KSkpOwo+ICAJCX0KPiAtCX0KPiArCX0gd2hpbGUgKHRlc3RfYml0KEVOR0lORV9JUlFfRVhFQ0xJ U1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpKTsKPiAgCj4gLQlpZiAoIWV4ZWNsaXN0c19pc19hY3Rp dmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpKQo+IC0JCWV4ZWNsaXN0c19k ZXF1ZXVlKGVuZ2luZSk7Cj4gKwlpZiAodW5saWtlbHkoZncpKQo+ICsJCWludGVsX3VuY29yZV9m b3JjZXdha2VfcHV0KGk5MTUsIGV4ZWNsaXN0cy0+ZndfZG9tYWlucyk7Cj4gK30KPiArCj4gKy8q Cj4gKyAqIENoZWNrIHRoZSB1bnJlYWQgQ29udGV4dCBTdGF0dXMgQnVmZmVycyBhbmQgbWFuYWdl IHRoZSBzdWJtaXNzaW9uIG9mIG5ldwo+ICsgKiBjb250ZXh0cyB0byB0aGUgRUxTUCBhY2NvcmRp bmdseS4KPiArICovCj4gK3N0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQo dW5zaWduZWQgbG9uZyBkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29u c3QgZW5naW5lID0gKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKilkYXRhOwo+ICAKPiAtCWlmIChm dykKPiAtCQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dChkZXZfcHJpdiwgZXhlY2xpc3RzLT5m d19kb21haW5zKTsKPiArCUdFTV9UUkFDRSgiJXMgYXdha2U/PSVkLCBhY3RpdmU9JXgsIGlycS1w b3N0ZWQ/PSVkXG4iLAo+ICsJCSAgZW5naW5lLT5uYW1lLAo+ICsJCSAgZW5naW5lLT5pOTE1LT5n dC5hd2FrZSwKPiArCQkgIGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSwKPiArCQkgIHRlc3RfYml0 KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpKTsKPiArCj4gKwkvKgo+ ICsJICogV2UgY2FuIHNraXAgYWNxdWlyaW5nIGludGVsX3J1bnRpbWVfcG1fZ2V0KCkgaGVyZSBh cyBpdCB3YXMgdGFrZW4KPiArCSAqIG9uIG91ciBiZWhhbGYgYnkgdGhlIHJlcXVlc3QgKHNlZSBp OTE1X2dlbV9tYXJrX2J1c3koKSkgYW5kIGl0IHdpbGwKPiArCSAqIG5vdCBiZSByZWxpbnF1aXNo ZWQgdW50aWwgdGhlIGRldmljZSBpcyBpZGxlIChzZWUKPiArCSAqIGk5MTVfZ2VtX2lkbGVfd29y a19oYW5kbGVyKCkpLiBBcyBhIHByZWNhdXRpb24sIHdlIG1ha2Ugc3VyZQo+ICsJICogdGhhdCBh bGwgRUxTUCBhcmUgZHJhaW5lZCBpLmUuIHdlIGhhdmUgcHJvY2Vzc2VkIHRoZSBDU0IsCj4gKwkg KiBiZWZvcmUgYWxsb3dpbmcgb3Vyc2VsdmVzIHRvIGlkbGUgYW5kIGNhbGxpbmcgaW50ZWxfcnVu dGltZV9wbV9wdXQoKS4KPiArCSAqLwo+ICsJR0VNX0JVR19PTighZW5naW5lLT5pOTE1LT5ndC5h d2FrZSk7Cj4gKwo+ICsJLyoKPiArCSAqIFByZWZlciBkb2luZyB0ZXN0X2FuZF9jbGVhcl9iaXQo KSBhcyBhIHR3byBzdGFnZSBvcGVyYXRpb24gdG8gYXZvaWQKPiArCSAqIGltcG9zaW5nIHRoZSBj b3N0IG9mIGEgbG9ja2VkIGF0b21pYyB0cmFuc2FjdGlvbiB3aGVuIHN1Ym1pdHRpbmcgYQo+ICsJ ICogbmV3IHJlcXVlc3QgKG91dHNpZGUgb2YgdGhlIGNvbnRleHQtc3dpdGNoIGludGVycnVwdCku Cj4gKwkgKi8KPiArCWlmICh0ZXN0X2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5lLT5p cnFfcG9zdGVkKSkKPiArCQlwcm9jZXNzX2NzYihlbmdpbmUpOwo+ICsKPiArCWlmICghZXhlY2xp c3RzX2lzX2FjdGl2ZSgmZW5naW5lLT5leGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1Q VCkpCj4gKwkJZXhlY2xpc3RzX2RlcXVldWUoZW5naW5lKTsKPiAgCj4gIAkvKiBJZiB0aGUgZW5n aW5lIGlzIG5vdyBpZGxlLCBzbyBzaG91bGQgYmUgdGhlIGZsYWc7IGFuZCB2aWNlIHZlcnNhLiAq Lwo+ICAJR0VNX0JVR19PTihleGVjbGlzdHNfaXNfYWN0aXZlKCZlbmdpbmUtPmV4ZWNsaXN0cywK PiBAQCAtMTcxMiw2ICsxNzI1LDcgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgo+ICBl eGVjbGlzdHNfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4g IHsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0g JmVuZ2luZS0+ZXhlY2xpc3RzOwo+ICsJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwgKmFj dGl2ZTsKPiAgCj4gIAlHRU1fVFJBQ0UoIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwo+ICAKPiBAQCAt MTczNSw3ICsxNzQ5LDQwIEBAIGV4ZWNsaXN0c19yZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiAgCQl0YXNrbGV0X2tpbGwoJmV4ZWNsaXN0cy0+dGFza2xldCk7 Cj4gIAl0YXNrbGV0X2Rpc2FibGUoJmV4ZWNsaXN0cy0+dGFza2xldCk7Cj4gIAo+IC0JcmV0dXJu IGk5MTVfZ2VtX2ZpbmRfYWN0aXZlX3JlcXVlc3QoZW5naW5lKTsKPiArCS8qCj4gKwkgKiBXZSB3 YW50IHRvIGZsdXNoIHRoZSBwZW5kaW5nIGNvbnRleHQgc3dpdGNoZXMsIGhhdmluZyBkaXNhYmxl ZAo+ICsJICogdGhlIHRhc2tsZXQgYWJvdmUsIHdlIGNhbiBhc3N1bWUgZXhjbHVzaXZlIGFjY2Vz cyB0byB0aGUgZXhlY2xpc3RzLgo+ICsJICogRm9yIHRoaXMgYWxsb3dzIHVzIHRvIGNhdGNoIHVw IHdpdGggYW4gaW5mbGlnaHQgcHJlZW1wdGlvbiBldmVudCwKPiArCSAqIGFuZCBhdm9pZCBibGFt aW5nIGFuIGlubm9jZW50IHJlcXVlc3QgaWYgdGhlIHN0YWxsIHdhcyBkdWUgdG8gdGhlCj4gKwkg KiBwcmVlbXB0aW9uIGl0c2VsZi4KPiArCSAqLwo+ICsJaWYgKHRlc3RfYml0KEVOR0lORV9JUlFf RVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpKQo+ICsJCXByb2Nlc3NfY3NiKGVuZ2luZSk7 Cj4gKwo+ICsJLyoKPiArCSAqIFRoZSBsYXN0IGFjdGl2ZSByZXF1ZXN0IGNhbiB0aGVuIGJlIG5v IGxhdGVyIHRoYW4gdGhlIGxhc3QgcmVxdWVzdAo+ICsJICogbm93IGluIEVMU1BbMF0uIFNvIHNl YXJjaCBiYWNrd2FyZHMgZnJvbSB0aGVyZSwgc28gdGhhdCBpZiB0aGUgR1BVCj4gKwkgKiBoYXMg YWR2YW5jZWQgYmV5b25kIHRoZSBsYXN0IENTQiB1cGRhdGUsIGl0IHdpbGwgYmUgcGFyZG9uZWQu Cj4gKwkgKi8KPiArCWFjdGl2ZSA9IE5VTEw7Cj4gKwlyZXF1ZXN0ID0gcG9ydF9yZXF1ZXN0KGV4 ZWNsaXN0cy0+cG9ydCk7Cj4gKwlpZiAocmVxdWVzdCkgewo+ICsJCXVuc2lnbmVkIGxvbmcgZmxh Z3M7Cj4gKwo+ICsJCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrLCBm bGFncyk7Cj4gKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9mcm9tX3JldmVyc2UocmVxdWVzdCwKPiAr CQkJCQkJICZlbmdpbmUtPnRpbWVsaW5lLT5yZXF1ZXN0cywKPiArCQkJCQkJIGxpbmspIHsKPiAr CQkJaWYgKF9faTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChyZXF1ZXN0LAo+ICsJCQkJCQkgICAgIHJl cXVlc3QtPmdsb2JhbF9zZXFubykpCj4gKwkJCQlicmVhazsKPiArCj4gKwkJCWFjdGl2ZSA9IHJl cXVlc3Q7Cj4gKwkJfQo+ICsJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxp bmUtPmxvY2ssIGZsYWdzKTsKPiArCX0KPiArCj4gKwlyZXR1cm4gYWN0aXZlOwpJZiB3ZSByZXR1 cm4gTlVMTCBoZXJlIGJlY2F1c2UgdGhlIHByZWVtcHRpb24gY29tcGxldGVkLCB0aGUgcmVzZXQg d2lsbCBiZQphYm9ydGVkLCBidXQgbm8gb25lIHdpbGwga2ljayB0aGUgdGFza2xldCB0byBkZXF1 ZXVlIHRoZSB3YWl0aW5nIHJlcXVlc3QocykuCk15IGZvcmNlIHByZWVtcHRpb24gdGVzdCBjb25m aXJtZWQgdGhpcyBieSBoaXR0aW5nIEdQVSAiaGFuZyIuIFdlIG5lZWQgdG8KYWRkIChvciBtYXli ZSBtb3ZlIGZyb20gZ2VuOF9pbml0X2NvbW1vbl9yaW5nKSB0byBoZXJlIG9yIG1heWJlCmV4ZWNs aXN0c19yZXNldF9maW5pc2guLi4KCmlmIChlbmdpbmUtPmV4ZWNsaXN0cy5maXJzdCkKCXRhc2ts ZXRfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOwoKPiAgfQo+ICAKPiAgc3Rh dGljIHZvaWQgZXhlY2xpc3RzX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwK PiAtLSAKPiAyLjE2LjMKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==