From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: Re: [PATCH 09/19] drm/i915: Make IS_BROADWELL only take dev_priv Date: Wed, 12 Oct 2016 15:07:47 +0300 Message-ID: <20161012120747.vvbove3mylr6lkbd@boom> References: <1476192112-25336-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1476192112-25336-10-git-send-email-tvrtko.ursulin@linux.intel.com> 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 EDE816E83B for ; Wed, 12 Oct 2016 12:08:02 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1476192112-25336-10-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMTEsIDIwMTYgYXQgMDI6MjE6NDJQTSArMDEwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K PiAKPiBTYXZlcyAxODA4IGJ5dGVzIG9mIC5yb2RhdGEgc3RyaW5ncy4KPiAKPiB2MjogQWRkIHBh cmFudGhlc2VzIGFyb3VuZCBkZXZfcHJpdi4gKFZpbGxlIFN5cmphbGEpCj4gCj4gU2lnbmVkLW9m Zi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClJldmlld2Vk LWJ5OiBEYXZpZCBXZWluZWhhbGwgPGRhdmlkLndlaW5laGFsbEBsaW51eC5pbnRlbC5jb20+Cgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCAgNiArKysr LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDYgKysrLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8ICA1ICsrKy0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICB8ICAyICstCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICAgICB8ICA0ICsrLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgIHwgMjEgKysrKysrKysrKystLS0tLS0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgICB8IDE5ICsrKysrKysr KystLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgIHwg MjAgKysrKysrKysrKystLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNy LmMgICAgICAgIHwgIDQgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1l X3BtLmMgfCAgMyArLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgICAg IHwgIDggKysrKy0tLS0KPiAgMTEgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNDYg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggZjZiYThmMjYy MjM4Li44ODk5ODM1ZmZmYWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBAQCAtMTg5 LDEzICsxODksMTUgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGV0ZWN0X3BjaChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAJCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9MUFRfREVWSUNFX0lE X1RZUEUpIHsKPiAgCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9MUFQ7Cj4gIAkJCQlEUk1f REVCVUdfS01TKCJGb3VuZCBMeW54UG9pbnQgUENIXG4iKTsKPiAtCQkJCVdBUk5fT04oIUlTX0hB U1dFTEwoZGV2KSAmJiAhSVNfQlJPQURXRUxMKGRldikpOwo+ICsJCQkJV0FSTl9PTighSVNfSEFT V0VMTChkZXZfcHJpdikgJiYKPiArCQkJCQkhSVNfQlJPQURXRUxMKGRldl9wcml2KSk7Cj4gIAkJ CQlXQVJOX09OKElTX0hTV19VTFQoZGV2X3ByaXYpIHx8Cj4gIAkJCQkJSVNfQkRXX1VMVChkZXZf cHJpdikpOwo+ICAJCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9MUFRfTFBfREVWSUNFX0lE X1RZUEUpIHsKPiAgCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9MUFQ7Cj4gIAkJCQlEUk1f REVCVUdfS01TKCJGb3VuZCBMeW54UG9pbnQgTFAgUENIXG4iKTsKPiAtCQkJCVdBUk5fT04oIUlT X0hBU1dFTEwoZGV2KSAmJiAhSVNfQlJPQURXRUxMKGRldikpOwo+ICsJCQkJV0FSTl9PTighSVNf SEFTV0VMTChkZXZfcHJpdikgJiYKPiArCQkJCQkhSVNfQlJPQURXRUxMKGRldl9wcml2KSk7Cj4g IAkJCQlXQVJOX09OKCFJU19IU1dfVUxUKGRldl9wcml2KSAmJgo+ICAJCQkJCSFJU19CRFdfVUxU KGRldl9wcml2KSk7Cj4gIAkJCX0gZWxzZSBpZiAoaWQgPT0gSU5URUxfUENIX1NQVF9ERVZJQ0Vf SURfVFlQRSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDNmMzIxOTMyZDE4YS4u MTNlNDA5NTU0ZmNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI2NjIsNyAr MjY2Miw3IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewo+ICAjZGVmaW5lIElTX1ZBTExF WVZJRVcoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc192YWxsZXl2aWV3KQo+ICAjZGVmaW5lIElT X0NIRVJSWVZJRVcoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc19jaGVycnl2aWV3KQo+ICAjZGVm aW5lIElTX0hBU1dFTEwoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc19oYXN3ZWxsKQo+IC0jZGVm aW5lIElTX0JST0FEV0VMTChkZXYpCShJTlRFTF9JTkZPKGRldiktPmlzX2Jyb2Fkd2VsbCkKPiAr I2RlZmluZSBJU19CUk9BRFdFTEwoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlzX2Jyb2Fk d2VsbCkKPiAgI2RlZmluZSBJU19TS1lMQUtFKGRldikJKElOVEVMX0lORk8oZGV2KS0+aXNfc2t5 bGFrZSkKPiAgI2RlZmluZSBJU19CUk9YVE9OKGRldikJCShJTlRFTF9JTkZPKGRldiktPmlzX2Jy b3h0b24pCj4gICNkZWZpbmUgSVNfS0FCWUxBS0UoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc19r YWJ5bGFrZSkKPiBAQCAtMjc2OSw4ICsyNzY5LDggQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJs ZSB7Cj4gICNkZWZpbmUgSEFTX0xMQyhkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5oYXNfbGxjKQo+ ICAjZGVmaW5lIEhBU19TTk9PUChkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5oYXNfc25vb3ApCj4g ICNkZWZpbmUgSEFTX0VEUkFNKGRldikJCSghIShfX0k5MTVfXyhkZXYpLT5lZHJhbV9jYXAgJiBF RFJBTV9FTkFCTEVEKSkKPiAtI2RlZmluZSBIQVNfV1QoZGV2KQkJKChJU19IQVNXRUxMKGRldikg fHwgSVNfQlJPQURXRUxMKGRldikpICYmIFwKPiAtCQkJCSBIQVNfRURSQU0oZGV2KSkKPiArI2Rl ZmluZSBIQVNfV1QoZGV2X3ByaXYpCSgoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgXAo+ICsJCQkJ IElTX0JST0FEV0VMTChkZXZfcHJpdikpICYmIEhBU19FRFJBTShkZXZfcHJpdikpCj4gICNkZWZp bmUgSFdTX05FRURTX1BIWVNJQ0FMKGRldikJKElOVEVMX0lORk8oZGV2KS0+aHdzX25lZWRzX3Bo eXNpY2FsKQo+ICAKPiAgI2RlZmluZSBIQVNfSFdfQ09OVEVYVFMoZGV2KQkoSU5URUxfSU5GTyhk ZXYpLT5oYXNfaHdfY29udGV4dHMpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggNmRh ODQxNTAwNTEwLi5hZWZiODhmOTg3YjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBA QCAtMzQ3Myw3ICszNDczLDcgQEAgaW50IGk5MTVfZ2VtX3NldF9jYWNoaW5nX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIAkJbGV2ZWwgPSBJOTE1X0NBQ0hFX0xM QzsKPiAgCQlicmVhazsKPiAgCWNhc2UgSTkxNV9DQUNISU5HX0RJU1BMQVk6Cj4gLQkJbGV2ZWwg PSBIQVNfV1QoZGV2KSA/IEk5MTVfQ0FDSEVfV1QgOiBJOTE1X0NBQ0hFX05PTkU7Cj4gKwkJbGV2 ZWwgPSBIQVNfV1QoZGV2X3ByaXYpID8gSTkxNV9DQUNIRV9XVCA6IEk5MTVfQ0FDSEVfTk9ORTsK PiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTM1MzEs NyArMzUzMSw4IEBAIGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJICogd2l0aCB0aGF0IGJpdCBpbiB0aGUgUFRF IHRvIG1haW4gbWVtb3J5IHdpdGgganVzdCBvbmUgUElQRV9DT05UUk9MLgo+ICAJICovCj4gIAly ZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKG9iaiwKPiAtCQkJCQkgICAgICBI QVNfV1Qob2JqLT5iYXNlLmRldikgPyBJOTE1X0NBQ0hFX1dUIDogSTkxNV9DQUNIRV9OT05FKTsK PiArCQkJCQkgICAgICBIQVNfV1QodG9faTkxNShvYmotPmJhc2UuZGV2KSkgPwo+ICsJCQkJCSAg ICAgIEk5MTVfQ0FDSEVfV1QgOiBJOTE1X0NBQ0hFX05PTkUpOwo+ICAJaWYgKHJldCkgewo+ICAJ CXZtYSA9IEVSUl9QVFIocmV0KTsKPiAgCQlnb3RvIGVycl91bnBpbl9kaXNwbGF5Owo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggMGJiNDIzMmY2NmJjLi4wZjhmMDczYzU4 OWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBAIC0yMTI5LDcgKzIx MjksNyBAQCBzdGF0aWMgdm9pZCBndHRfd3JpdGVfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCSAqIHdvcmthcm91bmRzIGhlcmUgZXZlbiBpZiB0aGV5IGdldCBvdmVyd3Jp dHRlbiBieSBHUFUgcmVzZXQuCj4gIAkgKi8KPiAgCS8qIFdhSW5jcmVhc2VEZWZhdWx0VExCRW50 cmllczpjaHYsYmR3LHNrbCxieHQgKi8KPiAtCWlmIChJU19CUk9BRFdFTEwoZGV2KSkKPiArCWlm IChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICAJCUk5MTVfV1JJVEUoR0VOOF9MM19MUkFfMV9H UEdQVSwgR0VOOF9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0JEVyk7Cj4gIAllbHNlIGlm IChJU19DSEVSUllWSUVXKGRldikpCj4gIAkJSTkxNV9XUklURShHRU44X0wzX0xSQV8xX0dQR1BV LCBHRU44X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfQ0hWKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2NvbG9yLmMKPiBpbmRleCA1MzYyYzA3OTMyZDMuLmJlNzZlZjg4Njc4YyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+IEBAIC01NDAsOCArNTQwLDggQEAgdm9pZCBp bnRlbF9jb2xvcl9pbml0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCX0gZWxzZSBpZiAoSVNf SEFTV0VMTChkZXYpKSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9jc2NfbWF0cml4ID0g aTl4eF9sb2FkX2NzY19tYXRyaXg7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0g aGFzd2VsbF9sb2FkX2x1dHM7Cj4gLQl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpIHx8IElT X1NLWUxBS0UoZGV2KSB8fAo+IC0JCSAgIElTX0JST1hUT04oZGV2KSB8fCBJU19LQUJZTEFLRShk ZXYpKSB7Cj4gKwl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgSVNfU0tZTEFL RShkZXZfcHJpdikgfHwKPiArCQkgICBJU19CUk9YVE9OKGRldl9wcml2KSB8fCBJU19LQUJZTEFL RShkZXZfcHJpdikpIHsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2NzY19tYXRyaXggPSBp OXh4X2xvYWRfY3NjX21hdHJpeDsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBi cm9hZHdlbGxfbG9hZF9sdXRzOwo+ICAJfSBlbHNlIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gaW5kZXggNzg5NDY3NWJmY2I4Li5kMTU5YTMxNTA5OWYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTMxMzksNyArMzEzOSw3IEBAIHN0YXRp YyB2b2lkIGlyb25sYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBy aW1hcnksCj4gIAlkc3BjbnRyID0gRElTUFBMQU5FX0dBTU1BX0VOQUJMRTsKPiAgCWRzcGNudHIg fD0gRElTUExBWV9QTEFORV9FTkFCTEU7Cj4gIAo+IC0JaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJ U19CUk9BRFdFTEwoZGV2KSkKPiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9B RFdFTEwoZGV2X3ByaXYpKQo+ICAJCWRzcGNudHIgfD0gRElTUFBMQU5FX1BJUEVfQ1NDX0VOQUJM RTsKPiAgCj4gIAlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKPiBAQCAtMzE2OCw3ICszMTY4 LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqcHJpbWFyeSwKPiAgCWlmIChmYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JNQVRf TU9EX1hfVElMRUQpCj4gIAkJZHNwY250ciB8PSBESVNQUExBTkVfVElMRUQ7Cj4gIAo+IC0JaWYg KCFJU19IQVNXRUxMKGRldikgJiYgIUlTX0JST0FEV0VMTChkZXYpKQo+ICsJaWYgKCFJU19IQVNX RUxMKGRldl9wcml2KSAmJiAhSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiAgCQlkc3BjbnRyIHw9 IERJU1BQTEFORV9UUklDS0xFX0ZFRURfRElTQUJMRTsKPiAgCj4gIAlpbnRlbF9hZGRfZmJfb2Zm c2V0cygmeCwgJnksIHBsYW5lX3N0YXRlLCAwKTsKPiBAQCAtMzE3OSw3ICszMTc5LDcgQEAgc3Rh dGljIHZvaWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cHJpbWFyeSwKPiAgCWlmIChyb3RhdGlvbiA9PSBEUk1fUk9UQVRFXzE4MCkgewo+ICAJCWRzcGNu dHIgfD0gRElTUFBMQU5FX1JPVEFURV8xODA7Cj4gIAo+IC0JCWlmICghSVNfSEFTV0VMTChkZXYp ICYmICFJU19CUk9BRFdFTEwoZGV2KSkgewo+ICsJCWlmICghSVNfSEFTV0VMTChkZXZfcHJpdikg JiYgIUlTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiAgCQkJeCArPSAoY3J0Y19zdGF0ZS0+cGlw ZV9zcmNfdyAtIDEpOwo+ICAJCQl5ICs9IChjcnRjX3N0YXRlLT5waXBlX3NyY19oIC0gMSk7Cj4g IAkJfQo+IEBAIC0zMTk2LDcgKzMxOTYsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVf cHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAo+ICAJSTkxNV9XUklURShE U1BTVVJGKHBsYW5lKSwKPiAgCQkgICBpbnRlbF9mYl9ndHRfb2Zmc2V0KGZiLCByb3RhdGlvbikg Kwo+ICAJCSAgIGludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0KTsKPiAtCWlmIChJU19IQVNXRUxM KGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpIHsKPiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2 KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gIAkJSTkxNV9XUklURShEU1BPRkZTRVQo cGxhbmUpLCAoeSA8PCAxNikgfCB4KTsKPiAgCX0gZWxzZSB7Cj4gIAkJSTkxNV9XUklURShEU1BU SUxFT0ZGKHBsYW5lKSwgKHkgPDwgMTYpIHwgeCk7Cj4gQEAgLTQ4NzksNyArNDg3OSw3IEBAIHZv aWQgaHN3X2VuYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAkgKi8KPiAgCj4g IAlhc3NlcnRfcGxhbmVfZW5hYmxlZChkZXZfcHJpdiwgY3J0Yy0+cGxhbmUpOwo+IC0JaWYgKElT X0JST0FEV0VMTChkZXYpKSB7Cj4gKwlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ICAJ CW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gIAkJV0FSTl9PTihzYW5keWJy aWRnZV9wY29kZV93cml0ZShkZXZfcHJpdiwgRElTUExBWV9JUFNfQ09OVFJPTCwgMHhjMDAwMDAw MCkpOwo+ICAJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiBAQCAtNDkx MSw3ICs0OTExLDcgQEAgdm9pZCBoc3dfZGlzYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCWFzc2VydF9wbGFuZV9lbmFibGVkKGRldl9wcml2LCBj cnRjLT5wbGFuZSk7Cj4gLQlpZiAoSVNfQlJPQURXRUxMKGRldikpIHsKPiArCWlmIChJU19CUk9B RFdFTEwoZGV2X3ByaXYpKSB7Cj4gIAkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2Nr KTsKPiAgCQlXQVJOX09OKHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2LCBESVNQTEFZ X0lQU19DT05UUk9MLCAwKSk7Cj4gIAkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xv Y2spOwo+IEBAIC01ODU0LDcgKzU4NTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfbWF4 X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJZGV2X3ByaXYtPm1heF9jZGNsa19m cmVxID0gc2tsX2NhbGNfY2RjbGsobWF4X2NkY2xrLCB2Y28pOwo+ICAJfSBlbHNlIGlmIChJU19C Uk9YVE9OKGRldikpIHsKPiAgCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSA2MjQwMDA7Cj4g LQl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpKSAgewo+ICsJfSBlbHNlIGlmIChJU19CUk9B RFdFTEwoZGV2X3ByaXYpKSAgewo+ICAJCS8qCj4gIAkJICogRklYTUUgd2l0aCBleHRyYSBjb29s aW5nIHdlIGNhbiBhbGxvdwo+ICAJCSAqIDU0MCBNSHogZm9yIFVMWCBhbmQgNjc1IE1oeiBmb3Ig VUxULgo+IEBAIC03MDIzLDYgKzcwMjMsNyBAQCBzdGF0aWMgaW50IHBpcGVfcmVxdWlyZWRfZmRp X2xhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICBzdGF0aWMgaW50 IGlyb25sYWtlX2NoZWNrX2ZkaV9sYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBp cGUgcGlwZSwKPiAgCQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln KQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7Cj4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFz ZS5zdGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpvdGhlcl9jcnRjOwo+ICAJc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm90aGVyX2NydGNfc3RhdGU7Cj4gQEAgLTcwMzUsNyArNzAzNiw3IEBA IHN0YXRpYyBpbnQgaXJvbmxha2VfY2hlY2tfZmRpX2xhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGVudW0gcGlwZSBwaXBlLAo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAtCWlm IChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpIHsKPiArCWlmIChJU19IQVNX RUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gIAkJaWYgKHBpcGVf Y29uZmlnLT5mZGlfbGFuZXMgPiAyKSB7Cj4gIAkJCURSTV9ERUJVR19LTVMoIm9ubHkgMiBsYW5l cyBvbiBoYXN3ZWxsLCByZXF1aXJlZDogJWkgbGFuZXNcbiIsCj4gIAkJCQkgICAgICBwaXBlX2Nv bmZpZy0+ZmRpX2xhbmVzKTsKPiBAQCAtOTg4Myw3ICs5ODg0LDcgQEAgaXJvbmxha2VfZ2V0X2lu aXRpYWxfcGxhbmVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJZmItPmJpdHNf cGVyX3BpeGVsID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZm91cmNjLCAwKSAqIDg7Cj4gIAo+ICAJ YmFzZSA9IEk5MTVfUkVBRChEU1BTVVJGKHBpcGUpKSAmIDB4ZmZmZmYwMDA7Cj4gLQlpZiAoSVNf SEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKSB7Cj4gKwlpZiAoSVNfSEFTV0VMTChk ZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ICAJCW9mZnNldCA9IEk5MTVf UkVBRChEU1BPRkZTRVQocGlwZSkpOwo+ICAJfSBlbHNlIHsKPiAgCQlpZiAocGxhbmVfY29uZmln LT50aWxpbmcpCj4gQEAgLTE3MjQ0LDcgKzE3MjQ1LDcgQEAgaW50ZWxfZGlzcGxheV9wcmludF9l cnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAo+ICAJCXJldHVy bjsKPiAgCj4gIAllcnJfcHJpbnRmKG0sICJOdW0gUGlwZXM6ICVkXG4iLCBJTlRFTF9JTkZPKGRl diktPm51bV9waXBlcyk7Cj4gLQlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChk ZXYpKQo+ICsJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJp dikpCj4gIAkJZXJyX3ByaW50ZihtLCAiUFdSX1dFTExfQ1RMMjogJTA4eFxuIiwKPiAgCQkJICAg ZXJyb3ItPnBvd2VyX3dlbGxfZHJpdmVyKTsKPiAgCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIGkp IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCAyZTA2ZGZiNjRiZDQuLjAyZTc0YzQ2 N2E1NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC04MjEsMTUgKzgyMSwxNiBA QCBzdGF0aWMgdWludDMyX3QgZzR4X2dldF9hdXhfc2VuZF9jdGwoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKPiAgCQkJCSAgICAgdWludDMyX3QgYXV4X2Nsb2NrX2RpdmlkZXIpCj4gIHsKPiAg CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0K PiArCQkJdG9faTkxNShpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gIAl1aW50MzJf dCBwcmVjaGFyZ2UsIHRpbWVvdXQ7Cj4gIAo+IC0JaWYgKElTX0dFTjYoZGV2KSkKPiArCWlmIChJ U19HRU42KGRldl9wcml2KSkKPiAgCQlwcmVjaGFyZ2UgPSAzOwo+ICAJZWxzZQo+ICAJCXByZWNo YXJnZSA9IDU7Cj4gIAo+IC0JaWYgKElTX0JST0FEV0VMTChkZXYpICYmIGludGVsX2RpZ19wb3J0 LT5wb3J0ID09IFBPUlRfQSkKPiArCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpICYmIGludGVs X2RpZ19wb3J0LT5wb3J0ID09IFBPUlRfQSkKPiAgCQl0aW1lb3V0ID0gRFBfQVVYX0NIX0NUTF9U SU1FX09VVF82MDB1czsKPiAgCWVsc2UKPiAgCQl0aW1lb3V0ID0gRFBfQVVYX0NIX0NUTF9USU1F X09VVF80MDB1czsKPiBAQCAtMjk5OSwxMCArMzAwMCwxMCBAQCBpbnRlbF9kcF92b2x0YWdlX21h eChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB1aW50OF90Cj4gIGludGVsX2RwX3ByZV9l bXBoYXNpc19tYXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDhfdCB2b2x0YWdlX3N3 aW5nKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGlu dGVsX2RwKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo aW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2Rp Z19wb3J0KGludGVsX2RwKS0+cG9ydDsKPiAgCj4gLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4g Pj0gOSkgewo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ICAJCXN3aXRjaCAo dm9sdGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewo+ICAJCWNhc2Ug RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+ICAJCQlyZXR1cm4gRFBfVFJBSU5fUFJF X0VNUEhfTEVWRUxfMzsKPiBAQCAtMzAxNSw3ICszMDE2LDcgQEAgaW50ZWxfZHBfcHJlX2VtcGhh c2lzX21heChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90IHZvbHRhZ2Vfc3dpbmcp Cj4gIAkJZGVmYXVsdDoKPiAgCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA7Cj4g IAkJfQo+IC0JfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikp IHsKPiArCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRl dl9wcml2KSkgewo+ICAJCXN3aXRjaCAodm9sdGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0Vf U1dJTkdfTUFTSykgewo+ICAJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+ ICAJCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMzsKPiBAQCAtMzAyNyw3ICszMDI4 LDcgQEAgaW50ZWxfZHBfcHJlX2VtcGhhc2lzX21heChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LCB1aW50OF90IHZvbHRhZ2Vfc3dpbmcpCj4gIAkJZGVmYXVsdDoKPiAgCQkJcmV0dXJuIERQX1RS QUlOX1BSRV9FTVBIX0xFVkVMXzA7Cj4gIAkJfQo+IC0JfSBlbHNlIGlmIChJU19WQUxMRVlWSUVX KGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwl9IGVsc2UgaWYgKElTX1ZBTExFWVZJ RVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJc3dpdGNoICh2 b2x0YWdlX3N3aW5nICYgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNLKSB7Cj4gIAkJY2FzZSBE UF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzA6Cj4gIAkJCXJldHVybiBEUF9UUkFJTl9QUkVf RU1QSF9MRVZFTF8zOwo+IEBAIC0zMDM5LDcgKzMwNDAsNyBAQCBpbnRlbF9kcF9wcmVfZW1waGFz aXNfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQ4X3Qgdm9sdGFnZV9zd2luZykK PiAgCQlkZWZhdWx0Ogo+ICAJCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDsKPiAg CQl9Cj4gLQl9IGVsc2UgaWYgKElTX0dFTjcoZGV2KSAmJiBwb3J0ID09IFBPUlRfQSkgewo+ICsJ fSBlbHNlIGlmIChJU19HRU43KGRldl9wcml2KSAmJiBwb3J0ID09IFBPUlRfQSkgewo+ICAJCXN3 aXRjaCAodm9sdGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewo+ICAJ CWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+ICAJCQlyZXR1cm4gRFBfVFJB SU5fUFJFX0VNUEhfTEVWRUxfMjsKPiBAQCAtNTY0OCw3ICs1NjQ5LDcgQEAgaW50ZWxfZHBfaW5p dF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4g IAkvKiBpbnRlbF9kcCB2ZnVuY3MgKi8KPiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5 KQo+ICAJCWludGVsX2RwLT5nZXRfYXV4X2Nsb2NrX2RpdmlkZXIgPSBza2xfZ2V0X2F1eF9jbG9j a19kaXZpZGVyOwo+IC0JZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChk ZXYpKQo+ICsJZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRl dl9wcml2KSkKPiAgCQlpbnRlbF9kcC0+Z2V0X2F1eF9jbG9ja19kaXZpZGVyID0gaHN3X2dldF9h dXhfY2xvY2tfZGl2aWRlcjsKPiAgCWVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKQo+ ICAJCWludGVsX2RwLT5nZXRfYXV4X2Nsb2NrX2RpdmlkZXIgPSBpbGtfZ2V0X2F1eF9jbG9ja19k aXZpZGVyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IDkxNTU3MzVkMDFkZi4uM2Jh OTUwMmNmMmMyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTIxNTcsNyArMjE1 Nyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3JlYWRfd21fbGF0ZW5jeShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1aW50MTZfdCB3bVs4XSkKPiAgCQkJfQo+ICAJCX0KPiAgCj4gLQl9IGVsc2UgaWYg KElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJ U19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gIAkJdWlu dDY0X3Qgc3NrcGQgPSBJOTE1X1JFQUQ2NChNQ0hfU1NLUEQpOwo+ICAKPiAgCQl3bVswXSA9IChz c2twZCA+PiA1NikgJiAweEZGOwo+IEBAIC0yMjA1LDEyICsyMjA1LDE0IEBAIHN0YXRpYyB2b2lk IGludGVsX2ZpeHVwX2N1cl93bV9sYXRlbmN5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgCj4gIGludCBpbGtfd21fbWF4X2xldmVsKGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gIHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiArCj4gIAkvKiBob3cgbWFueSBXTSBsZXZlbHMgYXJlIHdlIGV4cGVjdGluZyAq Lwo+IC0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCj4gKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5KQo+ICAJCXJldHVybiA3Owo+IC0JZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYp IHx8IElTX0JST0FEV0VMTChkZXYpKQo+ICsJZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikg fHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiAgCQlyZXR1cm4gNDsKPiAtCWVsc2UgaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuID49IDYpCj4gKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDYpCj4gIAkJcmV0dXJuIDM7Cj4gIAllbHNlCj4gIAkJcmV0dXJuIDI7Cj4gQEAgLTIzOTMs NyArMjM5NSw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3N0YXRlKQo+ICAJbWVtc2V0KCZwaXBlX3dtLT53bSwgMCwgc2l6ZW9mKHBp cGVfd20tPndtKSk7Cj4gIAlwaXBlX3dtLT53bVswXSA9IHBpcGVfd20tPnJhd193bVswXTsKPiAg Cj4gLQlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKQo+ICsJaWYgKElT X0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gIAkJcGlwZV93 bS0+bGluZXRpbWUgPSBoc3dfY29tcHV0ZV9saW5ldGltZV93bShjc3RhdGUpOwo+ICAKPiAgCWlm ICghaWxrX3ZhbGlkYXRlX3BpcGVfd20oZGV2LCBwaXBlX3dtKSkKPiBAQCAtMjU4MCw3ICsyNTgy LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbGtfd21fbHBfbGF0ZW5jeShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBpbnQgbGV2ZWwpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCj4gLQlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElT X0JST0FEV0VMTChkZXYpKQo+ICsJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FE V0VMTChkZXZfcHJpdikpCj4gIAkJcmV0dXJuIDIgKiBsZXZlbDsKPiAgCWVsc2UKPiAgCQlyZXR1 cm4gZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5W2xldmVsXTsKPiBAQCAtMjgwNCw3ICsyODA2LDcg QEAgc3RhdGljIHZvaWQgaWxrX3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIAkJSTkxNV9XUklURShQSVBFX1dNX0xJTkVUSU1FKFBJUEVfQyksIHJl c3VsdHMtPndtX2xpbmV0aW1lWzJdKTsKPiAgCj4gIAlpZiAoZGlydHkgJiBXTV9ESVJUWV9EREIp IHsKPiAtCQlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKSB7Cj4gKwkJ aWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiAg CQkJdmFsID0gSTkxNV9SRUFEKFdNX01JU0MpOwo+ICAJCQlpZiAocmVzdWx0cy0+cGFydGl0aW9u aW5nID09IElOVEVMX0REQl9QQVJUXzFfMikKPiAgCQkJCXZhbCAmPSB+V01fTUlTQ19EQVRBX1BB UlRJVElPTl81XzY7Cj4gQEAgLTQ0MDcsNyArNDQwOSw3IEBAIHN0YXRpYyB2b2lkIGlsa19waXBl X3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAl9Owo+ICAKPiAgCWh3 LT53bV9waXBlW3BpcGVdID0gSTkxNV9SRUFEKHdtMF9waXBlX3JlZ1twaXBlXSk7Cj4gLQlpZiAo SVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKQo+ICsJaWYgKElTX0hBU1dFTEwo ZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gIAkJaHctPndtX2xpbmV0aW1l W3BpcGVdID0gSTkxNV9SRUFEKFBJUEVfV01fTElORVRJTUUocGlwZSkpOwo+ICAKPiAgCW1lbXNl dChhY3RpdmUsIDAsIHNpemVvZigqYWN0aXZlKSk7Cj4gQEAgLTQ2MTUsNyArNDYxNyw3IEBAIHZv aWQgaWxrX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCWh3LT53 bV9scF9zcHJbMl0gPSBJOTE1X1JFQUQoV00zU19MUF9JVkIpOwo+ICAJfQo+ICAKPiAtCWlmIChJ U19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpCj4gKwlpZiAoSVNfSEFTV0VMTChk ZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiAgCQlody0+cGFydGl0aW9uaW5n ID0gKEk5MTVfUkVBRChXTV9NSVNDKSAmIFdNX01JU0NfREFUQV9QQVJUSVRJT05fNV82KSA/Cj4g IAkJCUlOVEVMX0REQl9QQVJUXzVfNiA6IElOVEVMX0REQl9QQVJUXzFfMjsKPiAgCWVsc2UgaWYg KElTX0lWWUJSSURHRShkZXZfcHJpdikpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiBpbmRl eCA5ZTJmYmFjOTc3NmUuLmQwNjY3ZjlkOTE3OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wc3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bz ci5jCj4gQEAgLTgyNywxNCArODI3LDE0IEBAIHZvaWQgaW50ZWxfcHNyX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCj4gIAkvKiBQZXIgcGxhdGZvcm0gZGVmYXVsdCAqLwo+ICAJaWYg KGk5MTUuZW5hYmxlX3BzciA9PSAtMSkgewo+IC0JCWlmIChJU19IQVNXRUxMKGRldikgfHwgSVNf QlJPQURXRUxMKGRldikpCj4gKwkJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FE V0VMTChkZXZfcHJpdikpCj4gIAkJCWk5MTUuZW5hYmxlX3BzciA9IDE7Cj4gIAkJZWxzZQo+ICAJ CQlpOTE1LmVuYWJsZV9wc3IgPSAwOwo+ICAJfQo+ICAKPiAgCS8qIFNldCBsaW5rX3N0YW5kYnkg eCBsaW5rX29mZiBkZWZhdWx0cyAqLwo+IC0JaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9B RFdFTEwoZGV2KSkKPiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKQo+ICAJCS8qIEhTVyBhbmQgQkRXIHJlcXVpcmUgd29ya2Fyb3VuZHMgdGhhdCB3 ZSBkb24ndCBpbXBsZW1lbnQuICovCj4gIAkJZGV2X3ByaXYtPnBzci5saW5rX3N0YW5kYnkgPSBm YWxzZTsKPiAgCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRl dikpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IGluZGV4IGVkMWZh ZjE0Zjc3Ny4uNzdlZjAzY2I2MTYzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1 bnRpbWVfcG0uYwo+IEBAIC0yODgsNyArMjg4LDYgQEAgdm9pZCBpbnRlbF9kaXNwbGF5X3NldF9p bml0X3Bvd2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgc3RhdGljIHZv aWQgaHN3X3Bvd2VyX3dlbGxfcG9zdF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICB7Cj4gIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRl djsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiAgCj4gIAkv Kgo+ICAJICogQWZ0ZXIgd2UgcmUtZW5hYmxlIHRoZSBwb3dlciB3ZWxsLCBpZiB3ZSB0b3VjaCBW R0EgcmVnaXN0ZXIgMHgzZDUKPiBAQCAtMzA0LDcgKzMwMyw3IEBAIHN0YXRpYyB2b2lkIGhzd19w b3dlcl93ZWxsX3Bvc3RfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgCW91dGIoaW5iKFZHQV9NU1JfUkVBRCksIFZHQV9NU1JfV1JJVEUpOwo+ICAJdmdhX3B1dChw ZGV2LCBWR0FfUlNSQ19MRUdBQ1lfSU8pOwo+ICAKPiAtCWlmIChJU19CUk9BRFdFTEwoZGV2KSkK PiArCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICAJCWdlbjhfaXJxX3Bvd2VyX3dlbGxf cG9zdF9lbmFibGUoZGV2X3ByaXYsCj4gIAkJCQkJCTEgPDwgUElQRV9DIHwgMSA8PCBQSVBFX0Ip Owo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCBkMGY3OThjZTZi YjIuLmZlZmQzMDM0YWVhZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4g QEAgLTU0MiwxMiArNTQyLDEyIEBAIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4gIAlpZiAoZmItPm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVE KQo+ICAJCXNwcmN0bCB8PSBTUFJJVEVfVElMRUQ7Cj4gIAo+IC0JaWYgKElTX0hBU1dFTEwoZGV2 KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKPiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJ U19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICAJCXNwcmN0bCAmPSB+U1BSSVRFX1RSSUNLTEVfRkVF RF9ESVNBQkxFOwo+ICAJZWxzZQo+ICAJCXNwcmN0bCB8PSBTUFJJVEVfVFJJQ0tMRV9GRUVEX0RJ U0FCTEU7Cj4gIAo+IC0JaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkK PiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ ICAJCXNwcmN0bCB8PSBTUFJJVEVfUElQRV9DU0NfRU5BQkxFOwo+ICAKPiAgCS8qIFNpemVzIGFy ZSAwIGJhc2VkICovCj4gQEAgLTU2Niw3ICs1NjYsNyBAQCBpdmJfdXBkYXRlX3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCXNwcmN0bCB8PSBTUFJJVEVfUk9UQVRFXzE4MDsKPiAg Cj4gIAkJLyogSFNXIGFuZCBCRFcgZG9lcyB0aGlzIGF1dG9tYWdpY2FsbHkgaW4gaGFyZHdhcmUg Ki8KPiAtCQlpZiAoIUlTX0hBU1dFTEwoZGV2KSAmJiAhSVNfQlJPQURXRUxMKGRldikpIHsKPiAr CQlpZiAoIUlTX0hBU1dFTEwoZGV2X3ByaXYpICYmICFJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7 Cj4gIAkJCXggKz0gc3JjX3c7Cj4gIAkJCXkgKz0gc3JjX2g7Cj4gIAkJfQo+IEBAIC01OTAsNyAr NTkwLDcgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCj4g IAkvKiBIU1cgY29uc29saWRhdGVzIFNQUlRJTEVPRkYgYW5kIFNQUkxJTk9GRiBpbnRvIGEgc2lu Z2xlIFNQUk9GRlNFVAo+ICAJICogcmVnaXN0ZXIgKi8KPiAtCWlmIChJU19IQVNXRUxMKGRldikg fHwgSVNfQlJPQURXRUxMKGRldikpCj4gKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNf QlJPQURXRUxMKGRldl9wcml2KSkKPiAgCQlJOTE1X1dSSVRFKFNQUk9GRlNFVChwaXBlKSwgKHkg PDwgMTYpIHwgeCk7Cj4gIAllbHNlIGlmIChmYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JNQVRf TU9EX1hfVElMRUQpCj4gIAkJSTkxNV9XUklURShTUFJUSUxFT0ZGKHBpcGUpLCAoeSA8PCAxNikg fCB4KTsKPiAtLSAKPiAyLjcuNAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK