From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC 2/3] drm/i915: Prefer IS_GEN check with bitmask. Date: Thu, 25 Oct 2018 13:59:03 +0300 Message-ID: <20181025105903.GI9144@intel.com> References: <20181023233620.10159-1-rodrigo.vivi@intel.com> <20181023233620.10159-2-rodrigo.vivi@intel.com> <20181024102257.GZ9144@intel.com> <20181024234106.GK3942@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id A38286E2A7 for ; Thu, 25 Oct 2018 10:59:06 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181024234106.GK3942@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: Julia Lawall , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjQsIDIwMTggYXQgMDQ6NDE6MDZQTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIFdlZCwgT2N0IDI0LCAyMDE4IGF0IDAxOjIyOjU3UE0gKzAzMDAsIFZpbGxlIFN5 cmrDpGzDpCB3cm90ZToKPiA+IE9uIFR1ZSwgT2N0IDIzLCAyMDE4IGF0IDA0OjM2OjE5UE0gLTA3 MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPiA+ID4gV2hlbmV2ZXIgcG9zc2libGUgd2Ugc2hvdWxk IHN0aWNrIHdpdGggSVNfR0VOPG4+IGNoZWNrcy4KPiA+ID4gCj4gPiA+IEJpdG1ha3MgaGFzIGJl ZW4gaW50cm9kdWNlZCBvbiBjb21taXQgYWU3NjE3ZjBlZjE4ICgiZHJtL2k5MTU6Cj4gPiA+IEFs bG93IG9wdGltaXplZCBwbGF0Zm9ybSBjaGVja3MiKSBmb3IgZWZmaWNpZW5jeS4KPiA+ID4gCj4g PiA+IExldCdzIHN0aWNrIHdpdGggaXQgd2hlbmV2ZXIgcG9zc2libGUuCj4gPiA+IAo+ID4gPiBU aGlzIHBhdGNoIHdhcyBnZW5lcmF0ZWQgd2l0aCBjb2NjaW5lbGxlOgo+ID4gPiAKPiA+ID4gc3Bh dGNoIC1zcF9maWxlIGlzX2dlbi5jb2NjaSAqe2MsaH0gLS1pbi1wbGFjZQo+ID4gPiAKPiA+ID4g aXNfZ2VuLmNvY2NpOgo+ID4gPiBAZ2VuMkAgZXhwcmVzc2lvbiBlOyBAQAo+ID4gPiAtSU5URUxf R0VOKGUpID09IDIKPiA+ID4gK0lTX0dFTjIoZSkKPiA+ID4gQGdlbjNAIGV4cHJlc3Npb24gZTsg QEAKPiA+ID4gLUlOVEVMX0dFTihlKSA9PSAzCj4gPiA+ICtJU19HRU4zKGUpCj4gPiA+IEBnZW40 QCBleHByZXNzaW9uIGU7IEBACj4gPiA+IC1JTlRFTF9HRU4oZSkgPT0gNAo+ID4gPiArSVNfR0VO NChlKQo+ID4gPiBAZ2VuNUAgZXhwcmVzc2lvbiBlOyBAQAo+ID4gPiAtSU5URUxfR0VOKGUpID09 IDUKPiA+ID4gK0lTX0dFTjUoZSkKPiA+ID4gQGdlbjZAIGV4cHJlc3Npb24gZTsgQEAKPiA+ID4g LUlOVEVMX0dFTihlKSA9PSA2Cj4gPiA+ICtJU19HRU42KGUpCj4gPiA+IEBnZW43QCBleHByZXNz aW9uIGU7IEBACj4gPiA+IC1JTlRFTF9HRU4oZSkgPT0gNwo+ID4gPiArSVNfR0VONyhlKQo+ID4g PiBAZ2VuOEAgZXhwcmVzc2lvbiBlOyBAQAo+ID4gPiAtSU5URUxfR0VOKGUpID09IDgKPiA+ID4g K0lTX0dFTjgoZSkKPiA+ID4gQGdlbjlAIGV4cHJlc3Npb24gZTsgQEAKPiA+ID4gLUlOVEVMX0dF TihlKSA9PSA5Cj4gPiA+ICtJU19HRU45KGUpCj4gPiA+IEBnZW4xMEAgZXhwcmVzc2lvbiBlOyBA QAo+ID4gPiAtSU5URUxfR0VOKGUpID09IDEwCj4gPiA+ICtJU19HRU4xMChlKQo+ID4gPiBAZ2Vu MTFAIGV4cHJlc3Npb24gZTsgQEAKPiA+ID4gLUlOVEVMX0dFTihlKSA9PSAxMQo+ID4gPiArSVNf R0VOMTEoZSkKPiA+IAo+ID4gU2xpZ2h0bHkgbGVzcyByZXBldGl0aXZlIHZlcnNpb24uCj4gCj4g VGhhbmtzLiBJJ20gc3VwcGVyIG5ld2JpZSBvbiBjb2NjaW5lbGxlIGFuZCBpdCB3YXMKPiBlYXNp ZXIgdG8gZHVwbGljYXRlIHRoZW4gdHJ5aW5nIHRvIGxlYXJuIGFsbCB0aGlzIG5ldyBsYW5nLgo+ IAo+IEJ1dCBJIHJlYWxseSBhcHByZWNpYXRlIHlvdSBzaGFyaW5nIHRoaXMuIEknZCBsaWtlCj4g dG8gZ28gd2l0aCB0aGlzIHNvIHRoZSBiZXR0ZXIgcnVsZSBrZWVwcyBvbiBjb21taXQgbWVzc2Fn ZS4KPiAKPiA+IFNhZGx5IG5vdCBzdXBlciBuZWF0IG9uCj4gPiBhY2NvdW50IG9mIGhhdmluZyB0 byB1c2UgdGhlIHB5dGhvbiBzdHVmZi4KPiAKPiBob3dldmVyIGl0IHNlZW1zIHB5dGhvbiB2ZXJz aW9uIGRpZG4ndCB3b3JrIHNvIHdlbGwgaGVyZToKPiAKPiBpbml0X2RlZnNfYnVpbHRpbnM6IC91 c3IvbGliNjQvY29jY2luZWxsZS9zdGFuZGFyZC5oCj4gUHl0aG9uIGVycm9yOiBObyBtb2R1bGUg bmFtZWQgY29jY2lsaWIuZWxlbXMKPiAKPiBkbyB5b3UgaGF2ZSBhbnkgaWRlYSBhYm91dCBpdD8K Ck5ldmVyIHNlZW4gaXQuIE9uIGdlbnRvbyBpdCBqdXN0IHdvcmtzIHdoZW4gSSBoYXZlIHRoZSBw eXRob24KdXNlIGZsYWcgZW5hYmxlZC4KCk1heWJlIHlvdXIgZGlzdHJvIGRvZXNuJ3QgaW5jbHVk ZSB0aGUgcHl0aG9uIHN1cHBvcnQgaW4gdGhlCmJ1aWxkLCBvciBtYXliZSBzb21lIGtpbmQgb2Yg cHl0aG9uIHZlcnNpb24gaXNzdWU/IAoKPiAKPiBJIGNvdWxkbid0IGZpbmQgYW55dGhpbmcgb24g Z29vZ2xlIG9yIG9uIHBpcCByZXBvc2l0b3JpZXMKPiBmb3IgdGhhdC4KPiAKPiBUaGFua3MsCj4g Um9kcmlnby4KPiAKPiA+IAo+ID4gQGZpbmRACj4gPiBpZGVudGlmaWVyIG9sZCA9fiAiXklOVEVM X0dFTiQiOwo+ID4gZXhwcmVzc2lvbiBleHA7Cj4gPiBjb25zdGFudCBnZW47Cj4gPiBAQAo+ID4g b2xkKGV4cCkgPT0gZ2VuCj4gPiAKPiA+IEBzY3JpcHQ6cHl0aG9uIHJlbmFtZUAKPiA+IG9sZCA8 PCBmaW5kLm9sZDsKPiA+IGdlbiA8PCBmaW5kLmdlbjsKPiA+IG5ldzsKPiA+IEBACj4gPiBkZWYg ZG9fcmVuYW1lKG9sZCwgZ2VuKToKPiA+ICAgICByZXR1cm4gIklTX0dFTiIgKyBnZW4KPiA+IGNv Y2NpbmVsbGUubmV3ID0gY29jY2kubWFrZV9pZGVudChkb19yZW5hbWUob2xkLCBnZW4pKQo+ID4g cHJpbnQgY29jY2luZWxsZS5uZXcKPiA+IAo+ID4gQEAKPiA+IGlkZW50aWZpZXIgZmluZC5vbGQ7 Cj4gPiBleHByZXNzaW9uIGZpbmQuZXhwOwo+ID4gY29uc3RhbnQgZmluZC5nZW47Cj4gPiBpZGVu dGlmaWVyIHJlbmFtZS5uZXc7Cj4gPiBAQAo+ID4gLSBvbGQoZXhwKSA9PSBnZW4KPiA+ICsgbmV3 KGV4cCkKPiA+IAo+ID4gCj4gPiBJIHdpc2ggaXQgd291bGQgbG9vayBzb21ldGhpbmcgbW9yZSBs aWtlIHRoaXM6Cj4gPiAKPiA+IEBACj4gPiBpZGVudGlmaWVyIG9sZAk9fiAiXklOVEVMX0dFTiQi Owo+ID4gZXhwcmVzc2lvbiBleHA7Cj4gPiBjb25zdGFudCBnZW47Cj4gPiBmcmVzaCBpZGVudGlm aWVyIG5ldyA9ICJJU19HRU4iICMjIGdlbjsKPiA+IEBACj4gPiAtIG9sZChleHApID09IGdlbgo+ ID4gKyBuZXcoZXhwKQo+ID4gCj4gPiBCdXQgY29jY2luZWxsZSBkb2Vzbid0IHNlZW0gdG8gYWNj ZXB0IHRoZSBjb25zdGFudCBpbiB0aGUgZnJlc2gKPiA+IGlkZW50aWZpZXIgdGhpbmcuCj4gPiAK PiA+IAo+ID4gUGF0Y2ggbG9va3MgZmluZSBhbnl3YXlzCj4gPiBSZXZpZXdlZC1ieTogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IAo+ID4gPiAKPiA+ ID4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gPiA+IFNp Z25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiA+ID4g LS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgIHwgMiAr LQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgICAgICB8IDIgKy0K PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgfCA2ICsrKy0t LQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICB8IDIgKy0K PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgICAgfCAyICstCj4g PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgIHwgMiArLQo+ID4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgICAgICAgICB8IDIgKy0KPiA+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgfCA0ICsrLS0KPiA+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jICAgICAgICAgfCAyICstCj4gPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggIHwgNCArKy0tCj4gPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgICAgIHwgMiArLQo+ID4gPiAgMTEg ZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4gPiA+IAo+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ID4gaW5kZXggYmFhYzM1ZjY5OGY5Li5kNzU1 ZTg0ZmVkMDcgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ID4gPiBAQCAt MTMyOSw3ICsxMzI5LDcgQEAgaW50ZWxfZ2V0X2RyYW1faW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gPiA+ICAJLyogTmVlZCB0byBjYWxjdWxhdGUgYmFuZHdpZHRoIG9u bHkgZm9yIEdlbjkgKi8KPiA+ID4gIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gPiA+ICAJ CXJldCA9IGJ4dF9nZXRfZHJhbV9pbmZvKGRldl9wcml2KTsKPiA+ID4gLQllbHNlIGlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID09IDkpCj4gPiA+ICsJZWxzZSBpZiAoSVNfR0VOOShkZXZfcHJpdikp Cj4gPiA+ICAJCXJldCA9IHNrbF9nZXRfZHJhbV9pbmZvKGRldl9wcml2KTsKPiA+ID4gIAllbHNl Cj4gPiA+ICAJCXJldCA9IHNrbF9kcmFtX2dldF9jaGFubmVsc19pbmZvKGRldl9wcml2KTsKPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiA+ID4gaW5kZXggNzYwNzU4YWQyMWMx Li4zNTI2ZjZkOWMxYWQgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F0b21pYy5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21p Yy5jCj4gPiA+IEBAIC0yMzIsNyArMjMyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX3Nl dHVwX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGEKPiA+ ID4gIAlpZiAocGxhbmVfc3RhdGUgJiYgcGxhbmVfc3RhdGUtPmJhc2UuZmIgJiYKPiA+ID4gIAkg ICAgcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+aXNfeXV2ICYmCj4gPiA+ICAJICAgIHBs YW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPm51bV9wbGFuZXMgPiAxKSB7Cj4gPiA+IC0JCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDkgJiYKPiA+ID4gKwkJaWYgKElTX0dFTjkoZGV2X3By aXYpICYmCj4gPiA+ICAJCSAgICAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gPiA+ICAJCQlt b2RlID0gU0tMX1BTX1NDQUxFUl9NT0RFX05WMTI7Cj4gPiA+ICAJCWVsc2UKPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCj4gPiA+IGluZGV4IDAzZGY0ZTMzNzYz ZC4uNTYxYWQwZDRhNTNkIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZXZpY2VfaW5mby5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RldmljZV9pbmZvLmMKPiA+ID4gQEAgLTc0NCw3ICs3NDQsNyBAQCB2b2lkIGludGVsX2Rldmlj ZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8pCj4gPiA+ ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTApIHsKPiA+ID4gIAkJZm9yX2VhY2hfcGlw ZShkZXZfcHJpdiwgcGlwZSkKPiA+ID4gIAkJCWluZm8tPm51bV9zY2FsZXJzW3BpcGVdID0gMjsK PiA+ID4gLQl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPT0gOSkgewo+ID4gPiArCX0g ZWxzZSBpZiAoSVNfR0VOOShkZXZfcHJpdikpIHsKPiA+ID4gIAkJaW5mby0+bnVtX3NjYWxlcnNb UElQRV9BXSA9IDI7Cj4gPiA+ICAJCWluZm8tPm51bV9zY2FsZXJzW1BJUEVfQl0gPSAyOwo+ID4g PiAgCQlpbmZvLT5udW1fc2NhbGVyc1tQSVBFX0NdID0gMTsKPiA+ID4gQEAgLTg0Myw5ICs4NDMs OSBAQCB2b2lkIGludGVsX2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3QgaW50ZWxfZGV2 aWNlX2luZm8gKmluZm8pCj4gPiA+ICAJCWNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQoZGV2X3By aXYpOwo+ID4gPiAgCWVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gPiA+ICAJCWJy b2Fkd2VsbF9zc2V1X2luZm9faW5pdChkZXZfcHJpdik7Cj4gPiA+IC0JZWxzZSBpZiAoSU5URUxf R0VOKGRldl9wcml2KSA9PSA5KQo+ID4gPiArCWVsc2UgaWYgKElTX0dFTjkoZGV2X3ByaXYpKQo+ ID4gPiAgCQlnZW45X3NzZXVfaW5mb19pbml0KGRldl9wcml2KTsKPiA+ID4gLQllbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID09IDEwKQo+ID4gPiArCWVsc2UgaWYgKElTX0dFTjEwKGRldl9w cml2KSkKPiA+ID4gIAkJZ2VuMTBfc3NldV9pbmZvX2luaXQoZGV2X3ByaXYpOwo+ID4gPiAgCWVs c2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gPiA+ICAJCWdlbjExX3NzZXVfaW5m b19pbml0KGRldl9wcml2KTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gPiBpbmRleCBmYzdlM2IwYmQ5NWMuLmE2ODY5YzU0N2YzYyAxMDA2NDQKPiA+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBAQCAtNTI2OCw3ICs1MjY4LDcgQEAg c3RhdGljIGJvb2wgbmVlZHNfbnYxMl93YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiA+ICAJaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0JST1hUT04oZGV2X3By aXYpKQo+ID4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICAKPiA+ID4gLQlpZiAoKElOVEVMX0dF TihkZXZfcHJpdikgPT0gOSAmJiAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHx8Cj4gPiA+ICsJ aWYgKChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHx8Cj4g PiA+ICAJICAgIElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQo+ID4gPiAgCQlyZXR1cm4gdHJ1ZTsK PiA+ID4gIAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gaW5kZXggOGMzOGVmZWY3 N2ExLi43NjE0NDdjNDU2YzcgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ID4gPiBAQCAtNDU1LDcgKzQ1NSw3IEBAIGludGVsX2RwX3NldF9zb3VyY2VfcmF0ZXMoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAx MCkgewo+ID4gPiAgCQlzb3VyY2VfcmF0ZXMgPSBjbmxfcmF0ZXM7Cj4gPiA+ICAJCXNpemUgPSBB UlJBWV9TSVpFKGNubF9yYXRlcyk7Cj4gPiA+IC0JCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09 IDEwKQo+ID4gPiArCQlpZiAoSVNfR0VOMTAoZGV2X3ByaXYpKQo+ID4gPiAgCQkJbWF4X3JhdGUg PSBjbmxfbWF4X3NvdXJjZV9yYXRlKGludGVsX2RwKTsKPiA+ID4gIAkJZWxzZQo+ID4gPiAgCQkJ bWF4X3JhdGUgPSBpY2xfbWF4X3NvdXJjZV9yYXRlKGludGVsX2RwKTsKPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiA+ID4gaW5kZXggNjVmNmM5YmMxMGNmLi5hNGIx ZDgyYzg5ZGEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Vu Z2luZV9jcy5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jCj4gPiA+IEBAIC04MTIsNyArODEyLDcgQEAgdTMyIGludGVsX2NhbGN1bGF0ZV9tY3Jfc19z c19zZWxlY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gPiAgCXUzMiBz bGljZSA9IGZscyhzc2V1LT5zbGljZV9tYXNrKTsKPiA+ID4gIAl1MzIgc3Vic2xpY2UgPSBmbHMo c3NldS0+c3Vic2xpY2VfbWFza1tzbGljZV0pOwo+ID4gPiAgCj4gPiA+IC0JaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPT0gMTApCj4gPiA+ICsJaWYgKElTX0dFTjEwKGRldl9wcml2KSkKPiA+ID4g IAkJbWNyX3Nfc3Nfc2VsZWN0ID0gR0VOOF9NQ1JfU0xJQ0Uoc2xpY2UpIHwKPiA+ID4gIAkJCQkg IEdFTjhfTUNSX1NVQlNMSUNFKHN1YnNsaWNlKTsKPiA+ID4gIAllbHNlIGlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDExKQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiBpbmRl eCBjOTA5NTRjZGZiMTUuLjk2ZjcwZDg5NmMxMCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJjLmMKPiA+ID4gQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIGludCBpbnRlbF9mYmNf Y2FsY3VsYXRlX2NmYl9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ ID4gIAlpbnQgbGluZXM7Cj4gPiA+ICAKPiA+ID4gIAlpbnRlbF9mYmNfZ2V0X3BsYW5lX3NvdXJj ZV9zaXplKGNhY2hlLCBOVUxMLCAmbGluZXMpOwo+ID4gPiAtCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID09IDcpCj4gPiA+ICsJaWYgKElTX0dFTjcoZGV2X3ByaXYpKQo+ID4gPiAgCQlsaW5lcyA9 IG1pbihsaW5lcywgMjA0OCk7Cj4gPiA+ICAJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA4KQo+ID4gPiAgCQlsaW5lcyA9IG1pbihsaW5lcywgMjU2MCk7Cj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYwo+ID4gPiBpbmRleCA2N2E0ZDA3MzUyOTEuLjM3OTM4NjZhOWVlNyAxMDA2NDQK PiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gPiA+IEBAIC00Njc2LDEzICs0Njc2LDEz IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCQkJc2VsZWN0ZWRfcmVzdWx0ID0gbWV0aG9kMjsK PiA+ID4gIAkJfSBlbHNlIGlmIChkZGJfYWxsb2NhdGlvbiA+PQo+ID4gPiAgCQkJIGZpeGVkMTZf dG9fdTMyX3JvdW5kX3VwKHdwLT5wbGFuZV9ibG9ja3NfcGVyX2xpbmUpKSB7Cj4gPiA+IC0JCQlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA9PSA5ICYmCj4gPiA+ICsJCQlpZiAoSVNfR0VOOShkZXZf cHJpdikgJiYKPiA+ID4gIAkJCSAgICAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gPiA+ICAJ CQkJc2VsZWN0ZWRfcmVzdWx0ID0gbWluX2ZpeGVkMTYobWV0aG9kMSwgbWV0aG9kMik7Cj4gPiA+ ICAJCQllbHNlCj4gPiA+ICAJCQkJc2VsZWN0ZWRfcmVzdWx0ID0gbWV0aG9kMjsKPiA+ID4gIAkJ fSBlbHNlIGlmIChsYXRlbmN5ID49IHdwLT5saW5ldGltZV91cykgewo+ID4gPiAtCQkJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPT0gOSAmJgo+ID4gPiArCQkJaWYgKElTX0dFTjkoZGV2X3ByaXYp ICYmCj4gPiA+ICAJCQkgICAgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ID4gPiAgCQkJCXNl bGVjdGVkX3Jlc3VsdCA9IG1pbl9maXhlZDE2KG1ldGhvZDEsIG1ldGhvZDIpOwo+ID4gPiAgCQkJ ZWxzZQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ID4gPiBpbmRleCA0MjNjZGY4NDA1 OWMuLmJjMmQ4ODMxM2VkMCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcHNyLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMK PiA+ID4gQEAgLTU3NCw3ICs1NzQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX3Nv dXJjZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiAgCWlmIChkZXZfcHJpdi0+cHNy LnBzcjJfZW5hYmxlZCkgewo+ID4gPiAgCQl1MzIgY2hpY2tlbiA9IEk5MTVfUkVBRChDSElDS0VO X1RSQU5TKGNwdV90cmFuc2NvZGVyKSk7Cj4gPiA+ICAKPiA+ID4gLQkJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPT0gOSAmJiAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gPiA+ICsJCWlmIChJ U19HRU45KGRldl9wcml2KSAmJiAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gPiA+ICAJCQlj aGlja2VuIHw9IChQU1IyX1ZTQ19FTkFCTEVfUFJPR19IRUFERVIKPiA+ID4gIAkJCQkgICB8IFBT UjJfQUREX1ZFUlRJQ0FMX0xJTkVfQ09VTlQpOwo+ID4gPiAgCj4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiA+ID4gaW5kZXggZjZlYzQ4YTc1YTY5Li5kM2EwOGQw ZjAyZmUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmgKPiA+ID4gQEAgLTkzLDExICs5MywxMSBAQCBoYW5nY2hlY2tfYWN0aW9uX3RvX3N0cihjb25z dCBlbnVtIGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9uIGEpCj4gPiA+ICAjZGVmaW5lIEk5 MTVfTUFYX1NVQlNMSUNFUyA4Cj4gPiA+ICAKPiA+ID4gICNkZWZpbmUgaW5zdGRvbmVfc2xpY2Vf bWFzayhkZXZfcHJpdl9fKSBcCj4gPiA+IC0JKElOVEVMX0dFTihkZXZfcHJpdl9fKSA9PSA3ID8g XAo+ID4gPiArCShJU19HRU43KGRldl9wcml2X18pID8gXAo+ID4gPiAgCSAxIDogSU5URUxfSU5G TyhkZXZfcHJpdl9fKS0+c3NldS5zbGljZV9tYXNrKQo+ID4gPiAgCj4gPiA+ICAjZGVmaW5lIGlu c3Rkb25lX3N1YnNsaWNlX21hc2soZGV2X3ByaXZfXykgXAo+ID4gPiAtCShJTlRFTF9HRU4oZGV2 X3ByaXZfXykgPT0gNyA/IFwKPiA+ID4gKwkoSVNfR0VONyhkZXZfcHJpdl9fKSA/IFwKPiA+ID4g IAkgMSA6IElOVEVMX0lORk8oZGV2X3ByaXZfXyktPnNzZXUuc3Vic2xpY2VfbWFza1swXSkKPiA+ ID4gIAo+ID4gPiAgI2RlZmluZSBmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZf cHJpdl9fLCBzbGljZV9fLCBzdWJzbGljZV9fKSBcCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jCj4gPiA+IGluZGV4IDdjZDU5ZWVlNWNhZC4uNGM5ZjBiNzEzOGIzIDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gPiBAQCAtMTc5OCw3ICsx Nzk4LDcgQEAgc3RhdGljIGJvb2wgc2tsX3BsYW5lX2hhc19wbGFuYXIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJ U19CUk9YVE9OKGRldl9wcml2KSkKPiA+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gPiAgCj4gPiA+ IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPT0gOSAmJiAhSVNfR0VNSU5JTEFLRShkZXZfcHJp dikgJiYgcGlwZSA9PSBQSVBFX0MpCj4gPiA+ICsJaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJ U19HRU1JTklMQUtFKGRldl9wcml2KSAmJiBwaXBlID09IFBJUEVfQykKPiA+ID4gIAkJcmV0dXJu IGZhbHNlOwo+ID4gPiAgCj4gPiA+ICAJaWYgKHBsYW5lX2lkICE9IFBMQU5FX1BSSU1BUlkgJiYg cGxhbmVfaWQgIT0gUExBTkVfU1BSSVRFMCkKPiA+ID4gLS0gCj4gPiA+IDIuMTkuMQo+ID4gPiAK PiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cj4gPiAKPiA+IC0tIAo+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiBJbnRlbAoK LS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK