From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v2 3/3] drm/i915: Only allocate preempt context when required Date: Wed, 31 Jan 2018 16:38:02 +0200 Message-ID: <87607iw0tx.fsf@gaia.fi.intel.com> References: <20180131094703.3676-1-chris@chris-wilson.co.uk> <20180131094703.3676-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 mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5814A6EB50 for ; Wed, 31 Jan 2018 14:38:21 +0000 (UTC) In-Reply-To: <20180131094703.3676-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+IHdyaXRlczoKCj4gSWYgd2Ug cmVtb3ZlIHNvbWUgaGFyZGNvZGVkIGFzc3VtcHRpb25zIGFib3V0IHRoZSBwcmVlbXB0IGNvbnRl eHQgaGF2aW5nCj4gYSBmaXhlZCBpZCwgcmVzZXJ2ZWQgZnJvbSB1c2UgYnkgbm9ybWFsIHVzZXIg Y29udGV4dHMsIHdlIG1heSBvbmx5Cj4gYWxsb2NhdGUgdGhlIGk5MTVfZ2VtX2NvbnRleHQgd2hl biByZXF1aXJlZC4gVGhlbiB0aGUgc3Vic2VxdWVudAo+IGRlY2lzaW9ucyBvbiB1c2luZyBwcmVl bXB0aW9uIHJlZHVjZSB0byBoYXZpbmcgdGhlIHByZWVtcHQgY29udGV4dAo+IGF2YWlsYWJsZS4K Pgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr Pgo+IENjOiBNaWNoYWwgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KPiBD YzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBDYzogQXJrYWRp dXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgo+IENjOiBNaWthIEt1b3BwYWxh IDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KPiBDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8 ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgICAgICAgIHwgMjkgKysrKysrKysrKysrLS0tLS0t LS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgICAgICAg ICB8ICA2ICsrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9u LmMgICAgICB8IDI0ICsrKysrKysrKysrLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKy0tLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgICAgICAgICB8ICA1ICsrKysKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jIHwgIDYgLS0t LS0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCA2NDhlNzUz NmZmNTEuLmQ2OWM4ZjFhNGU3OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmMKPiBAQCAtNDQ5LDEwICs0NDksMTQgQEAgZGVzdHJveV9rZXJuZWxfY29udGV4dChz dHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqKmN0eHApCj4gIAlpOTE1X2dlbV9jb250ZXh0X2ZyZWUo Y3R4KTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wgbmVlZHNfcHJlZW1wdF9jb250ZXh0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICt7Cj4gKwlyZXR1cm4gSEFTX0xPR0lDQUxfUklO R19QUkVFTVBUSU9OKGk5MTUpOwo+ICt9Cj4gKwo+ICBpbnQgaTkxNV9nZW1fY29udGV4dHNfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICpjdHg7Cj4gLQlpbnQgZXJyOwo+ICAKPiAgCUdFTV9CVUdfT04oZGV2X3By aXYtPmtlcm5lbF9jb250ZXh0KTsKClBsZWFzZSBjb25zaWRlciBhZGRpbmcKR0VNX0JVR19PTihk ZXZfcHJpdi0+cHJlZW1wdF9jb250ZXh0KTsKCmhlcmUgZXZlbiB0aG8gdGhlIGtlcm5lbF9jb250 ZXh0IHNob3VsZCBhY3QgYXMgYSBtYXN0ZXIgZ3VhcmQgZm9yIGluaXQgb3JkZXJpbmcKZXJyb3Jz LiBFdmVuIGlmIG5vIG90aGVyIHRoYW4gZG9jdW1lbnRpbmcgdGhhdCB3ZSBleHBlY3QgYSBjbGVh biBzbGF0ZQppbiB0aGlzIHJlZ2FyZCBhbHNvLgoKPiAgCj4gQEAgLTQ2OCw4ICs0NzIsNyBAQCBp bnQgaTkxNV9nZW1fY29udGV4dHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gIAljdHggPSBpOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9rZXJuZWwoZGV2X3ByaXYsIEk5 MTVfUFJJT1JJVFlfTUlOKTsKPiAgCWlmIChJU19FUlIoY3R4KSkgewo+ICAJCURSTV9FUlJPUigi RmFpbGVkIHRvIGNyZWF0ZSBkZWZhdWx0IGdsb2JhbCBjb250ZXh0XG4iKTsKPiAtCQllcnIgPSBQ VFJfRVJSKGN0eCk7Cj4gLQkJZ290byBlcnI7Cj4gKwkJcmV0dXJuIFBUUl9FUlIoY3R4KTsKPiAg CX0KPiAgCS8qCj4gIAkgKiBGb3IgZWFzeSByZWNvZ25pc2FibGl0eSwgd2Ugd2FudCB0aGUga2Vy bmVsIGNvbnRleHQgdG8gYmUgMCBhbmQgdGhlbgo+IEBAIC00NzksMjMgKzQ4MiwxOCBAQCBpbnQg aTkxNV9nZW1fY29udGV4dHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gIAlkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQgPSBjdHg7Cj4gIAo+ICAJLyogaGlnaGVzdCBw cmlvcml0eTsgcHJlZW1wdGluZyB0YXNrICovCj4gLQljdHggPSBpOTE1X2dlbV9jb250ZXh0X2Ny ZWF0ZV9rZXJuZWwoZGV2X3ByaXYsIElOVF9NQVgpOwo+IC0JaWYgKElTX0VSUihjdHgpKSB7Cj4g LQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIGRlZmF1bHQgcHJlZW1wdCBjb250ZXh0XG4i KTsKPiAtCQllcnIgPSBQVFJfRVJSKGN0eCk7Cj4gLQkJZ290byBlcnJfa2VybmVsX2NvbnRleHQ7 CgpJdCBzZWVtcyB0aGlzIGVycm9yIHBhdGggaGFzIGJlZW4gd3JvbmcgYWxsIGFsb25nLgoKPiAr CWlmIChuZWVkc19wcmVlbXB0X2NvbnRleHQoZGV2X3ByaXYpKSB7Cj4gKwkJY3R4ID0gaTkxNV9n ZW1fY29udGV4dF9jcmVhdGVfa2VybmVsKGRldl9wcml2LCBJTlRfTUFYKTsKPiArCQlpZiAoIUlT X0VSUihjdHgpKQo+ICsJCQlkZXZfcHJpdi0+cHJlZW1wdF9jb250ZXh0ID0gY3R4Owo+ICsJCWVs c2UKPiArCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHByZWVtcHQgY29udGV4dDsgZGlz YWJsaW5nIHByZWVtcHRpb25cbiIpOwo+ICAJfQo+IC0JZGV2X3ByaXYtPnByZWVtcHRfY29udGV4 dCA9IGN0eDsKPiAgCj4gIAlEUk1fREVCVUdfRFJJVkVSKCIlcyBjb250ZXh0IHN1cHBvcnQgaW5p dGlhbGl6ZWRcbiIsCj4gIAkJCSBkZXZfcHJpdi0+ZW5naW5lW1JDU10tPmNvbnRleHRfc2l6ZSA/ ICJsb2dpY2FsIiA6Cj4gIAkJCSAiZmFrZSIpOwo+ICAJcmV0dXJuIDA7Cj4gLQo+IC1lcnJfa2Vy bmVsX2NvbnRleHQ6Cj4gLQlkZXN0cm95X2tlcm5lbF9jb250ZXh0KCZkZXZfcHJpdi0+a2VybmVs X2NvbnRleHQpOwo+IC1lcnI6Cj4gLQlyZXR1cm4gZXJyOwo+ICB9Cj4gIAo+ICB2b2lkIGk5MTVf Z2VtX2NvbnRleHRzX2xvc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IEBA IC01MjEsNyArNTE5LDggQEAgdm9pZCBpOTE1X2dlbV9jb250ZXh0c19maW5pKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQo+ICB7Cj4gIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5k cm0uc3RydWN0X211dGV4KTsKPiAgCj4gLQlkZXN0cm95X2tlcm5lbF9jb250ZXh0KCZpOTE1LT5w cmVlbXB0X2NvbnRleHQpOwo+ICsJaWYgKGk5MTUtPnByZWVtcHRfY29udGV4dCkKPiArCQlkZXN0 cm95X2tlcm5lbF9jb250ZXh0KCZpOTE1LT5wcmVlbXB0X2NvbnRleHQpOwo+ICAJZGVzdHJveV9r ZXJuZWxfY29udGV4dCgmaTkxNS0+a2VybmVsX2NvbnRleHQpOwo+ICAKPiAgCS8qIE11c3QgZnJl ZSBhbGwgZGVmZXJyZWQgY29udGV4dHMgKHZpYSBmbHVzaF93b3JrcXVldWUpIGZpcnN0ICovCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCA3ZWViZmJiOTVlODku LmJmNjM0NDMyYzljNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j Cj4gQEAgLTYzMSw3ICs2MzEsNyBAQCBpbnQgaW50ZWxfZW5naW5lX2luaXRfY29tbW9uKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCSAqIFNpbWlsYXJseSB0aGUgcHJlZW1wdCBj b250ZXh0IG11c3QgYWx3YXlzIGJlIGF2YWlsYWJsZSBzbyB0aGF0Cj4gIAkgKiB3ZSBjYW4gaW50 ZXJydXB0IHRoZSBlbmdpbmUgYXQgYW55IHRpbWUuCj4gIAkgKi8KPiAtCWlmIChIQVNfTE9HSUNB TF9SSU5HX1BSRUVNUFRJT04oZW5naW5lLT5pOTE1KSkgewo+ICsJaWYgKGVuZ2luZS0+aTkxNS0+ cHJlZW1wdF9jb250ZXh0KSB7Cj4gIAkJcmluZyA9IGVuZ2luZS0+Y29udGV4dF9waW4oZW5naW5l LAo+ICAJCQkJCSAgIGVuZ2luZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0KTsKPiAgCQlpZiAoSVNf RVJSKHJpbmcpKSB7Cj4gQEAgLTY1Niw3ICs2NTYsNyBAQCBpbnQgaW50ZWxfZW5naW5lX2luaXRf Y29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgZXJyX2JyZWFkY3J1bWJz Ogo+ICAJaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoZW5naW5lKTsKPiAgZXJyX3VucGlu X3ByZWVtcHQ6Cj4gLQlpZiAoSEFTX0xPR0lDQUxfUklOR19QUkVFTVBUSU9OKGVuZ2luZS0+aTkx NSkpCj4gKwlpZiAoZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQpCj4gIAkJZW5naW5lLT5j b250ZXh0X3VucGluKGVuZ2luZSwgZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQpOwo+ICBl cnJfdW5waW5fa2VybmVsOgo+ICAJZW5naW5lLT5jb250ZXh0X3VucGluKGVuZ2luZSwgZW5naW5l LT5pOTE1LT5rZXJuZWxfY29udGV4dCk7Cj4gQEAgLTY4Niw3ICs2ODYsNyBAQCB2b2lkIGludGVs X2VuZ2luZV9jbGVhbnVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4g IAlpZiAoZW5naW5lLT5kZWZhdWx0X3N0YXRlKQo+ICAJCWk5MTVfZ2VtX29iamVjdF9wdXQoZW5n aW5lLT5kZWZhdWx0X3N0YXRlKTsKPiAgCj4gLQlpZiAoSEFTX0xPR0lDQUxfUklOR19QUkVFTVBU SU9OKGVuZ2luZS0+aTkxNSkpCj4gKwlpZiAoZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQp Cj4gIAkJZW5naW5lLT5jb250ZXh0X3VucGluKGVuZ2luZSwgZW5naW5lLT5pOTE1LT5wcmVlbXB0 X2NvbnRleHQpOwo+ICAJZW5naW5lLT5jb250ZXh0X3VucGluKGVuZ2luZSwgZW5naW5lLT5pOTE1 LT5rZXJuZWxfY29udGV4dCk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19zdWJtaXNzaW9uLmMKPiBpbmRleCA0ZWE2NWRmMDVlMDIuLmI0M2I1OGNjNTk5YiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwo+IEBAIC02ODgs NyArNjg4LDcgQEAgc3RhdGljIHZvaWQgZ3VjX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQo+ICAJCWdvdG8gdW5sb2NrOwo+ICAKPiAgCWlmIChwb3J0X2lzc2V0KHBvcnQp KSB7Cj4gLQkJaWYgKEhBU19MT0dJQ0FMX1JJTkdfUFJFRU1QVElPTihlbmdpbmUtPmk5MTUpKSB7 Cj4gKwkJaWYgKGVuZ2luZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0KSB7Cj4gIAkJCXN0cnVjdCBn dWNfcHJlZW1wdF93b3JrICpwcmVlbXB0X3dvcmsgPQo+ICAJCQkJJmVuZ2luZS0+aTkxNS0+Z3Vj LnByZWVtcHRfd29ya1tlbmdpbmUtPmlkXTsKPiAgCj4gQEAgLTk4NCwxNyArOTg0LDE5IEBAIHN0 YXRpYyBpbnQgZ3VjX2NsaWVudHNfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAgCX0K PiAgCWd1Yy0+ZXhlY2J1Zl9jbGllbnQgPSBjbGllbnQ7Cj4gIAo+IC0JY2xpZW50ID0gZ3VjX2Ns aWVudF9hbGxvYyhkZXZfcHJpdiwKPiAtCQkJCSAgSU5URUxfSU5GTyhkZXZfcHJpdiktPnJpbmdf bWFzaywKPiAtCQkJCSAgR1VDX0NMSUVOVF9QUklPUklUWV9LTURfSElHSCwKPiAtCQkJCSAgZGV2 X3ByaXYtPnByZWVtcHRfY29udGV4dCk7Cj4gLQlpZiAoSVNfRVJSKGNsaWVudCkpIHsKPiAtCQlE Uk1fRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgR3VDIGNsaWVudCBmb3IgcHJlZW1wdGlvbiFcbiIp Owo+IC0JCWd1Y19jbGllbnRfZnJlZShndWMtPmV4ZWNidWZfY2xpZW50KTsKPiAtCQlndWMtPmV4 ZWNidWZfY2xpZW50ID0gTlVMTDsKPiAtCQlyZXR1cm4gUFRSX0VSUihjbGllbnQpOwo+ICsJaWYg KGRldl9wcml2LT5wcmVlbXB0X2NvbnRleHQpIHsKPiArCQljbGllbnQgPSBndWNfY2xpZW50X2Fs bG9jKGRldl9wcml2LAo+ICsJCQkJCSAgSU5URUxfSU5GTyhkZXZfcHJpdiktPnJpbmdfbWFzaywK PiArCQkJCQkgIEdVQ19DTElFTlRfUFJJT1JJVFlfS01EX0hJR0gsCj4gKwkJCQkJICBkZXZfcHJp di0+cHJlZW1wdF9jb250ZXh0KTsKPiArCQlpZiAoSVNfRVJSKGNsaWVudCkpIHsKPiArCQkJRFJN X0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIEd1QyBjbGllbnQgZm9yIHByZWVtcHRpb24hXG4iKTsK PiArCQkJZ3VjX2NsaWVudF9mcmVlKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwo+ICsJCQlndWMtPmV4 ZWNidWZfY2xpZW50ID0gTlVMTDsKPiArCQkJcmV0dXJuIFBUUl9FUlIoY2xpZW50KTsKPiArCQl9 Cj4gKwkJZ3VjLT5wcmVlbXB0X2NsaWVudCA9IGNsaWVudDsKPiAgCX0KPiAtCWd1Yy0+cHJlZW1w dF9jbGllbnQgPSBjbGllbnQ7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwo+IGluZGV4IDUzOTA4OTQwMDFmMC4uMjIxYjYyZDcyYzcyIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtMTYxLDcgKzE2MSw2IEBACj4gICNkZWZpbmUgRVhF Q0xJU1RTX1JFUVVFU1RfU0laRSA2NCAvKiBieXRlcyAqLwo+ICAjZGVmaW5lIFdBX1RBSUxfRFdP UkRTIDIKPiAgI2RlZmluZSBXQV9UQUlMX0JZVEVTIChzaXplb2YodTMyKSAqIFdBX1RBSUxfRFdP UkRTKQo+IC0jZGVmaW5lIFBSRUVNUFRfSUQgMHgxCj4gIAo+ICBzdGF0aWMgaW50IGV4ZWNsaXN0 c19jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4g IAkJCQkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gQEAgLTQ0OCw3ICs0 NDcsOCBAQCBzdGF0aWMgdm9pZCBpbmplY3RfcHJlZW1wdF9jb250ZXh0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiAgCQkmZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQtPmVu Z2luZVtlbmdpbmUtPmlkXTsKPiAgCXVuc2lnbmVkIGludCBuOwo+ICAKPiAtCUdFTV9CVUdfT04o ZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQtPmh3X2lkICE9IFBSRUVNUFRfSUQpOwo+ICsJ R0VNX0JVR19PTihlbmdpbmUtPmV4ZWNsaXN0cy5wcmVlbXB0X2NvbXBsZXRlX3N0YXR1cyAhPQo+ ICsJCSAgIHVwcGVyXzMyX2JpdHMoY2UtPmxyY19kZXNjKSk7Cj4gIAlHRU1fQlVHX09OKCFJU19B TElHTkVEKGNlLT5yaW5nLT5zaXplLCBXQV9UQUlMX0JZVEVTKSk7Cj4gIAo+ICAJbWVtc2V0KGNl LT5yaW5nLT52YWRkciArIGNlLT5yaW5nLT50YWlsLCAwLCBXQV9UQUlMX0JZVEVTKTsKPiBAQCAt NTI4LDcgKzUyOCw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQlpZiAoIWV4ZWNsaXN0c19pc19hY3RpdmUoZXhlY2xp c3RzLCBFWEVDTElTVFNfQUNUSVZFX0hXQUNLKSkKPiAgCQkJZ290byB1bmxvY2s7Cj4gIAo+IC0J CWlmIChIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oZW5naW5lLT5pOTE1KSAmJgo+ICsJCWlm IChlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCAmJgo+ICAJCSAgICByYl9lbnRyeShyYiwg c3RydWN0IGk5MTVfcHJpb2xpc3QsIG5vZGUpLT5wcmlvcml0eSA+Cj4gIAkJICAgIG1heChsYXN0 LT5wcmlvdHJlZS5wcmlvcml0eSwgMCkpIHsKPiAgCQkJLyoKPiBAQCAtODQ0LDcgKzg0NCw3IEBA IHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBk YXRhKQo+ICAJCQlHRU1fQlVHX09OKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19JRExFX0FDVElW RSk7Cj4gIAo+ICAJCQlpZiAoc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0NPTVBMRVRFICYmCj4g LQkJCSAgICBidWZbMipoZWFkICsgMV0gPT0gUFJFRU1QVF9JRCkgewo+ICsJCQkgICAgYnVmWzIq aGVhZCArIDFdID09IGV4ZWNsaXN0cy0+cHJlZW1wdF9jb21wbGV0ZV9zdGF0dXMpIHsKPiAgCQkJ CUdFTV9UUkFDRSgiJXMgcHJlZW1wdC1pZGxlXG4iLCBlbmdpbmUtPm5hbWUpOwo+ICAKPiAgCQkJ CWV4ZWNsaXN0c19jYW5jZWxfcG9ydF9yZXF1ZXN0cyhleGVjbGlzdHMpOwo+IEBAIC0xOTEwLDcg KzE5MTAsNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc2V0X2RlZmF1bHRfc3VibWlzc2lvbihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAllbmdpbmUtPmk5MTUtPmNhcHMuc2No ZWR1bGVyID0KPiAgCQlJOTE1X1NDSEVEVUxFUl9DQVBfRU5BQkxFRCB8Cj4gIAkJSTkxNV9TQ0hF RFVMRVJfQ0FQX1BSSU9SSVRZOwo+IC0JaWYgKEhBU19MT0dJQ0FMX1JJTkdfUFJFRU1QVElPTihl bmdpbmUtPmk5MTUpKQo+ICsJaWYgKGVuZ2luZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0KQo+ICAJ CWVuZ2luZS0+aTkxNS0+Y2Fwcy5zY2hlZHVsZXIgfD0gSTkxNV9TQ0hFRFVMRVJfQ0FQX1BSRUVN UFRJT047Cj4gIH0KPiAgCj4gQEAgLTE5ODgsNiArMTk4OCwxMSBAQCBzdGF0aWMgaW50IGxvZ2lj YWxfcmluZ19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCWVuZ2luZS0+ ZXhlY2xpc3RzLmVsc3AgPQo+ICAJCWVuZ2luZS0+aTkxNS0+cmVncyArIGk5MTVfbW1pb19yZWdf b2Zmc2V0KFJJTkdfRUxTUChlbmdpbmUpKTsKPiAgCj4gKwllbmdpbmUtPmV4ZWNsaXN0cy5wcmVl bXB0X2NvbXBsZXRlX3N0YXR1cyA9IH4wdTsKClRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgd2UgY2F0 Y2ggYSByb2d1ZSBzdGF0dXM/IEF0bGVhc3Qgd2Ugd2lsbApidWcgb24gb2YgcHJlZW1wdGluZyB3 aXRoIHRoaXMgc3RhdHVzIGFzIHRoZSBFWEVDTElTVF9BQ1RJVkVfUFJFRU1QVAp3aWxsIGJlIGZh bHNlLgoKPiArCWlmIChlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCkKPiArCQllbmdpbmUt PmV4ZWNsaXN0cy5wcmVlbXB0X2NvbXBsZXRlX3N0YXR1cyA9Cj4gKwkJCXVwcGVyXzMyX2JpdHMo ZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQtPmVuZ2luZVtlbmdpbmUtPmlkXS5scmNfZGVz Yyk7CgoKV2UgaGF2ZSBub3QgdXBncmFkZWQgdGhlIGRlc2NyaXB0b3IgeWV0LCBzbyBqdXN0IHVz ZSBwcmVlbXB0X2NvbnRleHQtPmh3X2lkOwoKSSB3b3VsZCBhbHNvIGxpa2UgZHVwbGljYXRlLCBm cm9tIGk5MTVfZ2VtX2NvbnRleHQuYywgdGhlIGFzc2VydGlvbiB0aGF0Cmh3X2lkIG5lZWRzIHRv IGJlIDw9IElOVF9NQVggYnV0IGRpZG4ndCBmaW5kIGEgZ29vZCBzcG90LgoKLU1pa2EKCj4gKwo+ ICAJcmV0dXJuIDA7Cj4gIAo+ICBlcnJvcjoKPiBAQCAtMjI1MCw3ICsyMjU1LDcgQEAgcG9wdWxh dGVfbHJfY29udGV4dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICAJaWYgKCFlbmdp bmUtPmRlZmF1bHRfc3RhdGUpCj4gIAkJcmVnc1tDVFhfQ09OVEVYVF9DT05UUk9MICsgMV0gfD0K PiAgCQkJX01BU0tFRF9CSVRfRU5BQkxFKENUWF9DVFJMX0VOR0lORV9DVFhfUkVTVE9SRV9JTkhJ QklUKTsKPiAtCWlmIChjdHgtPmh3X2lkID09IFBSRUVNUFRfSUQpCj4gKwlpZiAoY3R4ID09IGN0 eC0+aTkxNS0+cHJlZW1wdF9jb250ZXh0KQo+ICAJCXJlZ3NbQ1RYX0NPTlRFWFRfQ09OVFJPTCAr IDFdIHw9Cj4gIAkJCV9NQVNLRURfQklUX0VOQUJMRShDVFhfQ1RSTF9FTkdJTkVfQ1RYX1JFU1RP UkVfSU5ISUJJVCB8Cj4gIAkJCQkJICAgQ1RYX0NUUkxfRU5HSU5FX0NUWF9TQVZFX0lOSElCSVQp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCBjNWZmMjAz ZTQyZDYuLjAzYmU4OTk1ZjQxNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmgKPiBAQCAtMjc5LDYgKzI3OSwxMSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNs aXN0cyB7Cj4gIAkgKiBAY3NiX3VzZV9tbWlvOiBhY2Nlc3MgY3NiIHRocm91Z2ggbW1pbywgaW5z dGVhZCBvZiBod3NwCj4gIAkgKi8KPiAgCWJvb2wgY3NiX3VzZV9tbWlvOwo+ICsKPiArCS8qKgo+ ICsJICogQHByZWVtcHRfY29tcGxldGVfc3RhdHVzOiBleHBlY3RlZCBDU0IgdXBvbiBjb21wbGV0 aW5nIHByZWVtcHRpb24KPiArCSAqLwo+ICsJdTMyIHByZWVtcHRfY29tcGxldGVfc3RhdHVzOwo+ ICB9Owo+ICAKPiAgI2RlZmluZSBJTlRFTF9FTkdJTkVfQ1NfTUFYX05BTUUgOAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKPiBpbmRleCAx YmM2MWYzZjc2ZmMuLjMxNzVkYjcwY2M2ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKPiBAQCAtMjQzLDE2ICsyNDMsMTAgQEAg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKm1vY2tfZ2VtX2RldmljZSh2b2lkKQo+ICAJaWYgKCFp OTE1LT5rZXJuZWxfY29udGV4dCkKPiAgCQlnb3RvIGVycl9lbmdpbmU7Cj4gIAo+IC0JaTkxNS0+ cHJlZW1wdF9jb250ZXh0ID0gbW9ja19jb250ZXh0KGk5MTUsIE5VTEwpOwo+IC0JaWYgKCFpOTE1 LT5wcmVlbXB0X2NvbnRleHQpCj4gLQkJZ290byBlcnJfa2VybmVsX2NvbnRleHQ7Cj4gLQo+ICAJ V0FSTl9PTihpOTE1X2dlbWZzX2luaXQoaTkxNSkpOwo+ICAKPiAgCXJldHVybiBpOTE1Owo+ICAK PiAtZXJyX2tlcm5lbF9jb250ZXh0Ogo+IC0JaTkxNV9nZW1fY29udGV4dF9wdXQoaTkxNS0+a2Vy bmVsX2NvbnRleHQpOwo+ICBlcnJfZW5naW5lOgo+ICAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg aTkxNSwgaWQpCj4gIAkJbW9ja19lbmdpbmVfZnJlZShlbmdpbmUpOwo+IC0tIAo+IDIuMTUuMQo+ Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=