From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [RFC 2/3] drm/i915: Prefer IS_GEN check with bitmask. Date: Wed, 24 Oct 2018 16:41:06 -0700 Message-ID: <20181024234106.GK3942@intel.com> References: <20181023233620.10159-1-rodrigo.vivi@intel.com> <20181023233620.10159-2-rodrigo.vivi@intel.com> <20181024102257.GZ9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 674346E359 for ; Wed, 24 Oct 2018 23:41:08 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181024102257.GZ9144@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: Julia Lawall , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjQsIDIwMTggYXQgMDE6MjI6NTdQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgT2N0IDIzLCAyMDE4IGF0IDA0OjM2OjE5UE0gLTA3MDAsIFJvZHJp Z28gVml2aSB3cm90ZToKPiA+IFdoZW5ldmVyIHBvc3NpYmxlIHdlIHNob3VsZCBzdGljayB3aXRo IElTX0dFTjxuPiBjaGVja3MuCj4gPiAKPiA+IEJpdG1ha3MgaGFzIGJlZW4gaW50cm9kdWNlZCBv biBjb21taXQgYWU3NjE3ZjBlZjE4ICgiZHJtL2k5MTU6Cj4gPiBBbGxvdyBvcHRpbWl6ZWQgcGxh dGZvcm0gY2hlY2tzIikgZm9yIGVmZmljaWVuY3kuCj4gPiAKPiA+IExldCdzIHN0aWNrIHdpdGgg aXQgd2hlbmV2ZXIgcG9zc2libGUuCj4gPiAKPiA+IFRoaXMgcGF0Y2ggd2FzIGdlbmVyYXRlZCB3 aXRoIGNvY2NpbmVsbGU6Cj4gPiAKPiA+IHNwYXRjaCAtc3BfZmlsZSBpc19nZW4uY29jY2kgKntj LGh9IC0taW4tcGxhY2UKPiA+IAo+ID4gaXNfZ2VuLmNvY2NpOgo+ID4gQGdlbjJAIGV4cHJlc3Np b24gZTsgQEAKPiA+IC1JTlRFTF9HRU4oZSkgPT0gMgo+ID4gK0lTX0dFTjIoZSkKPiA+IEBnZW4z QCBleHByZXNzaW9uIGU7IEBACj4gPiAtSU5URUxfR0VOKGUpID09IDMKPiA+ICtJU19HRU4zKGUp Cj4gPiBAZ2VuNEAgZXhwcmVzc2lvbiBlOyBAQAo+ID4gLUlOVEVMX0dFTihlKSA9PSA0Cj4gPiAr SVNfR0VONChlKQo+ID4gQGdlbjVAIGV4cHJlc3Npb24gZTsgQEAKPiA+IC1JTlRFTF9HRU4oZSkg PT0gNQo+ID4gK0lTX0dFTjUoZSkKPiA+IEBnZW42QCBleHByZXNzaW9uIGU7IEBACj4gPiAtSU5U RUxfR0VOKGUpID09IDYKPiA+ICtJU19HRU42KGUpCj4gPiBAZ2VuN0AgZXhwcmVzc2lvbiBlOyBA QAo+ID4gLUlOVEVMX0dFTihlKSA9PSA3Cj4gPiArSVNfR0VONyhlKQo+ID4gQGdlbjhAIGV4cHJl c3Npb24gZTsgQEAKPiA+IC1JTlRFTF9HRU4oZSkgPT0gOAo+ID4gK0lTX0dFTjgoZSkKPiA+IEBn ZW45QCBleHByZXNzaW9uIGU7IEBACj4gPiAtSU5URUxfR0VOKGUpID09IDkKPiA+ICtJU19HRU45 KGUpCj4gPiBAZ2VuMTBAIGV4cHJlc3Npb24gZTsgQEAKPiA+IC1JTlRFTF9HRU4oZSkgPT0gMTAK PiA+ICtJU19HRU4xMChlKQo+ID4gQGdlbjExQCBleHByZXNzaW9uIGU7IEBACj4gPiAtSU5URUxf R0VOKGUpID09IDExCj4gPiArSVNfR0VOMTEoZSkKPiAKPiBTbGlnaHRseSBsZXNzIHJlcGV0aXRp dmUgdmVyc2lvbi4KClRoYW5rcy4gSSdtIHN1cHBlciBuZXdiaWUgb24gY29jY2luZWxsZSBhbmQg aXQgd2FzCmVhc2llciB0byBkdXBsaWNhdGUgdGhlbiB0cnlpbmcgdG8gbGVhcm4gYWxsIHRoaXMg bmV3IGxhbmcuCgpCdXQgSSByZWFsbHkgYXBwcmVjaWF0ZSB5b3Ugc2hhcmluZyB0aGlzLiBJJ2Qg bGlrZQp0byBnbyB3aXRoIHRoaXMgc28gdGhlIGJldHRlciBydWxlIGtlZXBzIG9uIGNvbW1pdCBt ZXNzYWdlLgoKPiBTYWRseSBub3Qgc3VwZXIgbmVhdCBvbgo+IGFjY291bnQgb2YgaGF2aW5nIHRv IHVzZSB0aGUgcHl0aG9uIHN0dWZmLgoKaG93ZXZlciBpdCBzZWVtcyBweXRob24gdmVyc2lvbiBk aWRuJ3Qgd29yayBzbyB3ZWxsIGhlcmU6Cgppbml0X2RlZnNfYnVpbHRpbnM6IC91c3IvbGliNjQv Y29jY2luZWxsZS9zdGFuZGFyZC5oClB5dGhvbiBlcnJvcjogTm8gbW9kdWxlIG5hbWVkIGNvY2Np bGliLmVsZW1zCgpkbyB5b3UgaGF2ZSBhbnkgaWRlYSBhYm91dCBpdD8KCkkgY291bGRuJ3QgZmlu ZCBhbnl0aGluZyBvbiBnb29nbGUgb3Igb24gcGlwIHJlcG9zaXRvcmllcwpmb3IgdGhhdC4KClRo YW5rcywKUm9kcmlnby4KCj4gCj4gQGZpbmRACj4gaWRlbnRpZmllciBvbGQgPX4gIl5JTlRFTF9H RU4kIjsKPiBleHByZXNzaW9uIGV4cDsKPiBjb25zdGFudCBnZW47Cj4gQEAKPiBvbGQoZXhwKSA9 PSBnZW4KPiAKPiBAc2NyaXB0OnB5dGhvbiByZW5hbWVACj4gb2xkIDw8IGZpbmQub2xkOwo+IGdl biA8PCBmaW5kLmdlbjsKPiBuZXc7Cj4gQEAKPiBkZWYgZG9fcmVuYW1lKG9sZCwgZ2VuKToKPiAg ICAgcmV0dXJuICJJU19HRU4iICsgZ2VuCj4gY29jY2luZWxsZS5uZXcgPSBjb2NjaS5tYWtlX2lk ZW50KGRvX3JlbmFtZShvbGQsIGdlbikpCj4gcHJpbnQgY29jY2luZWxsZS5uZXcKPiAKPiBAQAo+ IGlkZW50aWZpZXIgZmluZC5vbGQ7Cj4gZXhwcmVzc2lvbiBmaW5kLmV4cDsKPiBjb25zdGFudCBm aW5kLmdlbjsKPiBpZGVudGlmaWVyIHJlbmFtZS5uZXc7Cj4gQEAKPiAtIG9sZChleHApID09IGdl bgo+ICsgbmV3KGV4cCkKPiAKPiAKPiBJIHdpc2ggaXQgd291bGQgbG9vayBzb21ldGhpbmcgbW9y ZSBsaWtlIHRoaXM6Cj4gCj4gQEAKPiBpZGVudGlmaWVyIG9sZAk9fiAiXklOVEVMX0dFTiQiOwo+ IGV4cHJlc3Npb24gZXhwOwo+IGNvbnN0YW50IGdlbjsKPiBmcmVzaCBpZGVudGlmaWVyIG5ldyA9 ICJJU19HRU4iICMjIGdlbjsKPiBAQAo+IC0gb2xkKGV4cCkgPT0gZ2VuCj4gKyBuZXcoZXhwKQo+ IAo+IEJ1dCBjb2NjaW5lbGxlIGRvZXNuJ3Qgc2VlbSB0byBhY2NlcHQgdGhlIGNvbnN0YW50IGlu IHRoZSBmcmVzaAo+IGlkZW50aWZpZXIgdGhpbmcuCj4gCj4gCj4gUGF0Y2ggbG9va3MgZmluZSBh bnl3YXlzCj4gUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Cj4gCj4gPiAKPiA+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZp dmlAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMu YyAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZv LmMgfCA2ICsrKy0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAg ICAgfCAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICAgICB8 IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgIHwgMiAr LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jICAgICAgICAgfCAyICstCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICB8IDQgKystLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jICAgICAgICAgfCAyICstCj4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8IDQgKystLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICAgICAgfCAyICstCj4gPiAgMTEgZmlsZXMg Y2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYwo+ID4gaW5kZXggYmFhYzM1ZjY5OGY5Li5kNzU1ZTg0ZmVkMDcgMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gPiBAQCAtMTMyOSw3ICsxMzI5LDcgQEAg aW50ZWxfZ2V0X2RyYW1faW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g PiAgCS8qIE5lZWQgdG8gY2FsY3VsYXRlIGJhbmR3aWR0aCBvbmx5IGZvciBHZW45ICovCj4gPiAg CWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKPiA+ICAJCXJldCA9IGJ4dF9nZXRfZHJhbV9pbmZv KGRldl9wcml2KTsKPiA+IC0JZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA9PSA5KQo+ID4g KwllbHNlIGlmIChJU19HRU45KGRldl9wcml2KSkKPiA+ICAJCXJldCA9IHNrbF9nZXRfZHJhbV9p bmZvKGRldl9wcml2KTsKPiA+ICAJZWxzZQo+ID4gIAkJcmV0ID0gc2tsX2RyYW1fZ2V0X2NoYW5u ZWxzX2luZm8oZGV2X3ByaXYpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiA+ IGluZGV4IDc2MDc1OGFkMjFjMS4uMzUyNmY2ZDljMWFkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pYy5jCj4gPiBAQCAtMjMyLDcgKzIzMiw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2F0b21pY19zZXR1cF9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpz Y2FsZXJfc3RhCj4gPiAgCWlmIChwbGFuZV9zdGF0ZSAmJiBwbGFuZV9zdGF0ZS0+YmFzZS5mYiAm Jgo+ID4gIAkgICAgcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+aXNfeXV2ICYmCj4gPiAg CSAgICBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5udW1fcGxhbmVzID4gMSkgewo+ID4g LQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPT0gOSAmJgo+ID4gKwkJaWYgKElTX0dFTjkoZGV2 X3ByaXYpICYmCj4gPiAgCQkgICAgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ID4gIAkJCW1v ZGUgPSBTS0xfUFNfU0NBTEVSX01PREVfTlYxMjsKPiA+ICAJCWVsc2UKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwo+ID4gaW5kZXggMDNkZjRlMzM3NjNkLi41NjFh ZDBkNGE1M2QgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZp Y2VfaW5mby5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5m by5jCj4gPiBAQCAtNzQ0LDcgKzc0NCw3IEBAIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fcnVudGlt ZV9pbml0KHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbykKPiA+ICAJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gMTApIHsKPiA+ICAJCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUp Cj4gPiAgCQkJaW5mby0+bnVtX3NjYWxlcnNbcGlwZV0gPSAyOwo+ID4gLQl9IGVsc2UgaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPT0gOSkgewo+ID4gKwl9IGVsc2UgaWYgKElTX0dFTjkoZGV2X3By aXYpKSB7Cj4gPiAgCQlpbmZvLT5udW1fc2NhbGVyc1tQSVBFX0FdID0gMjsKPiA+ICAJCWluZm8t Pm51bV9zY2FsZXJzW1BJUEVfQl0gPSAyOwo+ID4gIAkJaW5mby0+bnVtX3NjYWxlcnNbUElQRV9D XSA9IDE7Cj4gPiBAQCAtODQzLDkgKzg0Myw5IEBAIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fcnVu dGltZV9pbml0KHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbykKPiA+ICAJCWNoZXJyeXZp ZXdfc3NldV9pbmZvX2luaXQoZGV2X3ByaXYpOwo+ID4gIAllbHNlIGlmIChJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKQo+ID4gIAkJYnJvYWR3ZWxsX3NzZXVfaW5mb19pbml0KGRldl9wcml2KTsKPiA+ IC0JZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA9PSA5KQo+ID4gKwllbHNlIGlmIChJU19H RU45KGRldl9wcml2KSkKPiA+ICAJCWdlbjlfc3NldV9pbmZvX2luaXQoZGV2X3ByaXYpOwo+ID4g LQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDEwKQo+ID4gKwllbHNlIGlmIChJU19H RU4xMChkZXZfcHJpdikpCj4gPiAgCQlnZW4xMF9zc2V1X2luZm9faW5pdChkZXZfcHJpdik7Cj4g PiAgCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gPiAgCQlnZW4xMV9zc2V1 X2luZm9faW5pdChkZXZfcHJpdik7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gPiBpbmRleCBmYzdlM2IwYmQ5NWMuLmE2ODY5YzU0N2YzYyAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtNTI2OCw3ICs1MjY4LDcgQEAgc3RhdGlj IGJvb2wgbmVlZHNfbnYxMl93YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g PiAgCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19CUk9YVE9OKGRldl9wcml2KSkKPiA+ ICAJCXJldHVybiBmYWxzZTsKPiA+ICAKPiA+IC0JaWYgKChJTlRFTF9HRU4oZGV2X3ByaXYpID09 IDkgJiYgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB8fAo+ID4gKwlpZiAoKElTX0dFTjkoZGV2 X3ByaXYpICYmICFJU19HRU1JTklMQUtFKGRldl9wcml2KSkgfHwKPiA+ICAJICAgIElTX0NBTk5P TkxBS0UoZGV2X3ByaXYpKQo+ID4gIAkJcmV0dXJuIHRydWU7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiA+IGluZGV4IDhjMzhlZmVmNzdhMS4uNzYxNDQ3YzQ1NmM3IDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTQ1NSw3ICs0NTUsNyBAQCBpbnRlbF9k cF9zZXRfc291cmNlX3JhdGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDEwKSB7Cj4gPiAgCQlzb3VyY2VfcmF0ZXMgPSBjbmxfcmF0 ZXM7Cj4gPiAgCQlzaXplID0gQVJSQVlfU0laRShjbmxfcmF0ZXMpOwo+ID4gLQkJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPT0gMTApCj4gPiArCQlpZiAoSVNfR0VOMTAoZGV2X3ByaXYpKQo+ID4g IAkJCW1heF9yYXRlID0gY25sX21heF9zb3VyY2VfcmF0ZShpbnRlbF9kcCk7Cj4gPiAgCQllbHNl Cj4gPiAgCQkJbWF4X3JhdGUgPSBpY2xfbWF4X3NvdXJjZV9yYXRlKGludGVsX2RwKTsKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gPiBpbmRleCA2NWY2YzliYzEwY2Yu LmE0YjFkODJjODlkYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf Y3MuYwo+ID4gQEAgLTgxMiw3ICs4MTIsNyBAQCB1MzIgaW50ZWxfY2FsY3VsYXRlX21jcl9zX3Nz X3NlbGVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgCXUzMiBzbGlj ZSA9IGZscyhzc2V1LT5zbGljZV9tYXNrKTsKPiA+ICAJdTMyIHN1YnNsaWNlID0gZmxzKHNzZXUt PnN1YnNsaWNlX21hc2tbc2xpY2VdKTsKPiA+ICAKPiA+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPT0gMTApCj4gPiArCWlmIChJU19HRU4xMChkZXZfcHJpdikpCj4gPiAgCQltY3Jfc19zc19z ZWxlY3QgPSBHRU44X01DUl9TTElDRShzbGljZSkgfAo+ID4gIAkJCQkgIEdFTjhfTUNSX1NVQlNM SUNFKHN1YnNsaWNlKTsKPiA+ICAJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4gPiBpbmRleCBjOTA5NTRjZGZiMTUuLjk2Zjcw ZDg5NmMxMCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gQEAgLTg0LDcg Kzg0LDcgQEAgc3RhdGljIGludCBpbnRlbF9mYmNfY2FsY3VsYXRlX2NmYl9zaXplKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJaW50IGxpbmVzOwo+ID4gIAo+ID4gIAlp bnRlbF9mYmNfZ2V0X3BsYW5lX3NvdXJjZV9zaXplKGNhY2hlLCBOVUxMLCAmbGluZXMpOwo+ID4g LQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA9PSA3KQo+ID4gKwlpZiAoSVNfR0VONyhkZXZfcHJp dikpCj4gPiAgCQlsaW5lcyA9IG1pbihsaW5lcywgMjA0OCk7Cj4gPiAgCWVsc2UgaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gOCkKPiA+ICAJCWxpbmVzID0gbWluKGxpbmVzLCAyNTYwKTsKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gaW5kZXggNjdhNGQwNzM1MjkxLi4zNzkzODY2YTll ZTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gPiBAQCAtNDY3NiwxMyArNDY3 NiwxMyBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCQlzZWxlY3RlZF9yZXN1bHQgPSBtZXRob2Qy Owo+ID4gIAkJfSBlbHNlIGlmIChkZGJfYWxsb2NhdGlvbiA+PQo+ID4gIAkJCSBmaXhlZDE2X3Rv X3UzMl9yb3VuZF91cCh3cC0+cGxhbmVfYmxvY2tzX3Blcl9saW5lKSkgewo+ID4gLQkJCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID09IDkgJiYKPiA+ICsJCQlpZiAoSVNfR0VOOShkZXZfcHJpdikg JiYKPiA+ICAJCQkgICAgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ID4gIAkJCQlzZWxlY3Rl ZF9yZXN1bHQgPSBtaW5fZml4ZWQxNihtZXRob2QxLCBtZXRob2QyKTsKPiA+ICAJCQllbHNlCj4g PiAgCQkJCXNlbGVjdGVkX3Jlc3VsdCA9IG1ldGhvZDI7Cj4gPiAgCQl9IGVsc2UgaWYgKGxhdGVu Y3kgPj0gd3AtPmxpbmV0aW1lX3VzKSB7Cj4gPiAtCQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg PT0gOSAmJgo+ID4gKwkJCWlmIChJU19HRU45KGRldl9wcml2KSAmJgo+ID4gIAkJCSAgICAhSVNf R0VNSU5JTEFLRShkZXZfcHJpdikpCj4gPiAgCQkJCXNlbGVjdGVkX3Jlc3VsdCA9IG1pbl9maXhl ZDE2KG1ldGhvZDEsIG1ldGhvZDIpOwo+ID4gIAkJCWVsc2UKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Bzci5jCj4gPiBpbmRleCA0MjNjZGY4NDA1OWMuLmJjMmQ4ODMxM2VkMCAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ID4gQEAgLTU3NCw3ICs1NzQsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9wc3JfZW5hYmxlX3NvdXJjZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4g IAlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQpIHsKPiA+ICAJCXUzMiBjaGlja2VuID0g STkxNV9SRUFEKENISUNLRU5fVFJBTlMoY3B1X3RyYW5zY29kZXIpKTsKPiA+ICAKPiA+IC0JCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDkgJiYgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ ID4gKwkJaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19HRU1JTklMQUtFKGRldl9wcml2KSkK PiA+ICAJCQljaGlja2VuIHw9IChQU1IyX1ZTQ19FTkFCTEVfUFJPR19IRUFERVIKPiA+ICAJCQkJ ICAgfCBQU1IyX0FERF9WRVJUSUNBTF9MSU5FX0NPVU5UKTsKPiA+ICAKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiA+IGluZGV4IGY2ZWM0OGE3NWE2OS4uZDNhMDhk MGYwMmZlIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgK PiA+IEBAIC05MywxMSArOTMsMTEgQEAgaGFuZ2NoZWNrX2FjdGlvbl90b19zdHIoY29uc3QgZW51 bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlvbiBhKQo+ID4gICNkZWZpbmUgSTkxNV9NQVhf U1VCU0xJQ0VTIDgKPiA+ICAKPiA+ICAjZGVmaW5lIGluc3Rkb25lX3NsaWNlX21hc2soZGV2X3By aXZfXykgXAo+ID4gLQkoSU5URUxfR0VOKGRldl9wcml2X18pID09IDcgPyBcCj4gPiArCShJU19H RU43KGRldl9wcml2X18pID8gXAo+ID4gIAkgMSA6IElOVEVMX0lORk8oZGV2X3ByaXZfXyktPnNz ZXUuc2xpY2VfbWFzaykKPiA+ICAKPiA+ICAjZGVmaW5lIGluc3Rkb25lX3N1YnNsaWNlX21hc2so ZGV2X3ByaXZfXykgXAo+ID4gLQkoSU5URUxfR0VOKGRldl9wcml2X18pID09IDcgPyBcCj4gPiAr CShJU19HRU43KGRldl9wcml2X18pID8gXAo+ID4gIAkgMSA6IElOVEVMX0lORk8oZGV2X3ByaXZf XyktPnNzZXUuc3Vic2xpY2VfbWFza1swXSkKPiA+ICAKPiA+ICAjZGVmaW5lIGZvcl9lYWNoX2lu c3Rkb25lX3NsaWNlX3N1YnNsaWNlKGRldl9wcml2X18sIHNsaWNlX18sIHN1YnNsaWNlX18pIFwK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gPiBpbmRleCA3Y2Q1OWVlZTVjYWQu LjRjOWYwYjcxMzhiMyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ ID4gQEAgLTE3OTgsNyArMTc5OCw3IEBAIHN0YXRpYyBib29sIHNrbF9wbGFuZV9oYXNfcGxhbmFy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJaWYgKElTX1NLWUxBS0Uo ZGV2X3ByaXYpIHx8IElTX0JST1hUT04oZGV2X3ByaXYpKQo+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ ID4gIAo+ID4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA9PSA5ICYmICFJU19HRU1JTklMQUtF KGRldl9wcml2KSAmJiBwaXBlID09IFBJUEVfQykKPiA+ICsJaWYgKElTX0dFTjkoZGV2X3ByaXYp ICYmICFJU19HRU1JTklMQUtFKGRldl9wcml2KSAmJiBwaXBlID09IFBJUEVfQykKPiA+ICAJCXJl dHVybiBmYWxzZTsKPiA+ICAKPiA+ICAJaWYgKHBsYW5lX2lkICE9IFBMQU5FX1BSSU1BUlkgJiYg cGxhbmVfaWQgIT0gUExBTkVfU1BSSVRFMCkKPiA+IC0tIAo+ID4gMi4xOS4xCj4gPiAKPiA+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1n ZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ IAo+IC0tIAo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=