From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v2 6/7] drm/i915: merge gen checks to use range Date: Wed, 21 Nov 2018 14:24:58 -0800 Message-ID: <20181121222458.GJ13148@intel.com> References: <20181106215123.27568-1-lucas.demarchi@intel.com> <20181106215123.27568-7-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id A1D1F89548 for ; Wed, 21 Nov 2018 22:24:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181106215123.27568-7-lucas.demarchi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBOb3YgMDYsIDIwMTggYXQgMDE6NTE6MjJQTSAtMDgwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IEluc3RlYWQgb2YgdXNpbmcgc2V2ZXJhbCBHVF9HRU4oKSwgbGV0J3MgcGFzcyB0 aGUgcmFuZ2UgdG8KPiBHVF9HRU5fUkFOR0UoKS4gQnkgY29kZSBpbnNwZWN0aW9uIHRoZXNlIHdl cmUgdGhlIHJhbmdlcyBkZWVtZWQKPiBuZWNlc3NhcnkgZm9yIHNwYXRjaDoKPiAKPiBAQAo+IGV4 cHJlc3Npb24gZTsKPiBAQAo+ICgKPiAtIEdUX0dFTihlLCAzKSB8fCBHVF9HRU4oZSwgMikKPiAr IEdUX0dFTl9SQU5HRShlLCAyLCAzKQo+IHwKPiAtIEdUX0dFTihlLCAzKSB8fCBHVF9HRU4oZSwg NCkKPiArIEdUX0dFTl9SQU5HRShlLCAzLCA0KQo+IHwKPiAtIEdUX0dFTihlLCA1KSB8fCBHVF9H RU4oZSwgNikKPiArIEdUX0dFTl9SQU5HRShlLCA1LCA2KQo+IHwKPiAtIEdUX0dFTihlLCA2KSB8 fCBHVF9HRU4oZSwgNykKPiArIEdUX0dFTl9SQU5HRShlLCA2LCA3KQo+IHwKPiAtIEdUX0dFTihl LCA3KSB8fCBHVF9HRU4oZSwgOCkKPiArIEdUX0dFTl9SQU5HRShlLCA3LCA4KQo+IHwKPiAtIEdU X0dFTihlLCA4KSB8fCBHVF9HRU4oZSwgOSkKPiArIEdUX0dFTl9SQU5HRShlLCA4LCA5KQo+IHwK PiAtIEdUX0dFTihlLCAxMCkgfHwgR1RfR0VOKGUsIDkpCj4gKyBHVF9HRU5fUkFOR0UoZSwgOSwg MTApCj4gfAo+IC0gR1RfR0VOKGUsIDkpIHx8IEdUX0dFTihlLCAxMCkKPiArIEdUX0dFTl9SQU5H RShlLCA5LCAxMCkKPiApCj4gCj4gU2lnbmVkLW9mZi1ieTogTHVjYXMgRGUgTWFyY2hpIDxsdWNh cy5kZW1hcmNoaUBpbnRlbC5jb20+CgphIGdvb2Qgc3RhcnQgcG9pbnQgYWx0aG91Z2ggSSBiZWxp ZXZlIHdlIHdpbGwgbmVlZCB0byBkbyBtb3JlCmNoYW5nZXMgbGF0ZXIuLi4KCgpSZXZpZXdlZC1i eTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgoKCgo+IC0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3R0LmMgICAgICAgICAgICAgfCAyICstCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICB8IDYgKysrLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgICB8IDIgKy0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jcnQuYyAgICAgICAgICAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RldmljZV9pbmZvLmMgICB8IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYyAgICAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9f dW5kZXJydW4uYyB8IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMu YyAgICAgIHwgNCArKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jICAg ICAgICB8IDYgKysrLS0tCj4gIDExIGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDE2 IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv Z3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3R0LmMKPiBpbmRleCBiYzc5YzE1NDM5 MWQuLjY5MmRlOWI5Nzc5YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv Z3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3R0LmMKPiBAQCAtMTAyNSw3 ICsxMDI1LDcgQEAgc3RhdGljIGJvb2wgdmdwdV9pcHNfZW5hYmxlZChzdHJ1Y3QgaW50ZWxfdmdw dSAqdmdwdSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdmdw dS0+Z3Z0LT5kZXZfcHJpdjsKPiAgCj4gLQlpZiAoR1RfR0VOKGRldl9wcml2LCA5KSB8fCBHVF9H RU4oZGV2X3ByaXYsIDEwKSkgewo+ICsJaWYgKEdUX0dFTl9SQU5HRShkZXZfcHJpdiwgOSwgMTAp KSB7Cj4gIAkJdTMyIGlwcyA9IHZncHVfdnJlZ190KHZncHUsIEdFTjhfR0FNV19FQ09fREVWX1JX X0lBKSAmCj4gIAkJCUdBTVdfRUNPX0VOQUJMRV82NEtfSVBTX0ZJRUxEOwo+ICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IGVjMjYwNzZhYWVjYy4uOWZmY2YwYmUwNTg5 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMjAzMCw3ICsyMDMw LDcgQEAgc3RhdGljIGludCBpOTE1X3N3aXp6bGVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKmRhdGEpCj4gIAlzZXFfcHJpbnRmKG0sICJiaXQ2IHN3aXp6bGUgZm9yIFktdGlsaW5nID0g JXNcbiIsCj4gIAkJICAgc3dpenpsZV9zdHJpbmcoZGV2X3ByaXYtPm1tLmJpdF82X3N3aXp6bGVf eSkpOwo+ICAKPiAtCWlmIChHVF9HRU4oZGV2X3ByaXYsIDMpIHx8IEdUX0dFTihkZXZfcHJpdiwg NCkpIHsKPiArCWlmIChHVF9HRU5fUkFOR0UoZGV2X3ByaXYsIDMsIDQpKSB7Cj4gIAkJc2VxX3By aW50ZihtLCAiRERDID0gMHglMDh4XG4iLAo+ICAJCQkgICBJOTE1X1JFQUQoRENDKSk7Cj4gIAkJ c2VxX3ByaW50ZihtLCAiRERDMiA9IDB4JTA4eFxuIiwKPiBAQCAtNDI2Miw3ICs0MjYyLDcgQEAg aTkxNV9jYWNoZV9zaGFyaW5nX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbCkKPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRhdGE7Cj4gIAl1MzIgc25wY3I7Cj4gIAo+IC0J aWYgKCEoR1RfR0VOKGRldl9wcml2LCA2KSB8fCBHVF9HRU4oZGV2X3ByaXYsIDcpKSkKPiArCWlm ICghKEdUX0dFTl9SQU5HRShkZXZfcHJpdiwgNiwgNykpKQo+ICAJCXJldHVybiAtRU5PREVWOwo+ ICAKPiAgCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPiBAQCAtNDI4Miw3ICs0Mjgy LDcgQEAgaTkxNV9jYWNoZV9zaGFyaW5nX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGF0YTsKPiAgCXUzMiBzbnBjcjsKPiAg Cj4gLQlpZiAoIShHVF9HRU4oZGV2X3ByaXYsIDYpIHx8IEdUX0dFTihkZXZfcHJpdiwgNykpKQo+ ICsJaWYgKCEoR1RfR0VOX1JBTkdFKGRldl9wcml2LCA2LCA3KSkpCj4gIAkJcmV0dXJuIC1FTk9E RVY7Cj4gIAo+ICAJaWYgKHZhbCA+IDMpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jCj4gaW5kZXggMGRlOGNlNjUwNTNkLi5lNzU0YzAzMDY0MjUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiBAQCAtMTY3Myw3ICsxNjczLDcgQEAgc3RhdGljIHZv aWQgY2FwdHVyZV9yZWdfc3RhdGUoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKPiAgCQll cnJvci0+Y2NpZCA9IEk5MTVfUkVBRChDQ0lEKTsKPiAgCj4gIAkvKiAzOiBGZWF0dXJlIHNwZWNp ZmljIHJlZ2lzdGVycyAqLwo+IC0JaWYgKEdUX0dFTihkZXZfcHJpdiwgNikgfHwgR1RfR0VOKGRl dl9wcml2LCA3KSkgewo+ICsJaWYgKEdUX0dFTl9SQU5HRShkZXZfcHJpdiwgNiwgNykpIHsKPiAg CQllcnJvci0+Z2FtX2Vjb2NoayA9IEk5MTVfUkVBRChHQU1fRUNPQ0hLKTsKPiAgCQllcnJvci0+ Z2FjX2VjbyA9IEk5MTVfUkVBRChHQUNfRUNPX0JJVFMpOwo+ICAJfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcGVyZi5jCj4gaW5kZXggNWNjMWZmYTYyMWE3Li5iNTE1NDg5MWUwZDcgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BlcmYuYwo+IEBAIC0zNDQ5LDcgKzM0NDksNyBAQCB2b2lkIGk5MTVfcGVy Zl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlkZXZfcHJpdi0+ cGVyZi5vYS5vcHMucmVhZCA9IGdlbjhfb2FfcmVhZDsKPiAgCQlkZXZfcHJpdi0+cGVyZi5vYS5v cHMub2FfaHdfdGFpbF9yZWFkID0gZ2VuOF9vYV9od190YWlsX3JlYWQ7Cj4gIAo+IC0JCWlmIChH VF9HRU4oZGV2X3ByaXYsIDgpIHx8IEdUX0dFTihkZXZfcHJpdiwgOSkpIHsKPiArCQlpZiAoR1Rf R0VOX1JBTkdFKGRldl9wcml2LCA4LCA5KSkgewo+ICAJCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMu aXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9Cj4gIAkJCQlnZW43X2lzX3ZhbGlkX2JfY291bnRlcl9h ZGRyOwo+ICAJCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY3J0LmMKPiBpbmRleCBkYmM5N2MyOWY3ZTUuLmNiYzc2YjdiOGI3NCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCj4gQEAgLTMyMiw3ICszMjIsNyBAQCBpbnRl bF9jcnRfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCSAq IERBQyBsaW1pdCBzdXBwb3NlZGx5IDM1NSBNSHouCj4gIAkJICovCj4gIAkJbWF4X2Nsb2NrID0g MjcwMDAwOwo+IC0JZWxzZSBpZiAoR1RfR0VOKGRldl9wcml2LCAzKSB8fCBHVF9HRU4oZGV2X3By aXYsIDQpKQo+ICsJZWxzZSBpZiAoR1RfR0VOX1JBTkdFKGRldl9wcml2LCAzLCA0KSkKPiAgCQlt YXhfY2xvY2sgPSA0MDAwMDA7Cj4gIAllbHNlCj4gIAkJbWF4X2Nsb2NrID0gMzUwMDAwOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwo+IGluZGV4IGJhZDNlYjI0Mjhh Yy4uMTc2MTUyOWYzZTY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RldmljZV9pbmZvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2Vf aW5mby5jCj4gQEAgLTc4Myw3ICs3ODMsNyBAQCB2b2lkIGludGVsX2RldmljZV9pbmZvX3J1bnRp bWVfaW5pdChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8pCj4gIAkJRFJNX0lORk8oIkRp c3BsYXkgZGlzYWJsZWQgKG1vZHVsZSBwYXJhbWV0ZXIpXG4iKTsKPiAgCQlpbmZvLT5udW1fcGlw ZXMgPSAwOwo+ICAJfSBlbHNlIGlmIChpbmZvLT5udW1fcGlwZXMgPiAwICYmCj4gLQkJICAgKEdU X0dFTihkZXZfcHJpdiwgNykgfHwgR1RfR0VOKGRldl9wcml2LCA4KSkgJiYKPiArCQkgICAoR1Rf R0VOX1JBTkdFKGRldl9wcml2LCA3LCA4KSkgJiYKPiAgCQkgICBIQVNfUENIX1NQTElUKGRldl9w cml2KSkgewo+ICAJCXUzMiBmdXNlX3N0cmFwID0gSTkxNV9SRUFEKEZVU0VfU1RSQVApOwo+ICAJ CXUzMiBzZnVzZV9zdHJhcCA9IEk5MTVfUkVBRChTRlVTRV9TVFJBUCk7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDQ1NGE3ZTg2YWRjOC4uMDI4ODE2OWMxNDYyIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMDY4NCw3ICsxMDY4 NCw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0Cj4gIAkgKiB0aGUgdy9hIG9uIGFsbCB0aHJl ZSBwbGF0Zm9ybXMuCj4gIAkgKi8KPiAgCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfU1BSSVRFMCAm Jgo+IC0JICAgIChHVF9HRU4oZGV2X3ByaXYsIDUpIHx8IEdUX0dFTihkZXZfcHJpdiwgNikgfHwK PiArCSAgICAoR1RfR0VOX1JBTkdFKGRldl9wcml2LCA1LCA2KSB8fAo+ICAJICAgICBJU19JVllC UklER0UoZGV2X3ByaXYpKSAmJgo+ICAJICAgICh0dXJuX29uIHx8ICghbmVlZHNfc2NhbGluZyhv bGRfcGxhbmVfc3RhdGUpICYmCj4gIAkJCSBuZWVkc19zY2FsaW5nKHRvX2ludGVsX3BsYW5lX3N0 YXRlKHBsYW5lX3N0YXRlKSkpKSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3Mu Ywo+IGluZGV4IGZkZDY5NjZlNWI5NS4uZGIxYTVkMDdlMmUwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBAQCAtNDM4LDcgKzQzOCw3IEBAIHZvaWQgaW50ZWxf ZW5naW5lX2luaXRfZ2xvYmFsX3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwg dTMyIHNlcW5vKQo+ICAJICogdGhlIHNlbWFwaG9yZSB2YWx1ZSwgdGhlbiB3aGVuIHRoZSBzZXFu byBtb3ZlcyBiYWNrd2FyZHMgYWxsCj4gIAkgKiBmdXR1cmUgd2FpdHMgd2lsbCBjb21wbGV0ZSBp bnN0YW50bHkgKGNhdXNpbmcgcmVuZGVyaW5nIGNvcnJ1cHRpb24pLgo+ICAJICovCj4gLQlpZiAo R1RfR0VOKGRldl9wcml2LCA2KSB8fCBHVF9HRU4oZGV2X3ByaXYsIDcpKSB7Cj4gKwlpZiAoR1Rf R0VOX1JBTkdFKGRldl9wcml2LCA2LCA3KSkgewo+ICAJCUk5MTVfV1JJVEUoUklOR19TWU5DXzAo ZW5naW5lLT5tbWlvX2Jhc2UpLCAwKTsKPiAgCQlJOTE1X1dSSVRFKFJJTkdfU1lOQ18xKGVuZ2lu ZS0+bW1pb19iYXNlKSwgMCk7Cj4gIAkJaWYgKEhBU19WRUJPWChkZXZfcHJpdikpCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYwo+IGluZGV4IGZmNzZkYTUwMTUz ZC4uZTFkNDgxOTNhYjBiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZpZm9fdW5kZXJydW4uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9f dW5kZXJydW4uYwo+IEBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIGJvb2wgX19pbnRlbF9zZXRf Y3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAo+ ICAJaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQo+ICAJCWk5eHhfc2V0X2ZpZm9fdW5k ZXJydW5fcmVwb3J0aW5nKGRldiwgcGlwZSwgZW5hYmxlLCBvbGQpOwo+IC0JZWxzZSBpZiAoR1Rf R0VOKGRldl9wcml2LCA1KSB8fCBHVF9HRU4oZGV2X3ByaXYsIDYpKQo+ICsJZWxzZSBpZiAoR1Rf R0VOX1JBTkdFKGRldl9wcml2LCA1LCA2KSkKPiAgCQlpcm9ubGFrZV9zZXRfZmlmb191bmRlcnJ1 bl9yZXBvcnRpbmcoZGV2LCBwaXBlLCBlbmFibGUpOwo+ICAJZWxzZSBpZiAoR1RfR0VOKGRldl9w cml2LCA3KSkKPiAgCQlpdnlicmlkZ2Vfc2V0X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldiwg cGlwZSwgZW5hYmxlLCBvbGQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9waXBlX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYwo+ IGluZGV4IDU5N2U1MmJjMTVlOC4uMWZmYTgxZjBiZTNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9waXBlX2NyYy5jCj4gQEAgLTQzMyw3ICs0MzMsNyBAQCBzdGF0aWMgaW50IGdldF9u ZXdfY3JjX2N0bF9yZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCXJl dHVybiBpOXh4X3BpcGVfY3JjX2N0bF9yZWcoZGV2X3ByaXYsIHBpcGUsIHNvdXJjZSwgdmFsKTsK PiAgCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQo+ICAJCXJldHVybiB2bHZfcGlwZV9jcmNfY3RsX3JlZyhkZXZfcHJpdiwgcGlwZSwg c291cmNlLCB2YWwpOwo+IC0JZWxzZSBpZiAoR1RfR0VOKGRldl9wcml2LCA1KSB8fCBHVF9HRU4o ZGV2X3ByaXYsIDYpKQo+ICsJZWxzZSBpZiAoR1RfR0VOX1JBTkdFKGRldl9wcml2LCA1LCA2KSkK PiAgCQlyZXR1cm4gaWxrX3BpcGVfY3JjX2N0bF9yZWcoc291cmNlLCB2YWwpOwo+ICAJZWxzZQo+ ICAJCXJldHVybiBpdmJfcGlwZV9jcmNfY3RsX3JlZyhkZXZfcHJpdiwgcGlwZSwgc291cmNlLCB2 YWwsIHNldF93YSk7Cj4gQEAgLTU1MCw3ICs1NTAsNyBAQCBpbnRlbF9pc192YWxpZF9jcmNfc291 cmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQlyZXR1cm4gaTl4eF9j cmNfc291cmNlX3ZhbGlkKGRldl9wcml2LCBzb3VyY2UpOwo+ICAJZWxzZSBpZiAoSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gIAkJcmV0dXJuIHZs dl9jcmNfc291cmNlX3ZhbGlkKGRldl9wcml2LCBzb3VyY2UpOwo+IC0JZWxzZSBpZiAoR1RfR0VO KGRldl9wcml2LCA1KSB8fCBHVF9HRU4oZGV2X3ByaXYsIDYpKQo+ICsJZWxzZSBpZiAoR1RfR0VO X1JBTkdFKGRldl9wcml2LCA1LCA2KSkKPiAgCQlyZXR1cm4gaWxrX2NyY19zb3VyY2VfdmFsaWQo ZGV2X3ByaXYsIHNvdXJjZSk7Cj4gIAllbHNlCj4gIAkJcmV0dXJuIGl2Yl9jcmNfc291cmNlX3Zh bGlkKGRldl9wcml2LCBzb3VyY2UpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF91bmNvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4g aW5kZXggZjQ4OGNmNWQxZjQzLi44OGZmY2RlMTZmYzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF91bmNvcmUuYwo+IEBAIC01MjgsNyArNTI4LDcgQEAgY2hlY2tfZm9yX3VuY2xhaW1lZF9t bWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWlmIChJU19WQUxMRVlW SUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQlyZXQgfD0gdmx2 X2NoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyhkZXZfcHJpdik7Cj4gIAo+IC0JaWYgKEdUX0dFTihk ZXZfcHJpdiwgNikgfHwgR1RfR0VOKGRldl9wcml2LCA3KSkKPiArCWlmIChHVF9HRU5fUkFOR0Uo ZGV2X3ByaXYsIDYsIDcpKQo+ICAJCXJldCB8PSBnZW42X2NoZWNrX2Zvcl9maWZvX2RlYnVnKGRl dl9wcml2KTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+IEBAIC01NTYsNyArNTU2LDcgQEAgc3RhdGlj IHZvaWQgX19pbnRlbF91bmNvcmVfZWFybHlfc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJCWRldl9wcml2LT51bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9nZXQo ZGV2X3ByaXYsCj4gIAkJCQkJCSAgICAgIHJlc3RvcmVfZm9yY2V3YWtlKTsKPiAgCj4gLQkJaWYg KEdUX0dFTihkZXZfcHJpdiwgNikgfHwgR1RfR0VOKGRldl9wcml2LCA3KSkKPiArCQlpZiAoR1Rf R0VOX1JBTkdFKGRldl9wcml2LCA2LCA3KSkKPiAgCQkJZGV2X3ByaXYtPnVuY29yZS5maWZvX2Nv dW50ID0KPiAgCQkJCWZpZm9fZnJlZV9lbnRyaWVzKGRldl9wcml2KTsKPiAgCQlzcGluX3VubG9j a19pcnEoJmRldl9wcml2LT51bmNvcmUubG9jayk7Cj4gQEAgLTE0MzcsNyArMTQzNyw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX3VuY29yZV9md19kb21haW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ICAJCQkJICAgICAgIEZPUkNFV0FLRV9NRURJQV9WRUJPWF9HRU4x MShpKSwKPiAgCQkJCSAgICAgICBGT1JDRVdBS0VfQUNLX01FRElBX1ZFQk9YX0dFTjExKGkpKTsK PiAgCQl9Cj4gLQl9IGVsc2UgaWYgKEdUX0dFTihkZXZfcHJpdiwgMTApIHx8IEdUX0dFTihkZXZf cHJpdiwgOSkpIHsKPiArCX0gZWxzZSBpZiAoR1RfR0VOX1JBTkdFKGRldl9wcml2LCA5LCAxMCkp IHsKPiAgCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfZ2V0ID0KPiAgCQkJZndf ZG9tYWluc19nZXRfd2l0aF9mYWxsYmFjazsKPiAgCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZv cmNlX3dha2VfcHV0ID0gZndfZG9tYWluc19wdXQ7Cj4gLS0gCj4gMi4xOS4xLjEuZzU2YzQ2ODNl NjgKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==