From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: Use IS_GEN9 and IS_LP to put Skylake and Kabylake in the same bucket. Date: Fri, 20 Jan 2017 08:56:31 +0200 Message-ID: <878tq6i5i8.fsf@intel.com> References: <1484871418-22335-1-git-send-email-anusha.srivatsa@intel.com> 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 B10D46EB15 for ; Fri, 20 Jan 2017 06:56:38 +0000 (UTC) In-Reply-To: <1484871418-22335-1-git-send-email-anusha.srivatsa@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Anusha Srivatsa , intel-gfx@lists.freedesktop.org Cc: Ander Conselvan de Oliveira , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMCBKYW4gMjAxNywgQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50 ZWwuY29tPiB3cm90ZToKPiBXaXRoIEdMSyB3YXMgaW50cm9kdWNlZCBJU19MUC4KPiBXaXRoIHRo aXMsIHdlIGNhbiB1c2UgSVNfR0VOOSBhbmQgSVNfTFAgdG8gcHV0IFNreWxha2UKPiBhbmQgS2Fi eWxha2UgaW4gdGhlIHNhbWUgYnVja2V0LiBUaGUgbWFpbiBpbnRlbnRpb24gaXMKPiB0byBzaW1w bGlmeSB0aGUgaWYgYW5kIGVsc2Ugc3RhdGVtZW50cyB0aGF0IGdldHMgYWRkZWQKPiBmb3IgZXZl cnkgbmV3IHBsYXRmb3JtLgo+Cj4gVGhpcyBhcHByb2FjaCBwcm9wb3NlcyB0aGUgaWRlYSB0byBj cmVhdGUgYSBjb21tb24gYnVja2V0Cj4gdG8gcHV0IG11bHRpcGxlIHBsYXRmb3JtcyAoU0tMIGFu ZCBLQkwgaW4gdGhpcyBjYXNlKQo+IHRvZ2V0aGVyLiBBbm90aGVyIGFwcHJvYWNoIHdvdWxkIGJl IHRvIGludHJvZHVjZSBJU19HRU45X0JDCj4gYXMgc3VnZ2VzdGVkIGJ5IFJvZHJpZ28sIHdoZXJl IF9CQyBzdGFuZHMgZm9yIEJpZyBDb3JlLgoKSSB0aGluayB3ZSBuZWVkIHRvIGNvbWUgdXAgd2l0 aCBhbiBhbGlhcyBsaWtlIElTX0dFTjlfQkMoKSwgYWx0aG91Z2ggSSdtCm5vdCBjb252aW5jZWQg YWJvdXQgdGhhdCBwYXJhdGljdWxhciBuYW1lLiBUaGUgY3VycmVudCAoRk9PIHx8IEJBUikgZm9y CnNwZWNpZmljIEZPTyBhbmQgQkFSIGlzICptdWNoKiBmYXN0ZXIgdG8gcmVhZCB0aGFuIHRoZSBz bGlnaHRseQpjb25mdXNpbmcgKEdST1VQICYmICFTVUJHUk9VUCkuCgpPbmUgb3RoZXIgY29tbWVu dCBpbmxpbmUuCgo+IFRoZSBpOTE1X2Rydi5jIHdhcyBsZXQgb3V0IG9mIHRoaXMgcGF0Y2ggb24g cHVycG9zZQo+IGJlY2F1c2UgdGhhdCBpcyByZWFsbHkgYSBkZWNpc2lvbiBwZXIgcGxhdGZvcm0s IGp1c3QgbGlrZQo+IG90aGVyIGNhc2VzIHdoZXJlIElTX0tBQllMQUtFIGlzIGRpZmZlcmVudCBm cm9tIElTX1NLWUxBS0UuCj4KPiBDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwu Y29tPgo+IENjOiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5k ZS5vbGl2ZWlyYUBpbnRlbC5jb20+Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRl bC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FA aW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgIHwgMTIgKysrKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlv LmMgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jICAg ICAgIHwgIDQgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAg IHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGV2aWNlX2luZm8uYyB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyAgICAgfCAxMiArKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYyAgICAgICAgICB8ICA0ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuYyAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jICAg ICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYyAgICAgICAg IHwgIDQgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMgICAgICAgIHwg IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICB8IDExICsr KysrLS0tLS0tCj4gIDEyIGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDM5IGRlbGV0 aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBmYTY5ZDcy Li5hNGZkYjlmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMTIy NCwyMCArMTIyNCwyMCBAQCBzdGF0aWMgaW50IGk5MTVfZnJlcXVlbmN5X2luZm8oc3RydWN0IHNl cV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4gIAo+ICAJCW1heF9mcmVxID0gKElTX0dFTjlfTFAo ZGV2X3ByaXYpID8gcnBfc3RhdGVfY2FwID4+IDAgOgo+ICAJCQkgICAgcnBfc3RhdGVfY2FwID4+ IDE2KSAmIDB4ZmY7Cj4gLQkJbWF4X2ZyZXEgKj0gKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElT X0tBQllMQUtFKGRldl9wcml2KSA/Cj4gKwkJbWF4X2ZyZXEgKj0gKChJU19HRU45KGRldl9wcml2 KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSA/Cj4gIAkJCSAgICAgR0VOOV9GUkVRX1NDQUxFUiA6IDEp OwoKVGhlcmUncyBhbHJlYWR5IHN1cGVyZmx1b3VzIGJyYWNlcyB0byBiZWdpbiB3aXRoLCBwbGVh c2UgZG9uJ3QgYWRkIG1vcmUhClNhbWUgYWxsIGFyb3VuZC4KCj4gIAkJc2VxX3ByaW50ZihtLCAi TG93ZXN0IChSUE4pIGZyZXF1ZW5jeTogJWRNSHpcbiIsCj4gIAkJCSAgIGludGVsX2dwdV9mcmVx KGRldl9wcml2LCBtYXhfZnJlcSkpOwo+ICAKPiAgCQltYXhfZnJlcSA9IChycF9zdGF0ZV9jYXAg JiAweGZmMDApID4+IDg7Cj4gLQkJbWF4X2ZyZXEgKj0gKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8 IElTX0tBQllMQUtFKGRldl9wcml2KSA/Cj4gKwkJbWF4X2ZyZXEgKj0gKChJU19HRU45KGRldl9w cml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSA/Cj4gIAkJCSAgICAgR0VOOV9GUkVRX1NDQUxFUiA6 IDEpOwo+ICAJCXNlcV9wcmludGYobSwgIk5vbWluYWwgKFJQMSkgZnJlcXVlbmN5OiAlZE1Ielxu IiwKPiAgCQkJICAgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIG1heF9mcmVxKSk7Cj4gIAo+ICAJ CW1heF9mcmVxID0gKElTX0dFTjlfTFAoZGV2X3ByaXYpID8gcnBfc3RhdGVfY2FwID4+IDE2IDoK PiAgCQkJICAgIHJwX3N0YXRlX2NhcCA+PiAwKSAmIDB4ZmY7Cj4gLQkJbWF4X2ZyZXEgKj0gKElT X1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSA/Cj4gKwkJbWF4X2Zy ZXEgKj0gKChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSA/Cj4gIAkJCSAg ICAgR0VOOV9GUkVRX1NDQUxFUiA6IDEpOwo+ICAJCXNlcV9wcmludGYobSwgIk1heCBub24tb3Zl cmNsb2NrZWQgKFJQMCkgZnJlcXVlbmN5OiAlZE1IelxuIiwKPiAgCQkJICAgaW50ZWxfZ3B1X2Zy ZXEoZGV2X3ByaXYsIG1heF9mcmVxKSk7Cj4gQEAgLTE4MTQsNyArMTgxNCw3IEBAIHN0YXRpYyBp bnQgaTkxNV9yaW5nX2ZyZXFfdGFibGUoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQp Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gb3V0Owo+ICAKPiAtCWlmIChJU19TS1lMQUtFKGRldl9w cml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPiArCWlmIChJU19HRU45KGRldl9wcml2 KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSB7Cj4gIAkJLyogQ29udmVydCBHVCBmcmVxdWVuY3kgdG8g NTAgSFogdW5pdHMgKi8KPiAgCQltaW5fZ3B1X2ZyZXEgPQo+ICAJCQlkZXZfcHJpdi0+cnBzLm1p bl9mcmVxX3NvZnRsaW1pdCAvIEdFTjlfRlJFUV9TQ0FMRVI7Cj4gQEAgLTE4MzQsNyArMTgzNCw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9yaW5nX2ZyZXFfdGFibGUoc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICp1bnVzZWQpCj4gIAkJCQkgICAgICAgJmlhX2ZyZXEpOwo+ICAJCXNlcV9wcmludGYobSwg IiVkXHRcdCVkXHRcdFx0XHQlZFxuIiwKPiAgCQkJICAgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYs IChncHVfZnJlcSAqCj4gLQkJCQkoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0Uo ZGV2X3ByaXYpID8KPiArCQkJCSgoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2 KSkgPwo+ICAJCQkJIEdFTjlfRlJFUV9TQ0FMRVIgOiAxKSkpLAo+ICAJCQkgICAoKGlhX2ZyZXEg Pj4gMCkgJiAweGZmKSAqIDEwMCwKPiAgCQkJICAgKChpYV9mcmVxID4+IDgpICYgMHhmZikgKiAx MDApOwo+IEBAIC00NDQ0LDcgKzQ0NDQsNyBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfZGV2aWNl X3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAo+ICAJCXNzZXUt PnNsaWNlX21hc2sgfD0gQklUKHMpOwo+ICAKPiAtCQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikg fHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ICsJCWlmIChJU19HRU45KGRldl9wcml2KSAmJiAh SVNfTFAoZGV2X3ByaXYpKQo+ICAJCQlzc2V1LT5zdWJzbGljZV9tYXNrID0KPiAgCQkJCUlOVEVM X0lORk8oZGV2X3ByaXYpLT5zc2V1LnN1YnNsaWNlX21hc2s7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXVkaW8uYwo+IGluZGV4IDE2YzIwMjcuLmZiMmE3ZWUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F1ZGlvLmMKPiBAQCAtNzAyLDcgKzcwMiw3IEBAIHN0YXRpYyB2b2lkIGk5MTVf YXVkaW9fY29tcG9uZW50X2NvZGVjX3dha2Vfb3ZlcnJpZGUoc3RydWN0IGRldmljZSAqa2RldiwK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShrZGV2 KTsKPiAgCXUzMiB0bXA7Cj4gIAo+IC0JaWYgKCFJU19TS1lMQUtFKGRldl9wcml2KSAmJiAhSVNf S0FCWUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYgKCEoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQ KGRldl9wcml2KSkpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCWk5MTVfYXVkaW9fY29tcG9uZW50X2dl dF9wb3dlcihrZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiBpbmRleCBkODEy MzJiLi5jMWU2ODkxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nv bG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gQEAgLTUz Niw4ICs1MzYsOCBAQCB2b2lkIGludGVsX2NvbG9yX2luaXQoc3RydWN0IGRybV9jcnRjICpjcnRj KQo+ICAJfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSkgewo+ICAJCWRldl9wcml2LT5k aXNwbGF5LmxvYWRfY3NjX21hdHJpeCA9IGk5eHhfbG9hZF9jc2NfbWF0cml4Owo+ICAJCWRldl9w cml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGhhc3dlbGxfbG9hZF9sdXRzOwo+IC0JfSBlbHNlIGlm IChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8Cj4gLQkJ ICAgSVNfQlJPWFRPTihkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwl9 IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgKElTX0dFTjkoZGV2X3ByaXYpICYm Cj4gKwkJCSFJU19HRU1JTklMQUtFKGRldl9wcml2KSkpIHsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxh eS5sb2FkX2NzY19tYXRyaXggPSBpOXh4X2xvYWRfY3NjX21hdHJpeDsKPiAgCQlkZXZfcHJpdi0+ ZGlzcGxheS5sb2FkX2x1dHMgPSBicm9hZHdlbGxfbG9hZF9sdXRzOwo+ICAJfSBlbHNlIHsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IDY2YjM2N2QuLjdjMzY0MjMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC00NDUsNyArNDQ1LDcgQEAgc3RhdGljIGludCBp bnRlbF9kZGlfaGRtaV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVu dW0gcG9ydCBwb3IKPiAgCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKPiAgCQlyZXR1cm4gaGRt aV9sZXZlbDsKPiAgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0Uo ZGV2X3ByaXYpKSB7Cj4gKwlpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2 KSkgewo+ICAJCXNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2X3ByaXYsICZuX2hkbWlfZW50cmll cyk7Cj4gIAkJaGRtaV9kZWZhdWx0X2VudHJ5ID0gODsKPiAgCX0gZWxzZSBpZiAoSVNfQlJPQURX RUxMKGRldl9wcml2KSkgewo+IEBAIC01MTgsNyArNTE4LDcgQEAgdm9pZCBpbnRlbF9wcmVwYXJl X2RwX2RkaV9idWZmZXJzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJCW5fZHBf ZW50cmllcyA9IEFSUkFZX1NJWkUoYmR3X2RkaV90cmFuc2xhdGlvbnNfZHApOwo+ICAJfQo+ICAK PiAtCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsK PiArCWlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSB7Cj4gIAkJLyog SWYgd2UncmUgYm9vc3RpbmcgdGhlIGN1cnJlbnQsIHNldCBiaXQgMzEgb2YgdHJhbnMxICovCj4g IAkJaWYgKGRldl9wcml2LT52YnQuZGRpX3BvcnRfaW5mb1twb3J0XS5kcF9ib29zdF9sZXZlbCkK PiAgCQkJaWJvb3N0X2JpdCA9IERESV9CVUZfQkFMQU5DRV9MRUdfRU5BQkxFOwo+IEBAIC01NzIs NyArNTcyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlcGFyZV9oZG1pX2RkaV9idWZmZXJzKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAKPiAgCWhkbWlfbGV2ZWwgPSBpbnRlbF9k ZGlfaGRtaV9sZXZlbChkZXZfcHJpdiwgcG9ydCk7Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2 X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+ICsJaWYgKElTX0dFTjkoZGV2X3By aXYpICYmICFJU19MUChkZXZfcHJpdikpIHsKPiAgCQlkZGlfdHJhbnNsYXRpb25zX2hkbWkgPSBz a2xfZ2V0X2J1Zl90cmFuc19oZG1pKGRldl9wcml2LCAmbl9oZG1pX2VudHJpZXMpOwo+ICAKPiAg CQkvKiBJZiB3ZSdyZSBib29zdGluZyB0aGUgY3VycmVudCwgc2V0IGJpdCAzMSBvZiB0cmFuczEg Ki8KPiBAQCAtMTA4OSw3ICsxMDg5LDcgQEAgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDw9IDgpCj4gIAkJaHN3X2RkaV9jbG9ja19nZXQoZW5jb2RlciwgcGlwZV9jb25maWcpOwo+IC0J ZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ ICsJZWxzZSBpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkKPiAgCQlz a2xfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gIAllbHNlIGlmIChJU19H RU45X0xQKGRldl9wcml2KSkKPiAgCQlieHRfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2Nv bmZpZyk7Cj4gQEAgLTExNTAsNyArMTE1MCw3IEBAIGJvb2wgaW50ZWxfZGRpX3BsbF9zZWxlY3Qo c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciA9Cj4gIAkJaW50ZWxfZGRpX2dldF9jcnRjX25ld19lbmNvZGVyKGNydGNf c3RhdGUpOwo+ICAKPiAtCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShk ZXZfcHJpdikpCj4gKwlpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkK PiAgCQlyZXR1cm4gc2tsX2RkaV9wbGxfc2VsZWN0KGludGVsX2NydGMsIGNydGNfc3RhdGUsCj4g IAkJCQkJICBpbnRlbF9lbmNvZGVyKTsKPiAgCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYp KQo+IEBAIC0xNjQxLDcgKzE2NDEsNyBAQCB1aW50MzJfdCBkZGlfc2lnbmFsX2xldmVscyhzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAKPiAgCWxldmVsID0gdHJhbnNsYXRlX3NpZ25hbF9s ZXZlbChzaWduYWxfbGV2ZWxzKTsKPiAgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwg SVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19M UChkZXZfcHJpdikpCj4gIAkJc2tsX2RkaV9zZXRfaWJvb3N0KGVuY29kZXIsIGxldmVsKTsKPiAg CWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQo+ICAJCWJ4dF9kZGlfdnN3aW5nX3NlcXVl bmNlKGRldl9wcml2LCBsZXZlbCwgcG9ydCwgZW5jb2Rlci0+dHlwZSk7Cj4gQEAgLTE2NTgsNyAr MTY1OCw3IEBAIHZvaWQgaW50ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gIAlpZiAoV0FSTl9PTighcGxsKSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JaWYg KElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+ICsJaWYg KElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpIHsKPiAgCQl1aW50MzJfdCB2 YWw7Cj4gIAo+ICAJCS8qIERESSAtPiBQTEwgbWFwcGluZyAgKi8KPiBAQCAtMTcxNCw3ICsxNzE0 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCWludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQo aW50ZWxfaGRtaSwgdHJ1ZSk7Cj4gIAlpbnRlbF9kZGlfY2xrX3NlbGVjdChlbmNvZGVyLCBwbGwp Owo+ICAJaW50ZWxfcHJlcGFyZV9oZG1pX2RkaV9idWZmZXJzKGVuY29kZXIpOwo+IC0JaWYgKElT X1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKPiArCWlmIChJU19H RU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKQo+ICAJCXNrbF9kZGlfc2V0X2lib29z dChlbmNvZGVyLCBsZXZlbCk7Cj4gIAllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkKPiAg CQlieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXZfcHJpdiwgbGV2ZWwsIHBvcnQsCj4gQEAgLTE3 ODQsNyArMTc4NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wb3N0X2Rpc2FibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gIAkJaW50ZWxfZWRwX3BhbmVsX29mZihp bnRlbF9kcCk7Cj4gIAl9Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tB QllMQUtFKGRldl9wcml2KSkKPiArCWlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2 X3ByaXYpKQo+ICAJCUk5MTVfV1JJVEUoRFBMTF9DVFJMMiwgKEk5MTVfUkVBRChEUExMX0NUUkwy KSB8Cj4gIAkJCQkJRFBMTF9DVFJMMl9ERElfQ0xLX09GRihwb3J0KSkpOwo+ICAJZWxzZSBpZiAo SU5URUxfR0VOKGRldl9wcml2KSA8IDkpCj4gQEAgLTIxNTcsNyArMjE1Nyw3IEBAIGludGVsX2Rk aV9nZXRfbGlua19kcGxsKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBjbG9jaykKPiAg CQkJcGxsLT5zdGF0ZSA9IHRtcF9wbGxfc3RhdGU7Cj4gIAkJCXJldHVybiBOVUxMOwo+ICAJCX0K PiAtCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3By aXYpKSB7Cj4gKwl9IGVsc2UgaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJp dikpIHsKPiAgCQlwbGwgPSBza2xfZmluZF9saW5rX3BsbChkZXZfcHJpdiwgY2xvY2spOwo+ICAJ fSBlbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYp KSB7Cj4gIAkJcGxsID0gaHN3X2RkaV9kcF9nZXRfZHBsbChlbmNvZGVyLCBjbG9jayk7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCj4gaW5kZXggZmNmODE4MS4uOGFj ZDdkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5m by5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwo+IEBA IC0xODksNyArMTg5LDcgQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2luZm9faW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkgKiBwYWlyIHBlciBzdWJzbGljZS4KPiAg CSovCj4gIAlzc2V1LT5oYXNfc2xpY2VfcGcgPQo+IC0JCShJU19TS1lMQUtFKGRldl9wcml2KSB8 fCBJU19LQUJZTEFLRShkZXZfcHJpdikpICYmCj4gKwkJKElTX0dFTjkoZGV2X3ByaXYpICYmICFJ U19MUChkZXZfcHJpdikpICYmCj4gIAkJaHdlaWdodDgoc3NldS0+c2xpY2VfbWFzaykgPiAxOwo+ ICAJc3NldS0+aGFzX3N1YnNsaWNlX3BnID0KPiAgCQlJU19HRU45X0xQKGRldl9wcml2KSAmJiBz c2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpID4gMTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gaW5kZXggMGY0MjcyZi4uOTUyZDBiNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBAQCAtNTc5OSw3ICs1Nzk5LDcgQEAgc3RhdGljIGludCBza2xfY2Fs Y19jZGNsayhpbnQgbWF4X3BpeGNsaywgaW50IHZjbyk7Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRl bF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAg ewo+IC0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkg ewo+ICsJaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpIHsKPiAgCQl1 MzIgbGltaXQgPSBJOTE1X1JFQUQoU0tMX0RGU00pICYgU0tMX0RGU01fQ0RDTEtfTElNSVRfTUFT SzsKPiAgCQlpbnQgbWF4X2NkY2xrLCB2Y287Cj4gIAo+IEBAIC0xMDY2Niw3ICsxMDY2Niw3IEBA IHN0YXRpYyB2b2lkIGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAo+ICAKPiAgCXBvcnQgPSAodG1wICYgVFJBTlNfRERJX1BPUlRfTUFTSykgPj4gVFJB TlNfRERJX1BPUlRfU0hJRlQ7Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElT X0tBQllMQUtFKGRldl9wcml2KSkKPiArCWlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAo ZGV2X3ByaXYpKQo+ICAJCXNreWxha2VfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVf Y29uZmlnKTsKPiAgCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQo+ICAJCWJ4dF9nZXRf ZGRpX3BsbChkZXZfcHJpdiwgcG9ydCwgcGlwZV9jb25maWcpOwo+IEBAIC0xNTY2Nyw3ICsxNTY2 Nyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldHVwX291dHB1dHMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ICAJCSAqLwo+ICAJCWZvdW5kID0gSTkxNV9SRUFEKERESV9CVUZf Q1RMKFBPUlRfQSkpICYgRERJX0lOSVRfRElTUExBWV9ERVRFQ1RFRDsKPiAgCQkvKiBXYUlnbm9y ZURESUFTdHJhcDogc2tsICovCj4gLQkJaWYgKGZvdW5kIHx8IElTX1NLWUxBS0UoZGV2X3ByaXYp IHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKPiArCQlpZiAoZm91bmQgfHwgKElTX0dFTjkoZGV2 X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpKQo+ICAJCQlpbnRlbF9kZGlfaW5pdChkZXZfcHJp diwgUE9SVF9BKTsKPiAgCj4gIAkJLyogRERJIEIsIEMgYW5kIEQgZGV0ZWN0aW9uIGlzIGluZGlj YXRlZCBieSB0aGUgU0ZVU0VfU1RSQVAKPiBAQCAtMTU2ODMsNyArMTU2ODMsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9zZXR1cF9vdXRwdXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgCQkvKgo+ICAJCSAqIE9uIFNLTCB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIGRldGVjdCBE REktRSBzbyB3ZSByZWx5IG9uIFZCVC4KPiAgCQkgKi8KPiAtCQlpZiAoKElTX1NLWUxBS0UoZGV2 X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgJiYKPiArCQlpZiAoKElTX0dFTjkoZGV2 X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpICYmCj4gIAkJICAgIChkZXZfcHJpdi0+dmJ0LmRk aV9wb3J0X2luZm9bUE9SVF9FXS5zdXBwb3J0c19kcCB8fAo+ICAJCSAgICAgZGV2X3ByaXYtPnZi dC5kZGlfcG9ydF9pbmZvW1BPUlRfRV0uc3VwcG9ydHNfZHZpIHx8Cj4gIAkJICAgICBkZXZfcHJp di0+dmJ0LmRkaV9wb3J0X2luZm9bUE9SVF9FXS5zdXBwb3J0c19oZG1pKSkKPiBAQCAtMTYxODIs NyArMTYxODIsNyBAQCB2b2lkIGludGVsX2luaXRfZGlzcGxheV9ob29rcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAl9Cj4gIAo+ICAJLyogUmV0dXJucyB0aGUgY29yZSBk aXNwbGF5IGNsb2NrIHNwZWVkICovCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNf S0FCWUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChk ZXZfcHJpdikpCj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQg PQo+ICAJCQlza3lsYWtlX2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ICAJZWxzZSBpZiAoSVNf R0VOOV9MUChkZXZfcHJpdikpCj4gQEAgLTE2MjYzLDcgKzE2MjYzLDcgQEAgdm9pZCBpbnRlbF9p bml0X2Rpc3BsYXlfaG9va3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJ CQlieHRfbW9kZXNldF9jb21taXRfY2RjbGs7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNl dF9jYWxjX2NkY2xrID0KPiAgCQkJYnh0X21vZGVzZXRfY2FsY19jZGNsazsKPiAtCX0gZWxzZSBp ZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwl9 IGVsc2UgaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpIHsKPiAgCQlk ZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNsayA9Cj4gIAkJCXNrbF9tb2Rlc2V0 X2NvbW1pdF9jZGNsazsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsg PQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IGU4MGQ2MjAuLmE4MDY0MzkgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtMjI2LDcgKzIyNiw3IEBAIGludGVsX2RwX3Nv dXJjZV9yYXRlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBjb25zdCBpbnQgKipzb3VyY2Vf cmF0ZXMpCj4gIAlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKPiAgCQkqc291cmNlX3JhdGVz ID0gYnh0X3JhdGVzOwo+ICAJCXNpemUgPSBBUlJBWV9TSVpFKGJ4dF9yYXRlcyk7Cj4gLQl9IGVs c2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+ ICsJfSBlbHNlIGlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSB7Cj4g IAkJKnNvdXJjZV9yYXRlcyA9IHNrbF9yYXRlczsKPiAgCQlzaXplID0gQVJSQVlfU0laRShza2xf cmF0ZXMpOwo+ICAJfSBlbHNlIHsKPiBAQCAtMTc1Miw3ICsxNzUyLDcgQEAgaW50ZWxfZHBfY29t cHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkgKiBjbG9jayBm b3IgZURQLiBUaGlzIHdpbGwgYWZmZWN0IGNkY2xrIGFzIHdlbGwuCj4gIAkgKi8KPiAgCWlmIChp c19lZHAoaW50ZWxfZHApICYmCj4gLQkgICAgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tB QllMQUtFKGRldl9wcml2KSkpIHsKPiArCSAgICAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQ KGRldl9wcml2KSkpIHsKPiAgCQlpbnQgdmNvOwo+ICAKPiAgCQlzd2l0Y2ggKHBpcGVfY29uZmln LT5wb3J0X2Nsb2NrIC8gMikgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcGxsX21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+ IGluZGV4IGM5MmEyNTUuLmI1ZmFmZDQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBsbF9tZ3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw bGxfbWdyLmMKPiBAQCAtMjAxNSw3ICsyMDE1LDcgQEAgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAljb25zdCBzdHJ1Y3QgZHBsbF9pbmZvICpk cGxsX2luZm87Cj4gIAlpbnQgaTsKPiAgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwg SVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19M UChkZXZfcHJpdikpCj4gIAkJZHBsbF9tZ3IgPSAmc2tsX3BsbF9tZ3I7Cj4gIAllbHNlIGlmIChJ U19HRU45X0xQKGRldl9wcml2KSkKPiAgCQlkcGxsX21nciA9ICZieHRfcGxsX21ncjsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9mYmMuYwo+IGluZGV4IDg5ZmU1YzguLjJhMGI5OGMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9mYmMuYwo+IEBAIC01MzgsNyArNTM4LDcgQEAgc3RhdGljIGludCBmaW5k X2NvbXByZXNzaW9uX3RocmVzaG9sZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAkgKiBJZiB3ZSBlbmFibGUgRkJDIHVzaW5nIGEgQ0ZCIG9uIHRoYXQgbWVtb3J5IHJhbmdl IHdlJ2xsIGdldCBGSUZPCj4gIAkgKiB1bmRlcnJ1bnMsIGV2ZW4gaWYgdGhhdCByYW5nZSBpcyBu b3QgcmVzZXJ2ZWQgYnkgdGhlIEJJT1MuICovCj4gIAlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2 KSB8fAo+IC0JICAgIElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2 KSkKPiArCSAgICAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkpCj4gIAkJ ZW5kID0gZ2d0dC0+c3RvbGVuX3NpemUgLSA4ICogMTAyNCAqIDEwMjQ7Cj4gIAllbHNlCj4gIAkJ ZW5kID0gVTY0X01BWDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYwo+IGluZGV4IGJjZTFiYTgu LmEwZmZhYWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYwo+IEBAIC03NCw3ICs3NCw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ21idXNfcGluICpnZXRfZ21idXNfcGluKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgewo+ICAJaWYgKElTX0dFTjlfTFAoZGV2X3By aXYpKQo+ICAJCXJldHVybiAmZ21idXNfcGluc19ieHRbcGluXTsKPiAtCWVsc2UgaWYgKElTX1NL WUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKPiArCWVsc2UgaWYgKElT X0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpCj4gIAkJcmV0dXJuICZnbWJ1c19w aW5zX3NrbFtwaW5dOwo+ICAJZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiAgCQly ZXR1cm4gJmdtYnVzX3BpbnNfYmR3W3Bpbl07Cj4gQEAgLTg5LDcgKzg5LDcgQEAgYm9vbCBpbnRl bF9nbWJ1c19pc192YWxpZF9waW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAKPiAgCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKPiAgCQlzaXplID0gQVJSQVlfU0laRShn bWJ1c19waW5zX2J4dCk7Cj4gLQllbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19L QUJZTEFLRShkZXZfcHJpdikpCj4gKwllbHNlIGlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNf TFAoZGV2X3ByaXYpKQo+ICAJCXNpemUgPSBBUlJBWV9TSVpFKGdtYnVzX3BpbnNfc2tsKTsKPiAg CWVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gIAkJc2l6ZSA9IEFSUkFZX1NJWkUo Z21idXNfcGluc19iZHcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9tb2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKPiBpbmRleCBjNzg3 ZmM0Li40OTU2NjgxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21v Y3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuYwo+IEBAIC0xNzgs NyArMTc4LDcgQEAgc3RhdGljIGJvb2wgZ2V0X21vY3Nfc2V0dGluZ3Moc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICB7Cj4gIAlib29sIHJlc3VsdCA9IGZhbHNlOwo+ICAKPiAt CWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPiAr CWlmIChJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKSB7Cj4gIAkJdGFibGUt PnNpemUgID0gQVJSQVlfU0laRShza3lsYWtlX21vY3NfdGFibGUpOwo+ICAJCXRhYmxlLT50YWJs ZSA9IHNreWxha2VfbW9jc190YWJsZTsKPiAgCQlyZXN1bHQgPSB0cnVlOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYwo+IGluZGV4IDI0OTYyM2QuLmVjMWNhODMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKPiBAQCAtNTI5Myw4ICs1MjkzLDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9pbml0X3Jw c19mcmVxdWVuY2llcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlkZXZf cHJpdi0+cnBzLm1heF9mcmVxID0gZGV2X3ByaXYtPnJwcy5ycDBfZnJlcTsKPiAgCj4gIAlkZXZf cHJpdi0+cnBzLmVmZmljaWVudF9mcmVxID0gZGV2X3ByaXYtPnJwcy5ycDFfZnJlcTsKPiAtCWlm IChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8Cj4gLQkg ICAgSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwlp ZiAoKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykgJiYgIUlTX0xQKGRldl9wcml2KSkgewo+ICAJ CXUzMiBkZGNjX3N0YXR1cyA9IDA7Cj4gIAo+ICAJCWlmIChzYW5keWJyaWRnZV9wY29kZV9yZWFk KGRldl9wcml2LAo+IEBAIC01MzA3LDcgKzUzMDYsNyBAQCBzdGF0aWMgdm9pZCBnZW42X2luaXRf cnBzX2ZyZXF1ZW5jaWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQkJ CQlkZXZfcHJpdi0+cnBzLm1heF9mcmVxKTsKPiAgCX0KPiAgCj4gLQlpZiAoSVNfU0tZTEFLRShk ZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwlpZiAoSVNfR0VOOShkZXZf cHJpdikgJiYgIUlTX0xQKGRldl9wcml2KSkgewo+ICAJCS8qIFN0b3JlIHRoZSBmcmVxdWVuY3kg dmFsdWVzIGluIDE2LjY2IE1IWiB1bml0cywgd2hpY2ggaXMKPiAgCQkgKiB0aGUgbmF0dXJhbCBo YXJkd2FyZSB1bml0IGZvciBTS0wKPiAgCQkgKi8KPiBAQCAtNTYzNyw3ICs1NjM2LDcgQEAgc3Rh dGljIHZvaWQgZ2VuNl91cGRhdGVfcmluZ19mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgCS8qIGNvbnZlcnQgRERSIGZyZXF1ZW5jeSBmcm9tIHVuaXRzIG9mIDI2Ni42 TUh6IHRvIGJhbmR3aWR0aCAqLwo+ICAJbWluX3JpbmdfZnJlcSA9IG11bHRfZnJhYyhtaW5fcmlu Z19mcmVxLCA4LCAzKTsKPiAgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FC WUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwlpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0xQKGRl dl9wcml2KSkgewo+ICAJCS8qIENvbnZlcnQgR1QgZnJlcXVlbmN5IHRvIDUwIEhaIHVuaXRzICov Cj4gIAkJbWluX2dwdV9mcmVxID0gZGV2X3ByaXYtPnJwcy5taW5fZnJlcSAvIEdFTjlfRlJFUV9T Q0FMRVI7Cj4gIAkJbWF4X2dwdV9mcmVxID0gZGV2X3ByaXYtPnJwcy5tYXhfZnJlcSAvIEdFTjlf RlJFUV9TQ0FMRVI7Cj4gQEAgLTU2NTUsNyArNTY1NCw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfdXBk YXRlX3JpbmdfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkJaW50 IGRpZmYgPSBtYXhfZ3B1X2ZyZXEgLSBncHVfZnJlcTsKPiAgCQl1bnNpZ25lZCBpbnQgaWFfZnJl cSA9IDAsIHJpbmdfZnJlcSA9IDA7Cj4gIAo+IC0JCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8 fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPiArCQlpZiAoSVNfR0VOOShkZXZfcHJpdikgJiYg IUlTX0xQKGRldl9wcml2KSkgewo+ICAJCQkvKgo+ICAJCQkgKiByaW5nX2ZyZXEgPSAyICogR1Qu IHJpbmdfZnJlcSBpcyBpbiAxMDBNSHogdW5pdHMKPiAgCQkJICogTm8gZmxvb3IgcmVxdWlyZWQg Zm9yIHJpbmcgZnJlcXVlbmN5IG9uIFNLTC4KPiBAQCAtNjc3NSw3ICs2Nzc0LDcgQEAgdm9pZCBp bnRlbF9lbmFibGVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Cj4gIAkJZ2VuOV9l bmFibGVfcmM2KGRldl9wcml2KTsKPiAgCQlnZW45X2VuYWJsZV9ycHMoZGV2X3ByaXYpOwo+IC0J CWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCj4gKwkJ aWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpCj4gIAkJCWdlbjZfdXBk YXRlX3JpbmdfZnJlcShkZXZfcHJpdik7Cj4gIAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZf cHJpdikpIHsKPiAgCQlnZW44X2VuYWJsZV9ycHMoZGV2X3ByaXYpOwoKLS0gCkphbmkgTmlrdWxh LCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK