From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 3/4] drm/i915: Filter out spurious execlists context-switch interrupts Date: Tue, 24 Oct 2017 17:40:11 +0300 Message-ID: <874lqohano.fsf@gaia.fi.intel.com> References: <20171023213237.26536-1-chris@chris-wilson.co.uk> <20171023213237.26536-3-chris@chris-wilson.co.uk> 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 A0F2D6E530 for ; Tue, 24 Oct 2017 14:40:30 +0000 (UTC) In-Reply-To: <20171023213237.26536-3-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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gQmFjayBp biBjb21taXQgYTRiMmIwMTUyM2E4ICgiZHJtL2k5MTU6IERvbid0IG1hcmsgYW4gZXhlY2xpc3Rz Cj4gY29udGV4dC1zd2l0Y2ggd2hlbiBpZGxlIikgd2Ugbm90aWNlZCB0aGUgcHJlc2VuY2Ugb2Yg bGF0ZQo+IGNvbnRleHQtc3dpdGNoIGludGVycnVwdHMuIFdlIHdlcmUgYWJsZSB0byBmaWx0ZXIg dGhvc2Ugb3V0IGJ5IGxvb2tpbmcKPiBhdCB3aGV0aGVyIHRoZSBFTFNQIHJlbWFpbmVkIGFjdGl2 ZSwgYnV0IGluIGNvbW1pdCBiZWVjZWM5MDE3OTAKPiAoImRybS9pOTE1L2V4ZWNsaXN0czogUHJl ZW1wdGlvbiEiKSB0aGF0IGJlY2FtZSBwcm9ibGVtYXRpYyBhcyB3ZSBub3cKPiBhbnRpY2lwYXRl IHJlY2VpdmluZyBhIGNvbnRleHQtc3dpdGNoIGV2ZW50IGZvciBwcmVlbXB0aW9uIHdoaWxlIEVM U1AKPiBtYXkgYmUgZW1wdHkuIFRvIHJlc3RvcmUgdGhlIHNwdXJpb3VzIGludGVycnVwdCBzdXBw cmVzc2lvbiwgYWRkIGEKPiBjb3VudGVyIGZvciB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIHBlbmRp bmcgY29udGV4dC1zd2l0Y2hlcyBhbmQgc2tpcCBpZgo+IHdlIGRvIG5vdCBuZWVkIHRvIGhhbmRs ZSB0aGlzIGludGVycnVwdCB0byBtYWtlIGZvcndhcmQgcHJvZ3Jlc3MuCj4KPiB2MjogRG9uJ3Qg Zm9yZ2V0IHRvIHN3aXRjaCBvbiBmb3IgcHJlZW1wdC4KPiB2MzogUmVkdWNlIHRoZSBjb3VudGVy IHRvIGEgb24vb2ZmIGJvb2xlYW4gdHJhY2tlci4gRGVjbGFyZSB0aGUgSFcgYXMKPiBhY3RpdmUg d2hlbiB3ZSBmaXJzdCBzdWJtaXQsIGFuZCBpZGxlIGFmdGVyIHRoZSBmaW5hbCBjb21wbGV0aW9u IGV2ZW50Cj4gKHdpdGggd2hpY2ggd2UgY29uZmlybSB0aGUgSFcgc2F5cyBpdCBpcyBpZGxlKSwg YW5kIHRyYWNrIGVhY2ggc291cmNlCj4gb2YgYWN0aXZpdHkgc2VwYXJhdGVseS4gV2l0aCBhIGZp bml0ZSBudW1iZXIgb2Ygc291cmNlcywgaXQgc2hvdWxkIHVzCj4gZGVidWcgd2hpY2ggZ2V0cyBz dHVjay4KPgo+IEZpeGVzOiBiZWVjZWM5MDE3OTAgKCJkcm0vaTkxNS9leGVjbGlzdHM6IFByZWVt cHRpb24hIikKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNv bi5jby51az4KPiBDYzogTWljaGFsIFdpbmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5j b20+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gQ2M6 IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNvbT4KPiBDYzogTWlrYSBL dW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+Cj4gQ2M6IEpvb25hcyBMYWh0aW5lbiA8 am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgIDMgKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMgICAgICAgICAgICB8ICA2ICsrKystLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAgNSArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKystLS0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICAgIHwgMzQgKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tCj4gIDUgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9u cygrKSwgMTMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf c3VibWlzc2lvbi5jCj4gaW5kZXggYTJlODExNGI3MzlkLi5mODRjMjY3NzI4ZmQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTYxMCw2ICs2 MTAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2d1Y19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiAgCWV4ZWNsaXN0cy0+Zmlyc3QgPSByYjsKPiAgCWlmIChzdWJtaXQpIHsK PiAgCQlwb3J0X2Fzc2lnbihwb3J0LCBsYXN0KTsKPiArCQlleGVjbGlzdHNfc2V0X2FjdGl2ZShl eGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfVVNFUik7Cj4gIAkJaTkxNV9ndWNfc3VibWl0KGVu Z2luZSk7Cj4gIAl9Cj4gIAlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2sp Owo+IEBAIC02MzMsNiArNjM0LDggQEAgc3RhdGljIHZvaWQgaTkxNV9ndWNfaXJxX2hhbmRsZXIo dW5zaWduZWQgbG9uZyBkYXRhKQo+ICAKPiAgCQlycSA9IHBvcnRfcmVxdWVzdCgmcG9ydFswXSk7 Cj4gIAl9Cj4gKwlpZiAoIXJxKQo+ICsJCWV4ZWNsaXN0c19jbGVhcl9hY3RpdmUoZXhlY2xpc3Rz LCBFWEVDTElTVFNfQUNUSVZFX1VTRVIpOwo+ICAKPiAgCWlmICghcG9ydF9pc3NldChsYXN0X3Bv cnQpKQo+ICAJCWk5MTVfZ3VjX2RlcXVldWUoZW5naW5lKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKPiBpbmRleCBiMTI5NmE1NWMxZTQuLmY4MjA1ODQxODY4YiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYwo+IEBAIC0xMzg4LDggKzEzODgsMTAgQEAgZ2VuOF9jc19pcnFfaGFuZGxlcihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBpaXIsIGludCB0ZXN0X3NoaWZ0KQo+ ICAJYm9vbCB0YXNrbGV0ID0gZmFsc2U7Cj4gIAo+ICAJaWYgKGlpciAmIChHVF9DT05URVhUX1NX SVRDSF9JTlRFUlJVUFQgPDwgdGVzdF9zaGlmdCkpIHsKPiAtCQlfX3NldF9iaXQoRU5HSU5FX0lS UV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCk7Cj4gLQkJdGFza2xldCA9IHRydWU7Cj4g KwkJaWYgKFJFQURfT05DRShlbmdpbmUtPmV4ZWNsaXN0cy5hY3RpdmUpKSB7Cj4gKwkJCV9fc2V0 X2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAmZW5naW5lLT5pcnFfcG9zdGVkKTsKPiArCQkJdGFz a2xldCA9IHRydWU7CgpUaGVzZSB0d28gaW4gaGVyZSBmZWVsIG5hdHVyYWxseSBhdHRyYWN0ZWQg dG8gZWFjaG90aGVycy4gUGVyaGFwcwphIGZ1dHVyZSBwYXRjaCB3aWxsIG1lbGQgdGhlbSB0b2dl dGhlci4KClJldmlld2VkLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4Lmlu dGVsLmNvbT4KCj4gKwkJfQo+ICAJfQo+ICAKPiAgCWlmIChpaXIgJiAoR1RfUkVOREVSX1VTRVJf SU5URVJSVVBUIDw8IHRlc3Rfc2hpZnQpKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5n aW5lX2NzLmMKPiBpbmRleCBhNDdhOWM2YmVhNTIuLmFiNWJmNGUyZTI4ZSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gQEAgLTE1NDgsOCArMTU0OCw4IEBAIGJv b2wgaW50ZWxfZW5naW5lX2lzX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ ICAJaWYgKHRlc3RfYml0KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQp KQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gLQkvKiBCb3RoIHBvcnRzIGRyYWluZWQsIG5vIG1v cmUgRUxTUCBzdWJtaXNzaW9uPyAqLwo+IC0JaWYgKHBvcnRfcmVxdWVzdCgmZW5naW5lLT5leGVj bGlzdHMucG9ydFswXSkpCj4gKwkvKiBXYWl0aW5nIHRvIGRyYWluIEVMU1A/ICovCj4gKwlpZiAo UkVBRF9PTkNFKGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSkpCj4gIAkJcmV0dXJuIGZhbHNlOwo+ ICAKPiAgCS8qIEVMU1AgaXMgZW1wdHksIGJ1dCB0aGVyZSBhcmUgcmVhZHkgcmVxdWVzdHM/ICov Cj4gQEAgLTE3NDksNiArMTc0OSw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKm0pCj4gIAkJCQkJICAg aWR4KTsKPiAgCQkJfQo+ICAJCX0KPiArCQlkcm1fcHJpbnRmKG0sICJcdFx0SFcgYWN0aXZlPyAw eCV4XG4iLCBleGVjbGlzdHMtPmFjdGl2ZSk7Cj4gIAkJcmN1X3JlYWRfdW5sb2NrKCk7Cj4gIAl9 IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPiA2KSB7Cj4gIAkJZHJtX3ByaW50ZihtLCAi XHRQUF9ESVJfQkFTRTogMHglMDh4XG4iLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5k ZXggN2Y0NWRkN2RjM2U1Li4yMzNjOTkyYTg4NmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYwo+IEBAIC01NzUsNyArNTc1LDggQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJCQkgKiB0aGUgc3RhdGUgb2YgdGhl IEdQVSBpcyBrbm93biAoaWRsZSkuCj4gIAkJCSAqLwo+ICAJCQlpbmplY3RfcHJlZW1wdF9jb250 ZXh0KGVuZ2luZSk7Cj4gLQkJCWV4ZWNsaXN0cy0+cHJlZW1wdCA9IHRydWU7Cj4gKwkJCWV4ZWNs aXN0c19zZXRfYWN0aXZlKGV4ZWNsaXN0cywKPiArCQkJCQkgICAgIEVYRUNMSVNUU19BQ1RJVkVf UFJFRU1QVCk7Cj4gIAkJCWdvdG8gdW5sb2NrOwo+ICAJCX0gZWxzZSB7Cj4gIAkJCS8qCj4gQEAg LTY4Myw4ICs2ODQsMTAgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICB1bmxvY2s6Cj4gIAlzcGluX3VubG9ja19pcnEoJmVu Z2luZS0+dGltZWxpbmUtPmxvY2spOwo+ICAKPiAtCWlmIChzdWJtaXQpCj4gKwlpZiAoc3VibWl0 KSB7Cj4gKwkJZXhlY2xpc3RzX3NldF9hY3RpdmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZF X1VTRVIpOwo+ICAJCWV4ZWNsaXN0c19zdWJtaXRfcG9ydHMoZW5naW5lKTsKPiArCX0KPiAgfQo+ ICAKPiAgc3RhdGljIHZvaWQKPiBAQCAtNjk2LDYgKzY5OSw3IEBAIGV4ZWNsaXN0X2NhbmNlbF9w b3J0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMpCj4g IAl3aGlsZSAobnVtX3BvcnRzLS0gJiYgcG9ydF9pc3NldChwb3J0KSkgewo+ICAJCXN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcnEgPSBwb3J0X3JlcXVlc3QocG9ydCk7Cj4gIAo+ICsJCUdF TV9CVUdfT04oIWV4ZWNsaXN0cy0+YWN0aXZlKTsKPiAgCQlleGVjbGlzdHNfY29udGV4dF9zdGF0 dXNfY2hhbmdlKHJxLCBJTlRFTF9DT05URVhUX1NDSEVEVUxFX1BSRUVNUFRFRCk7Cj4gIAkJaTkx NV9nZW1fcmVxdWVzdF9wdXQocnEpOwo+ICAKPiBAQCAtODYxLDE1ICs4NjUsMjEgQEAgc3RhdGlj IHZvaWQgaW50ZWxfbHJjX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgCQkJCXVu d2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKGVuZ2luZSk7Cj4gIAkJCQlzcGluX3VubG9ja19pcnEo JmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOwo+ICAKPiAtCQkJCUdFTV9CVUdfT04oIWV4ZWNsaXN0 cy0+cHJlZW1wdCk7Cj4gLQkJCQlleGVjbGlzdHMtPnByZWVtcHQgPSBmYWxzZTsKPiArCQkJCUdF TV9CVUdfT04oIWV4ZWNsaXN0c19pc19hY3RpdmUoZXhlY2xpc3RzLAo+ICsJCQkJCQkJCUVYRUNM SVNUU19BQ1RJVkVfUFJFRU1QVCkpOwo+ICsJCQkJZXhlY2xpc3RzX2NsZWFyX2FjdGl2ZShleGVj bGlzdHMsCj4gKwkJCQkJCSAgICAgICBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpOwo+ICAJCQkJ Y29udGludWU7Cj4gIAkJCX0KPiAgCj4gIAkJCWlmIChzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNf UFJFRU1QVEVEICYmCj4gLQkJCSAgICBleGVjbGlzdHMtPnByZWVtcHQpCj4gKwkJCSAgICBleGVj bGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywKPiArCQkJCQkgICAgICAgRVhFQ0xJU1RTX0FDVElW RV9QUkVFTVBUKSkKPiAgCQkJCWNvbnRpbnVlOwo+ICAKPiArCQkJR0VNX0JVR19PTighZXhlY2xp c3RzX2lzX2FjdGl2ZShleGVjbGlzdHMsCj4gKwkJCQkJCQlFWEVDTElTVFNfQUNUSVZFX1VTRVIp KTsKPiArCj4gIAkJCS8qIENoZWNrIHRoZSBjb250ZXh0L2Rlc2MgaWQgZm9yIHRoaXMgZXZlbnQg bWF0Y2hlcyAqLwo+ICAJCQlHRU1fREVCVUdfQlVHX09OKGJ1ZlsyICogaGVhZCArIDFdICE9IHBv cnQtPmNvbnRleHRfaWQpOwo+ICAKPiBAQCAtODkyLDYgKzkwMiw5IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2xyY19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCj4gIAkJCS8qIEFmdGVyIHRo ZSBmaW5hbCBlbGVtZW50LCB0aGUgaHcgc2hvdWxkIGJlIGlkbGUgKi8KPiAgCQkJR0VNX0JVR19P Tihwb3J0X2NvdW50KHBvcnQpID09IDAgJiYKPiAgCQkJCSAgICEoc3RhdHVzICYgR0VOOF9DVFhf U1RBVFVTX0FDVElWRV9JRExFKSk7Cj4gKwkJCWlmIChwb3J0X2NvdW50KHBvcnQpID09IDApCj4g KwkJCQlleGVjbGlzdHNfY2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywKPiArCQkJCQkJICAgICAgIEVY RUNMSVNUU19BQ1RJVkVfVVNFUik7Cj4gIAkJfQo+ICAKPiAgCQlpZiAoaGVhZCAhPSBleGVjbGlz dHMtPmNzYl9oZWFkKSB7Cj4gQEAgLTkwMSw3ICs5MTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9s cmNfaXJxX2hhbmRsZXIodW5zaWduZWQgbG9uZyBkYXRhKQo+ICAJCX0KPiAgCX0KPiAgCj4gLQlp ZiAoIWV4ZWNsaXN0cy0+cHJlZW1wdCkKPiArCWlmICghZXhlY2xpc3RzX2lzX2FjdGl2ZShleGVj bGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCkpCj4gIAkJZXhlY2xpc3RzX2RlcXVldWUo ZW5naW5lKTsKPiAgCj4gIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dChkZXZfcHJpdiwgZXhl Y2xpc3RzLT5md19kb21haW5zKTsKPiBAQCAtMTQ2MCw3ICsxNDczLDcgQEAgc3RhdGljIGludCBn ZW44X2luaXRfY29tbW9uX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJ CSAgIEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBlbmdpbmUtPmlycV9zaGlmdCk7Cj4g IAljbGVhcl9iaXQoRU5HSU5FX0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCk7Cj4g IAlleGVjbGlzdHMtPmNzYl9oZWFkID0gLTE7Cj4gLQlleGVjbGlzdHMtPnByZWVtcHQgPSBmYWxz ZTsKPiArCWV4ZWNsaXN0cy0+YWN0aXZlID0gMDsKPiAgCj4gIAkvKiBBZnRlciBhIEdQVSByZXNl dCwgd2UgbWF5IGhhdmUgcmVxdWVzdHMgdG8gcmVwbGF5ICovCj4gIAlpZiAoIWk5MTVfbW9kcGFy YW1zLmVuYWJsZV9ndWNfc3VibWlzc2lvbiAmJiBleGVjbGlzdHMtPmZpcnN0KQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCAxNzE4NmYwNjc0MDguLjUxYmM3 MDRiZjQxMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBA QCAtMjQxLDkgKzI0MSwxNyBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyB7Cj4gIAl9 IHBvcnRbRVhFQ0xJU1RfTUFYX1BPUlRTXTsKPiAgCj4gIAkvKioKPiAtCSAqIEBwcmVlbXB0OiBh cmUgd2UgY3VycmVudGx5IGhhbmRsaW5nIGEgcHJlZW1wdGluZyBjb250ZXh0IHN3aXRjaD8KPiAr CSAqIEBhY3RpdmU6IGlzIHRoZSBIVyBhY3RpdmU/IFdlIGNvbnNpZGVyIHRoZSBIVyBhcyBhY3Rp dmUgYWZ0ZXIKPiArCSAqIHN1Ym1pdHRlZCBhbnkgY29udGV4dCBmb3IgZXhlY3V0aW9uIHVudGls IHdlIGhhdmUgc2VlbiB0aGUgbGFzdAo+ICsJICogY29udGV4dCBjb21wbGV0aW9uIGV2ZW50LiBB ZnRlciB0aGF0LCB3ZSBkbyBub3QgZXhwZWN0IGFueSBtb3JlCj4gKwkgKiBldmVudHMgdW50aWwg d2Ugc3VibWl0LCBhbmQgc28gY2FuIHBhcmsgdGhlIEhXLgo+ICsJICoKPiArCSAqIEFzIHdlIGhh dmUgYSBzbWFsbCBudW1iZXIgb2YgZGlmZmVyZW50IHNvdXJjZXMgZnJvbSB3aGljaCB3ZSBmZWVk Cj4gKwkgKiB0aGUgSFcsIHdlIHRyYWNrIHRoZSBzdGF0ZSBvZiBlYWNoIGluc2lkZSBhIHNpbmds ZSBiaXRmaWVsZC4KPiAgCSAqLwo+IC0JYm9vbCBwcmVlbXB0Owo+ICsJdW5zaWduZWQgaW50IGFj dGl2ZTsKPiArI2RlZmluZSBFWEVDTElTVFNfQUNUSVZFX1VTRVIgMAo+ICsjZGVmaW5lIEVYRUNM SVNUU19BQ1RJVkVfUFJFRU1QVCAxCj4gIAo+ICAJLyoqCj4gIAkgKiBAcG9ydF9tYXNrOiBudW1i ZXIgb2YgZXhlY2xpc3QgcG9ydHMgLSAxCj4gQEAgLTUyNSw2ICs1MzMsMjcgQEAgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyB7Cj4gIAl1MzIgKCpnZXRfY21kX2xlbmd0aF9tYXNrKSh1MzIgY21kX2hl YWRlcik7Cj4gIH07Cj4gIAo+ICtzdGF0aWMgaW5saW5lIHZvaWQKPiArZXhlY2xpc3RzX3NldF9h Y3RpdmUoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cywKPiArCQkgICAg IHVuc2lnbmVkIGludCBiaXQpCj4gK3sKPiArCV9fc2V0X2JpdChiaXQsICh1bnNpZ25lZCBsb25n ICopJmV4ZWNsaXN0cy0+YWN0aXZlKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkCj4g K2V4ZWNsaXN0c19jbGVhcl9hY3RpdmUoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4 ZWNsaXN0cywKPiArCQkgICAgICAgdW5zaWduZWQgaW50IGJpdCkKPiArewo+ICsJX19jbGVhcl9i aXQoYml0LCAodW5zaWduZWQgbG9uZyAqKSZleGVjbGlzdHMtPmFjdGl2ZSk7Cj4gK30KPiArCj4g K3N0YXRpYyBpbmxpbmUgYm9vbAo+ICtleGVjbGlzdHNfaXNfYWN0aXZlKGNvbnN0IHN0cnVjdCBp bnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMsCj4gKwkJICAgIHVuc2lnbmVkIGludCBi aXQpCj4gK3sKPiArCXJldHVybiB0ZXN0X2JpdChiaXQsICh1bnNpZ25lZCBsb25nICopJmV4ZWNs aXN0cy0+YWN0aXZlKTsKPiArfQo+ICsKPiAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKPiAg ZXhlY2xpc3RzX251bV9wb3J0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAq IGNvbnN0IGV4ZWNsaXN0cykKPiAgewo+IEBAIC01MzgsNiArNTY3LDcgQEAgZXhlY2xpc3RzX3Bv cnRfY29tcGxldGUoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlz dHMsCj4gIAljb25zdCB1bnNpZ25lZCBpbnQgbSA9IGV4ZWNsaXN0cy0+cG9ydF9tYXNrOwo+ICAK PiAgCUdFTV9CVUdfT04ocG9ydF9pbmRleChwb3J0LCBleGVjbGlzdHMpICE9IDApOwo+ICsJR0VN X0JVR19PTighZXhlY2xpc3RzX2lzX2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVf VVNFUikpOwo+ICAKPiAgCW1lbW1vdmUocG9ydCwgcG9ydCArIDEsIG0gKiBzaXplb2Yoc3RydWN0 IGV4ZWNsaXN0X3BvcnQpKTsKPiAgCW1lbXNldChwb3J0ICsgbSwgMCwgc2l6ZW9mKHN0cnVjdCBl eGVjbGlzdF9wb3J0KSk7Cj4gLS0gCj4gMi4xNS4wLnJjMQo+Cj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=