From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 2/2] drm/i915: Use time based guilty context banning Date: Tue, 19 Feb 2019 13:22:32 +0200 Message-ID: <87imxgxbt3.fsf@gaia.fi.intel.com> References: <20190218145051.18981-1-chris@chris-wilson.co.uk> <20190218145051.18981-2-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 178D8891F9 for ; Tue, 19 Feb 2019 11:22:53 +0000 (UTC) In-Reply-To: <20190218145051.18981-2-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+IHdyaXRlczoKCj4gQ3VycmVu dGx5LCB3ZSBhY2N1bXVsYXRlIGVhY2ggdGltZSBhIGNvbnRleHQgaGFuZ3MgdGhlIEdQVSwgb2Zm c2V0Cj4gYWdhaW5zdCB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIGl0IHN1Ym1pdHMsIGFuZCBpZiB0 aGF0IHNjb3JlIGV4Y2VlZHMgYQo+IGNlcnRhaW4gdGhyZXNob2xkLCB3ZSBiYW4gdGhhdCBjb250 ZXh0IGZyb20gc3VibWl0dGluZyBhbnkgbW9yZSByZXF1ZXN0cwo+IChjYW5jZWxsaW5nIGFueSB3 b3JrIGluIGZsaWdodCkuIEluIGNvbnRyYXN0LCB3ZSB1c2UgYSBzaW1wbGUgdGltZXIgb24KPiB0 aGUgZmlsZSwgdGhhdCBpZiB3ZSBzZWUgbW9yZSB0aGFuIGEgOSBoYW5ncyBmYXN0ZXIgdGhhbiA2 MHMgYXBhcnQgaW4KPiB0b3RhbCBhY3Jvc3MgYWxsIG9mIGl0cyBjb250ZXh0cywgd2Ugd2lsbCBi YW4gdGhlIGNsaWVudCBmcm9tIGNyZWF0aW5nCj4gYW55IG1vcmUgY29udGV4dHMuIFRoaXMgbGVh ZHMgdG8gYSBjb25mdXNpbmcgc2l0dWF0aW9uIHdoZXJlIHRoZSBmaWxlCj4gbWF5IGJlIGJhbm5l ZCBiZWZvcmUgdGhlIGNvbnRleHQsIHNvIGxldHMgdXNlIGEgc2ltcGxlIHRpbWVyIHNjaGVtZSBm b3IKPiBlYWNoLgo+Cj4gSWYgdGhlIGNvbnRleHQgc3VibWl0cyAzIGhhbmdpbmcgcmVxdWVzdHMg d2l0aGluIGEgMTIwcyBwZXJpb2QsIGRlY2xhcmUKPiBpdCBmb3JiaWRkZW4gdG8gZXZlciBzZW5k IG1vcmUgcmVxdWVzdHMuCj4KPiBUaGlzIGhhcyB0aGUgYWR2YW50YWdlIG9mIG5vdCBiZWluZyBl YXN5IHRvIHJlcGFpciBieSBzaW1wbHkgc2VuZGluZwo+IGVtcHR5IHJlcXVlc3RzLCBidXQgaGFz IHRoZSBkaXNhZHZhbnRhZ2UgdGhhdCBpZiB0aGUgY29udGV4dCBpcyBpZGxlCj4gdGhlbiBpdCBp cyBmb3JnaXZlbi4gSG93ZXZlciwgaWYgdGhlIGNvbnRleHQgaXMgaWRsZSwgaXQgaXMgbm90Cj4g ZGlzcnVwdGluZyB0aGUgc3lzdGVtLCBidXQgYSBob2cgY2FuIGV2YWRlIHRoZSByZXF1ZXN0IGNv dW50aW5nIGFuZAo+IGNhdXNlIG11Y2ggbW9yZSBzZXZlcmUgZGlzcnVwdGlvbiB0byB0aGUgc3lz dGVtLgo+Cj4gVXBkYXRpbmcgYmFuX3Njb3JlIGZyb20gcmVxdWVzdCByZXRpcmVtZW50IGlzIGR1 YmlvdXMgYXMgdGhlIHJldGlyZW1lbnQKPiBpcyBwdXJwb3NlbHkgbm90IGluIHN5bmMgd2l0aCBy ZXF1ZXN0IHN1Ym1pc3Npb24gKGkuZS4gd2UgdHJ5IGFuZCBiYXRjaAo+IHJldGlyZW1lbnQgdG8g cmVkdWNlIG92ZXJoZWFkIGFuZCBhdm9pZCBsYXRlbmN5IG9uIHN1Ym1pc3Npb24pLCB3aGljaAo+ IGxlYWRzIHRvIHN1cnByaXNpbmcgc2l0dWF0aW9ucyB3aGVyZSB3ZSBjYW4gZm9yZ2l2ZSBhIGhh bmcgaW1tZWRpYXRlbHkKPiBkdWUgdG8gYSBiYWNrbG9nIG9mIHJlcXVlc3RzIGZyb20gYmVmb3Jl IHRoZSBoYW5nIGJlaW5nIHJldGlyZWQKPiBhZnRlcndhcmRzLgo+Cj4gU2lnbmVkLW9mZi1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IE1pa2EgS3VvcHBh bGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9jb250ZXh0LmMgfCAgNCArKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2NvbnRleHQuaCB8ICA5ICsrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYyAgIHwgMzEgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oICAgfCAgMyAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAgIHwgIDIgLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZXNldC5jICAgICAgIHwgMjcgKysrKysrKysrKysrLS0tLS0tLS0tCj4gIDYgZmls ZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXggZGEyMWM4NDNmZWQ4Li43NTQx YzZmOTYxYjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4g QEAgLTM1NSw2ICszNTUsNyBAQCBfX2NyZWF0ZV9od19jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiAgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gIAl1 bnNpZ25lZCBpbnQgbjsKPiAgCWludCByZXQ7Cj4gKwlpbnQgaTsKPiAgCj4gIAljdHggPSBremFs bG9jKHNpemVvZigqY3R4KSwgR0ZQX0tFUk5FTCk7Cj4gIAlpZiAoY3R4ID09IE5VTEwpCj4gQEAg LTQwNyw2ICs0MDgsOSBAQCBfX2NyZWF0ZV9od19jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAgCWN0eC0+ZGVzY190ZW1wbGF0ZSA9Cj4gIAkJZGVmYXVsdF9kZXNj X3RlbXBsYXRlKGRldl9wcml2LCBkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBndHQpOwo+ICAKPiAr CWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGN0eC0+aGFuZ190aW1lc3RhbXApOyBpKyspCj4g KwkJY3R4LT5oYW5nX3RpbWVzdGFtcFtpXSA9IGppZmZpZXMgLSBDT05URVhUX0ZBU1RfSEFOR19K SUZGSUVTOwo+ICsKPiAgCXJldHVybiBjdHg7Cj4gIAo+ICBlcnJfcGlkOgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKPiBpbmRleCAwNzExMDhkMzRhZTAuLmRjNmM1OGYz OGNmYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKPiBAQCAt MjA5LDEwICsyMDksMTEgQEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewo+ICAJICovCj4gIAlh dG9taWNfdCBhY3RpdmVfY291bnQ7Cj4gIAo+IC0jZGVmaW5lIENPTlRFWFRfU0NPUkVfR1VJTFRZ CQkxMAo+IC0jZGVmaW5lIENPTlRFWFRfU0NPUkVfQkFOX1RIUkVTSE9MRAk0MAo+IC0JLyoqIGJh bl9zY29yZTogQWNjdW11bGF0ZWQgc2NvcmUgb2YgYWxsIGhhbmdzIGNhdXNlZCBieSB0aGlzIGNv bnRleHQuICovCj4gLQlhdG9taWNfdCBiYW5fc2NvcmU7Cj4gKwkvKioKPiArCSAqIEBoYW5nX3Rp bWVzdGFtcDogVGhlIGxhc3QgdGltZShzKSB0aGlzIGNvbnRleHQgY2F1c2VkIGEgR1BVIGhhbmcK PiArCSAqLwo+ICsJdW5zaWduZWQgbG9uZyBoYW5nX3RpbWVzdGFtcFsyXTsKPiArI2RlZmluZSBD T05URVhUX0ZBU1RfSEFOR19KSUZGSUVTICgxMjAgKiBIWikgLyogMyBoYW5ncyB3aXRoaW4gMTIw cz8gQmFubmVkISAqLwo+ICAKPiAgCS8qKiByZW1hcF9zbGljZTogQml0bWFzayBvZiBjYWNoZSBs aW5lcyB0aGF0IG5lZWQgcmVtYXBwaW5nICovCj4gIAl1OCByZW1hcF9zbGljZTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiBpbmRleCA5YTY1MzQxZmVjMDkuLjNmNmVkZGI2 ZjZkZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+IEBAIC00MzQs MTEgKzQzNCw2IEBAIHN0YXRpYyB2b2lkIGVycm9yX3ByaW50X2luc3Rkb25lKHN0cnVjdCBkcm1f aTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4gIAkJCSAgIGVlLT5pbnN0ZG9uZS5yb3dbc2xpY2Vd W3N1YnNsaWNlXSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBjb25zdCBjaGFyICpiYW5uYWJsZShjb25z dCBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfY29udGV4dCAqY3R4KQo+IC17Cj4gLQlyZXR1cm4gY3R4 LT5iYW5uYWJsZSA/ICIiIDogIiAodW5iYW5uYWJsZSkiOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9p ZCBlcnJvcl9wcmludF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0s Cj4gIAkJCQljb25zdCBjaGFyICpwcmVmaXgsCj4gIAkJCQljb25zdCBzdHJ1Y3QgZHJtX2k5MTVf ZXJyb3JfcmVxdWVzdCAqZXJxLAo+IEBAIC00NDcsOSArNDQyLDggQEAgc3RhdGljIHZvaWQgZXJy b3JfcHJpbnRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAo+ICAJ aWYgKCFlcnEtPnNlcW5vKQo+ICAJCXJldHVybjsKPiAgCj4gLQllcnJfcHJpbnRmKG0sICIlcyBw aWQgJWQsIGJhbiBzY29yZSAlZCwgc2Vxbm8gJTh4OiUwOHglcyVzLCBwcmlvICVkLCBlbWl0dGVk ICVkbXMsIHN0YXJ0ICUwOHgsIGhlYWQgJTA4eCwgdGFpbCAlMDh4XG4iLAo+IC0JCSAgIHByZWZp eCwgZXJxLT5waWQsIGVycS0+YmFuX3Njb3JlLAo+IC0JCSAgIGVycS0+Y29udGV4dCwgZXJxLT5z ZXFubywKPiArCWVycl9wcmludGYobSwgIiVzIHBpZCAlZCwgc2Vxbm8gJTh4OiUwOHglcyVzLCBw cmlvICVkLCBlbWl0dGVkICVkbXMsIHN0YXJ0ICUwOHgsIGhlYWQgJTA4eCwgdGFpbCAlMDh4XG4i LAo+ICsJCSAgIHByZWZpeCwgZXJxLT5waWQsIGVycS0+Y29udGV4dCwgZXJxLT5zZXFubywKPiAg CQkgICB0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsCj4gIAkJCSAgICAmZXJx LT5mbGFncykgPyAiISIgOiAiIiwKPiAgCQkgICB0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19FTkFC TEVfU0lHTkFMX0JJVCwKPiBAQCAtNDYzLDEwICs0NTcsOSBAQCBzdGF0aWMgdm9pZCBlcnJvcl9w cmludF9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4gIAkJCQlj b25zdCBjaGFyICpoZWFkZXIsCj4gIAkJCQljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfY29u dGV4dCAqY3R4KQo+ICB7Cj4gLQllcnJfcHJpbnRmKG0sICIlcyVzWyVkXSB1c2VyX2hhbmRsZSAl ZCBod19pZCAlZCwgcHJpbyAlZCwgYmFuIHNjb3JlICVkJXMgZ3VpbHR5ICVkIGFjdGl2ZSAlZFxu IiwKPiArCWVycl9wcmludGYobSwgIiVzJXNbJWRdIHVzZXJfaGFuZGxlICVkIGh3X2lkICVkLCBw cmlvICVkLCBndWlsdHkgJWQgYWN0aXZlICVkXG4iLAo+ICAJCSAgIGhlYWRlciwgY3R4LT5jb21t LCBjdHgtPnBpZCwgY3R4LT5oYW5kbGUsIGN0eC0+aHdfaWQsCj4gLQkJICAgY3R4LT5zY2hlZF9h dHRyLnByaW9yaXR5LCBjdHgtPmJhbl9zY29yZSwgYmFubmFibGUoY3R4KSwKPiAtCQkgICBjdHgt Pmd1aWx0eSwgY3R4LT5hY3RpdmUpOwo+ICsJCSAgIGN0eC0+c2NoZWRfYXR0ci5wcmlvcml0eSwg Y3R4LT5ndWlsdHksIGN0eC0+YWN0aXZlKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgZXJyb3Jf cHJpbnRfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4gQEAgLTY4 OCwxMiArNjgxLDEwIEBAIHN0YXRpYyB2b2lkIF9fZXJyX3ByaW50X3RvX3NnbChzdHJ1Y3QgZHJt X2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAo+ICAJCWlmICghZXJyb3ItPmVuZ2luZVtpXS5jb250 ZXh0LnBpZCkKPiAgCQkJY29udGludWU7Cj4gIAo+IC0JCWVycl9wcmludGYobSwgIkFjdGl2ZSBw cm9jZXNzIChvbiByaW5nICVzKTogJXMgWyVkXSwgc2NvcmUgJWQlc1xuIiwKPiArCQllcnJfcHJp bnRmKG0sICJBY3RpdmUgcHJvY2VzcyAob24gcmluZyAlcyk6ICVzIFslZF1cbiIsCj4gIAkJCSAg IGVuZ2luZV9uYW1lKG0tPmk5MTUsIGkpLAo+ICAJCQkgICBlcnJvci0+ZW5naW5lW2ldLmNvbnRl eHQuY29tbSwKPiAtCQkJICAgZXJyb3ItPmVuZ2luZVtpXS5jb250ZXh0LnBpZCwKPiAtCQkJICAg ZXJyb3ItPmVuZ2luZVtpXS5jb250ZXh0LmJhbl9zY29yZSwKPiAtCQkJICAgYmFubmFibGUoJmVy cm9yLT5lbmdpbmVbaV0uY29udGV4dCkpOwo+ICsJCQkgICBlcnJvci0+ZW5naW5lW2ldLmNvbnRl eHQucGlkKTsKPiAgCX0KPiAgCWVycl9wcmludGYobSwgIlJlc2V0IGNvdW50OiAldVxuIiwgZXJy b3ItPnJlc2V0X2NvdW50KTsKPiAgCWVycl9wcmludGYobSwgIlN1c3BlbmQgY291bnQ6ICV1XG4i LCBlcnJvci0+c3VzcGVuZF9jb3VudCk7Cj4gQEAgLTc3OSwxMyArNzcwLDExIEBAIHN0YXRpYyB2 b2lkIF9fZXJyX3ByaW50X3RvX3NnbChzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICpt LAo+ICAJCWlmIChvYmopIHsKPiAgCQkJZXJyX3B1dHMobSwgbS0+aTkxNS0+ZW5naW5lW2ldLT5u YW1lKTsKPiAgCQkJaWYgKGVlLT5jb250ZXh0LnBpZCkKPiAtCQkJCWVycl9wcmludGYobSwgIiAo c3VibWl0dGVkIGJ5ICVzIFslZF0sIGN0eCAlZCBbJWRdLCBzY29yZSAlZCVzKSIsCj4gKwkJCQll cnJfcHJpbnRmKG0sICIgKHN1Ym1pdHRlZCBieSAlcyBbJWRdLCBjdHggJWQgWyVkXSkiLAo+ICAJ CQkJCSAgIGVlLT5jb250ZXh0LmNvbW0sCj4gIAkJCQkJICAgZWUtPmNvbnRleHQucGlkLAo+ICAJ CQkJCSAgIGVlLT5jb250ZXh0LmhhbmRsZSwKPiAtCQkJCQkgICBlZS0+Y29udGV4dC5od19pZCwK PiAtCQkJCQkgICBlZS0+Y29udGV4dC5iYW5fc2NvcmUsCj4gLQkJCQkJICAgYmFubmFibGUoJmVl LT5jb250ZXh0KSk7Cj4gKwkJCQkJICAgZWUtPmNvbnRleHQuaHdfaWQpOwo+ICAJCQllcnJfcHJp bnRmKG0sICIgLS0tIGd0dF9vZmZzZXQgPSAweCUwOHggJTA4eFxuIiwKPiAgCQkJCSAgIHVwcGVy XzMyX2JpdHMob2JqLT5ndHRfb2Zmc2V0KSwKPiAgCQkJCSAgIGxvd2VyXzMyX2JpdHMob2JqLT5n dHRfb2Zmc2V0KSk7Cj4gQEAgLTEzMDEsOCArMTI5MCw2IEBAIHN0YXRpYyB2b2lkIHJlY29yZF9y ZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsCj4gIAllcnEtPmZsYWdzID0gcmVx dWVzdC0+ZmVuY2UuZmxhZ3M7Cj4gIAllcnEtPmNvbnRleHQgPSBjdHgtPmh3X2lkOwo+ICAJZXJx LT5zY2hlZF9hdHRyID0gcmVxdWVzdC0+c2NoZWQuYXR0cjsKPiAtCWVycS0+YmFuX3Njb3JlID0g YXRvbWljX3JlYWQoJmN0eC0+YmFuX3Njb3JlKTsKPiAtCWVycS0+c2Vxbm8gPSByZXF1ZXN0LT5n bG9iYWxfc2Vxbm87Cj4gIAllcnEtPmppZmZpZXMgPSByZXF1ZXN0LT5lbWl0dGVkX2ppZmZpZXM7 Cj4gIAllcnEtPnN0YXJ0ID0gaTkxNV9nZ3R0X29mZnNldChyZXF1ZXN0LT5yaW5nLT52bWEpOwo+ ICAJZXJxLT5oZWFkID0gcmVxdWVzdC0+aGVhZDsKPiBAQCAtMTM5Niw4ICsxMzgzLDYgQEAgc3Rh dGljIHZvaWQgcmVjb3JkX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2Vycm9yX2NvbnRleHQgKmUs Cj4gIAllLT5oYW5kbGUgPSBjdHgtPnVzZXJfaGFuZGxlOwo+ICAJZS0+aHdfaWQgPSBjdHgtPmh3 X2lkOwo+ICAJZS0+c2NoZWRfYXR0ciA9IGN0eC0+c2NoZWQ7Cj4gLQllLT5iYW5fc2NvcmUgPSBh dG9taWNfcmVhZCgmY3R4LT5iYW5fc2NvcmUpOwo+IC0JZS0+YmFubmFibGUgPSBpOTE1X2dlbV9j b250ZXh0X2lzX2Jhbm5hYmxlKGN0eCk7Cj4gIAllLT5ndWlsdHkgPSBhdG9taWNfcmVhZCgmY3R4 LT5ndWlsdHlfY291bnQpOwo+ICAJZS0+YWN0aXZlID0gYXRvbWljX3JlYWQoJmN0eC0+YWN0aXZl X2NvdW50KTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dw dV9lcnJvci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaAo+IGluZGV4 IGFmYTNhZGIyOGYwMi4uOTRlYWY4YWI5MDUxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dwdV9lcnJvci5oCj4gQEAgLTEyMiwxMCArMTIyLDggQEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRl IHsKPiAgCQkJcGlkX3QgcGlkOwo+ICAJCQl1MzIgaGFuZGxlOwo+ICAJCQl1MzIgaHdfaWQ7Cj4g LQkJCWludCBiYW5fc2NvcmU7Cj4gIAkJCWludCBhY3RpdmU7Cj4gIAkJCWludCBndWlsdHk7Cj4g LQkJCWJvb2wgYmFubmFibGU7Cj4gIAkJCXN0cnVjdCBpOTE1X3NjaGVkX2F0dHIgc2NoZWRfYXR0 cjsKPiAgCQl9IGNvbnRleHQ7Cj4gIAo+IEBAIC0xNDksNyArMTQ3LDYgQEAgc3RydWN0IGk5MTVf Z3B1X3N0YXRlIHsKPiAgCQkJbG9uZyBqaWZmaWVzOwo+ICAJCQlwaWRfdCBwaWQ7Cj4gIAkJCXUz MiBjb250ZXh0Owo+IC0JCQlpbnQgYmFuX3Njb3JlOwo+ICAJCQl1MzIgc2Vxbm87Cj4gIAkJCXUz MiBzdGFydDsKPiAgCQkJdTMyIGhlYWQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMK PiBpbmRleCA1YWI0ZTFjMDE2MTguLmE2MWUzYTRmYzlkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5jCj4gQEAgLTI5MCw4ICsyOTAsNiBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jl cXVlc3RfcmV0aXJlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCj4gIAo+ICAJaTkxNV9y ZXF1ZXN0X3JlbW92ZV9mcm9tX2NsaWVudChyZXF1ZXN0KTsKPiAgCj4gLQkvKiBSZXRpcmVtZW50 IGRlY2F5cyB0aGUgYmFuIHNjb3JlIGFzIGl0IGlzIGEgc2lnbiBvZiBjdHggcHJvZ3Jlc3MgKi8K PiAtCWF0b21pY19kZWNfaWZfcG9zaXRpdmUoJnJlcXVlc3QtPmdlbV9jb250ZXh0LT5iYW5fc2Nv cmUpOwo+ICAJaW50ZWxfY29udGV4dF91bnBpbihyZXF1ZXN0LT5od19jb250ZXh0KTsKPiAgCj4g IAlfX3JldGlyZV9lbmdpbmVfdXB0byhyZXF1ZXN0LT5lbmdpbmUsIHJlcXVlc3QpOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3Jlc2V0LmMKPiBpbmRleCAxOTExZTAwZDI1ODEuLmJhZTg4YTRlYTkyNCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMKPiBAQCAtNTksMjQgKzU5LDI5IEBAIHN0 YXRpYyB2b2lkIGNsaWVudF9tYXJrX2d1aWx0eShzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRl ICpmaWxlX3ByaXYsCj4gIAo+ICBzdGF0aWMgYm9vbCBjb250ZXh0X21hcmtfZ3VpbHR5KHN0cnVj dCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4gIHsKPiAtCXVuc2lnbmVkIGludCBzY29yZTsKPiAt CWJvb2wgYmFubmVkLCBiYW5uYWJsZTsKPiArCXVuc2lnbmVkIGxvbmcgcHJldl9oYW5nOwo+ICsJ Ym9vbCBiYW5uZWQ7Cj4gKwlpbnQgaTsKPiAgCj4gIAlhdG9taWNfaW5jKCZjdHgtPmd1aWx0eV9j b3VudCk7Cj4gIAo+IC0JYmFubmFibGUgPSBpOTE1X2dlbV9jb250ZXh0X2lzX2Jhbm5hYmxlKGN0 eCk7Cj4gLQlzY29yZSA9IGF0b21pY19hZGRfcmV0dXJuKENPTlRFWFRfU0NPUkVfR1VJTFRZLCAm Y3R4LT5iYW5fc2NvcmUpOwo+IC0JYmFubmVkID0gKCFpOTE1X2dlbV9jb250ZXh0X2lzX3JlY292 ZXJhYmxlKGN0eCkgfHwKPiAtCQkgIHNjb3JlID49IENPTlRFWFRfU0NPUkVfQkFOX1RIUkVTSE9M RCk7Cj4gLQo+ICAJLyogQ29vbCBjb250ZXh0cyBkb24ndCBhY2N1bXVsYXRlIGNsaWVudCBiYW4g c2NvcmUgKi8KClRoaXMgY29tbWVudCBiZWNvbWVzIG1pc2xlYWRpbmcgYW5kIGNhbiBiZSByZW1v dmVkLgoKPiAtCWlmICghYmFubmFibGUpCj4gKwlpZiAoIWk5MTVfZ2VtX2NvbnRleHRfaXNfYmFu bmFibGUoY3R4KSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICsJLyogUmVjb3JkIHRoZSB0aW1l c3RhbXAgZm9yIHRoZSBsYXN0IE4gaGFuZ3MgKi8KPiArCXByZXZfaGFuZyA9IGN0eC0+aGFuZ190 aW1lc3RhbXBbMF07Cj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdHgtPmhhbmdfdGlt ZXN0YW1wKSAtIDE7IGkrKykKPiArCQljdHgtPmhhbmdfdGltZXN0YW1wW2ldID0gY3R4LT5oYW5n X3RpbWVzdGFtcFtpICsgMV07Cj4gKwljdHgtPmhhbmdfdGltZXN0YW1wW2ldID0gamlmZmllczsK PiArCj4gKwkvKiBJZiB3ZSBoYXZlIGh1bmcgTisxIHRpbWVzIGluIHJhcGlkIHN1Y2Nlc3Npb24s IHdlIGJhbiB0aGUgY29udGV4dCEgKi8KPiArCWJhbm5lZCA9ICFpOTE1X2dlbV9jb250ZXh0X2lz X3JlY292ZXJhYmxlKGN0eCk7Cj4gKwlpZiAodGltZV9iZWZvcmUoamlmZmllcywgcHJldl9oYW5n ICsgQ09OVEVYVF9GQVNUX0hBTkdfSklGRklFUykpCj4gKwkJYmFubmVkID0gdHJ1ZTsKCk9rLCB0 aGUgaW5pdGlhbGl6YXRpb24gdG8gamlmZmllcyAtIENPTlRFWFRfRkFTVF9IQU5HX0pJRkZJRVMg Z3VhcmFudGVlcwp0aGF0IGl0IGNhbnQgYmUgYmFubmVkIGV2ZW4gaWYgaXQgbWFuYWdlcyB0byBp bW1lZGlhdGVseSBoYW5nLiBXaGljaAppbiBpdHNlbGYgaXMgZGlmZmljdWx0IGZlYXQgdG8gYWNj b21wbGlzaC4KCj4gIAlpZiAoYmFubmVkKSB7Cj4gLQkJRFJNX0RFQlVHX0RSSVZFUigiY29udGV4 dCAlczogZ3VpbHR5ICVkLCBzY29yZSAldSwgYmFubmVkXG4iLAo+IC0JCQkJIGN0eC0+bmFtZSwg YXRvbWljX3JlYWQoJmN0eC0+Z3VpbHR5X2NvdW50KSwKPiAtCQkJCSBzY29yZSk7Cj4gKwkJRFJN X0RFQlVHX0RSSVZFUigiY29udGV4dCAlczogZ3VpbHR5ICVkLCBiYW5uZWRcbiIsCj4gKwkJCQkg Y3R4LT5uYW1lLAo+IGF0b21pY19yZWFkKCZjdHgtPmd1aWx0eV9jb3VudCkpOwoKTm93IHdoZW4g d2Uga25vdyB3aGVuIGl0IHByZXZpb3VzbHkgaGFuZ2VkLCB3ZSBjb3VsZCBpbXByb3ZlIHRoZQps b2dnaW5nIGEgYml0IGJ5IHNheWluZyBob3cgbG9uZyBhZ28uIEJ1dCBub3Qgc3VyZQphYm91dCBp ZiBpdCB3b3J0aCB0aGUgdHJvdWJsZS4KCldpdGggdGhlIG1pc2xlYWRpbmcgY29tbWVudCByZW1v dmVkL2NvcnJlY3RlZCwKUmV2aWV3ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFA bGludXguaW50ZWwuY29tPgoKCj4gIAkJaTkxNV9nZW1fY29udGV4dF9zZXRfYmFubmVkKGN0eCk7 Cj4gIAl9Cj4gIAo+IC0tIAo+IDIuMjAuMQo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeA==