From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: Re: [PATCH 06/13] drm: Convert all helpers to drm_connector_list_iter Date: Thu, 15 Dec 2016 09:34:31 -0500 Message-ID: <58f39eee-9db3-984d-214d-67b2c703041f@amd.com> References: <20161213230814.19598-1-daniel.vetter@ffwll.ch> <20161213230814.19598-7-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0041.outbound.protection.outlook.com [104.47.33.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3D0EA6E082 for ; Thu, 15 Dec 2016 14:34:41 +0000 (UTC) In-Reply-To: <20161213230814.19598-7-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , DRI Development Cc: Intel Graphics Development List-Id: dri-devel@lists.freedesktop.org T24gMjAxNi0xMi0xMyAwNjowOCBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBNb3N0bHkgbm90 aGluZyBzcGVjaWFsIChleGNlcHQgbWFraW5nIHN1cmUgdGhhdCByZWFsbHkgYWxsIGVycm9yIHBh dGhzCj4gYW5kIGZyaWVuZHMgY2FsbCBpdGVyX3B1dCkuCj4KPiB2MjogRG9uJ3QgZm9yZ2V0IHRo ZSByYXcgY29ubmVjdG9yX2xpc3Qgd2Fsa2luZyBpbgo+IGRybV9oZWxwZXJfbW92ZV9wYW5lbF9j b25uZWN0b3JzX3RvX2hlYWQuIFRoYXQgb25lIHVuZm9ydHVuYXRlbHkgY2FuJ3QKPiBiZSBjb252 ZXJ0ZWQgdG8gdGhlIGl0ZXJhdG9yIGhlbHBlcnMsIGJ1dCBzaW5jZSBpdCdzIGp1c3Qgc29tZSBs aXN0Cj4gc3BsaWNpbmcgYmVzdCB0byBqdXN0IHdyYXAgdGhlIGVudGlyZSB0aGluZyB1cCBpbiBv bmUgY3JpdGljYWwKPiBzZWN0aW9uLgo+Cj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8 ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMgIHwgMzkgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMgICAgfCA0OSArKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyAgICAgIHwg MTIgKysrKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYyB8ICAy ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMgICB8ICA1ICsrKy0KPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyAgIHwgMTggKysrKysrKystLS0tLQo+ ICA2IGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCAyMzc2N2RmNzI2MTUuLmUyZTE1 YTk5MDNhOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTk0LDkg Kzk0LDEwIEBAIHN0YXRpYyBpbnQgaGFuZGxlX2NvbmZsaWN0aW5nX2VuY29kZXJzKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgewo+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICsJ c3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKPiAgCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcjsKPiAgCXVuc2lnbmVkIGVuY29kZXJfbWFzayA9IDA7Cj4gLQlpbnQg aSwgcmV0Owo+ICsJaW50IGksIHJldCA9IDA7Cj4KPiAgCS8qCj4gIAkgKiBGaXJzdCBsb29wLCBm aW5kIGFsbCBuZXdseSBhc3NpZ25lZCBlbmNvZGVycyBmcm9tIHRoZSBjb25uZWN0b3JzCj4gQEAg LTE0NCw3ICsxNDUsOCBAQCBzdGF0aWMgaW50IGhhbmRsZV9jb25mbGljdGluZ19lbmNvZGVycyhz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkgKiBhbmQgdGhlIGNydGMgaXMgZGlz YWJsZWQgaWYgbm8gZW5jb2RlciBpcyBsZWZ0LiBUaGlzIHByZXNlcnZlcwo+ICAJICogY29tcGF0 aWJpbGl0eSB3aXRoIHRoZSBsZWdhY3kgc2V0X2NvbmZpZyBiZWhhdmlvci4KPiAgCSAqLwo+IC0J ZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcihjb25uZWN0b3IsIHN0YXRlLT5kZXYpIHsKPiArCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX2dldChzdGF0ZS0+ZGV2LCAmY29ubl9pdGVyKTsKPiArCWRybV9m b3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKPiAgCQlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4KPiAgCQlpZiAoZHJtX2F0b21pY19nZXRf ZXhpc3RpbmdfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpKQo+IEBAIC0xNjAsMTIg KzE2MiwxNSBAQCBzdGF0aWMgaW50IGhhbmRsZV9jb25mbGljdGluZ19lbmNvZGVycyhzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCQkJIGNvbm5lY3Rvci0+c3RhdGUtPmNydGMt PmJhc2UuaWQsCj4gIAkJCQkJIGNvbm5lY3Rvci0+c3RhdGUtPmNydGMtPm5hbWUsCj4gIAkJCQkJ IGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lKTsKPiAtCQkJcmV0dXJuIC1FSU5W QUw7Cj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4gKwkJCWdvdG8gb3V0Owo+ICAJCX0KPgo+ICAJCWNv bm5fc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rv cik7Cj4gLQkJaWYgKElTX0VSUihjb25uX3N0YXRlKSkKPiAtCQkJcmV0dXJuIFBUUl9FUlIoY29u bl9zdGF0ZSk7Cj4gKwkJaWYgKElTX0VSUihjb25uX3N0YXRlKSkgewo+ICsJCQlyZXQgPSBQVFJf RVJSKGNvbm5fc3RhdGUpOwo+ICsJCQlnb3RvIG91dDsKPiArCQl9Cj4KPiAgCQlEUk1fREVCVUdf QVRPTUlDKCJbRU5DT0RFUjolZDolc10gaW4gdXNlIG9uIFtDUlRDOiVkOiVzXSwgZGlzYWJsaW5n IFtDT05ORUNUT1I6JWQ6JXNdXG4iLAo+ICAJCQkJIGVuY29kZXItPmJhc2UuaWQsIGVuY29kZXIt Pm5hbWUsCj4gQEAgLTE3NiwxOSArMTgxLDIxIEBAIHN0YXRpYyBpbnQgaGFuZGxlX2NvbmZsaWN0 aW5nX2VuY29kZXJzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPgo+ICAJCXJldCA9 IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3Rvcihjb25uX3N0YXRlLCBOVUxMKTsKPiAg CQlpZiAocmV0KQo+IC0JCQlyZXR1cm4gcmV0Owo+ICsJCQlnb3RvIG91dDsKPgo+ICAJCWlmICgh Y3J0Y19zdGF0ZS0+Y29ubmVjdG9yX21hc2spIHsKPiAgCQkJcmV0ID0gZHJtX2F0b21pY19zZXRf bW9kZV9wcm9wX2Zvcl9jcnRjKGNydGNfc3RhdGUsCj4gIAkJCQkJCQkJTlVMTCk7Cj4gIAkJCWlm IChyZXQgPCAwKQo+IC0JCQkJcmV0dXJuIHJldDsKPiArCQkJCWdvdG8gb3V0Owo+Cj4gIAkJCWNy dGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOwo+ICAJCX0KPiAgCX0KPiArb3V0Ogo+ICsJZHJtX2Nv bm5lY3Rvcl9saXN0X2l0ZXJfcHV0KCZjb25uX2l0ZXIpOwo+Cj4gLQlyZXR1cm4gMDsKPiArCXJl dHVybiByZXQ7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZAo+IEBAIC0yNDQyLDYgKzI0NDksNyBAQCBp bnQgZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgewo+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ICAJc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm47Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9p dGVyOwo+ICAJaW50IGVycjsKPgo+ICAJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRl dik7Cj4gQEAgLTI0NTAsNyArMjQ1OCw4IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxl X2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Cj4gIAlzdGF0ZS0+YWNxdWlyZV9jdHggPSBj dHg7Cj4KPiAtCWRybV9mb3JfZWFjaF9jb25uZWN0b3IoY29ubiwgZGV2KSB7Cj4gKwlkcm1fY29u bmVjdG9yX2xpc3RfaXRlcl9nZXQoZGV2LCAmY29ubl9pdGVyKTsKPiArCWRybV9mb3JfZWFjaF9j b25uZWN0b3JfaXRlcihjb25uLCAmY29ubl9pdGVyKSB7Cj4gIAkJc3RydWN0IGRybV9jcnRjICpj cnRjID0gY29ubi0+c3RhdGUtPmNydGM7Cj4gIAkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlOwo+Cj4gQEAgLTI0NjgsNiArMjQ3Nyw3IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9k aXNhYmxlX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Cj4gIAllcnIgPSBkcm1fYXRvbWlj X2NvbW1pdChzdGF0ZSk7Cj4gIGZyZWU6Cj4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9wdXQo JmNvbm5faXRlcik7Cj4gIAlkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gIAlyZXR1cm4g ZXJyOwo+ICB9Cj4gQEAgLTI4NDAsNiArMjg1MCw3IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9j b25uZWN0b3JfZHBtcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJc3RydWN0 IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKnRtcF9jb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOwo+ICAJaW50IHJldDsKPiAgCWJvb2wgYWN0aXZl ID0gZmFsc2U7Cj4gIAlpbnQgb2xkX21vZGUgPSBjb25uZWN0b3ItPmRwbXM7Cj4gQEAgLTI4Njcs NyArMjg3OCw4IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHBtcyhzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Cj4gIAlXQVJOX09OKCFkcm1fbW9kZXNldF9pc19s b2NrZWQoJmNvbmZpZy0+Y29ubmVjdGlvbl9tdXRleCkpOwo+Cj4gLQlkcm1fZm9yX2VhY2hfY29u bmVjdG9yKHRtcF9jb25uZWN0b3IsIGNvbm5lY3Rvci0+ZGV2KSB7Cj4gKwlkcm1fY29ubmVjdG9y X2xpc3RfaXRlcl9nZXQoY29ubmVjdG9yLT5kZXYsICZjb25uX2l0ZXIpOwo+ICsJZHJtX2Zvcl9l YWNoX2Nvbm5lY3Rvcl9pdGVyKHRtcF9jb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKPiAgCQlpZiAo dG1wX2Nvbm5lY3Rvci0+c3RhdGUtPmNydGMgIT0gY3J0YykKPiAgCQkJY29udGludWU7Cj4KPiBA QCAtMjg3Niw2ICsyODg4LDcgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1z KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCWJyZWFrOwo+ICAJCX0KPiAg CX0KPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX3B1dCgmY29ubl9pdGVyKTsKPiAgCWNydGNf c3RhdGUtPmFjdGl2ZSA9IGFjdGl2ZTsKPgo+ICAJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3Rh dGUpOwo+IEBAIC0zMjUzLDYgKzMyNjYsNyBAQCBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVf c3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgewo+ICAJc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlOwo+ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47Cj4gKwlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOwo+ICAJc3RydWN0IGRybV9wbGFuZSAq cGxhbmU7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gIAlpbnQgZXJyID0gMDsKPiBAQCAt MzI4MywxNSArMzI5NywxOCBAQCBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQl9Cj4gIAl9Cj4KPiAtCWRybV9mb3JfZWFjaF9jb25u ZWN0b3IoY29ubiwgZGV2KSB7Cj4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9nZXQoZGV2LCAm Y29ubl9pdGVyKTsKPiArCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uLCAmY29ubl9p dGVyKSB7Cj4gIAkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Cj4KPiAg CQljb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25u KTsKPiAgCQlpZiAoSVNfRVJSKGNvbm5fc3RhdGUpKSB7Cj4gIAkJCWVyciA9IFBUUl9FUlIoY29u bl9zdGF0ZSk7Cj4gKwkJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX3B1dCgmY29ubl9pdGVyKTsK PiAgCQkJZ290byBmcmVlOwo+ICAJCX0KPiAgCX0KPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVy X3B1dCgmY29ubl9pdGVyKTsKPgo+ICAJLyogY2xlYXIgdGhlIGFjcXVpcmUgY29udGV4dCBzbyB0 aGF0IGl0IGlzbid0IGFjY2lkZW50YWxseSByZXVzZWQgKi8KPiAgCXN0YXRlLT5hY3F1aXJlX2N0 eCA9IE5VTEw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwo+IGluZGV4IDVkMmNiMTM4ZWJh Ni4uNDc2ZTZkNGI5NWY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19o ZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwo+IEBAIC04 OCw2ICs4OCw3IEBACj4gIGJvb2wgZHJtX2hlbHBlcl9lbmNvZGVyX2luX3VzZShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3I7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOwo+ICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPgo+ICAJLyoKPiBAQCAtOTksOSAr MTAwLDE1IEBAIGJvb2wgZHJtX2hlbHBlcl9lbmNvZGVyX2luX3VzZShzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpCj4gIAkJV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXYtPm1v ZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpKTsKPiAgCX0KPgo+IC0JZHJtX2Zvcl9lYWNoX2Nv bm5lY3Rvcihjb25uZWN0b3IsIGRldikKPiAtCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVu Y29kZXIpCj4gKwo+ICsJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZ2V0KGRldiwgJmNvbm5faXRl cik7Cj4gKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmY29ubl9pdGVy KSB7Cj4gKwkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7Cj4gIAkJCXJldHVy biB0cnVlOwo+ICsJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9wdXQoJmNvbm5faXRlcik7CgpQ cm9iYWJseSBzaG91bGQgcHV0IHRoZSBjb25uX2l0ZXIgYmVmb3JlIHJldHVybmluZyA6KQoKV2l0 aCB0aGF0IGZpeGVkIHRoaXMgaXMKUmV2aWV3ZWQtYnk6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53 ZW50bGFuZEBhbWQuY29tPgoKSGFycnkKCgo+ICsJCX0KPiArCX0KPiArCWRybV9jb25uZWN0b3Jf bGlzdF9pdGVyX3B1dCgmY29ubl9pdGVyKTsKPiAgCXJldHVybiBmYWxzZTsKPiAgfQo+ICBFWFBP UlRfU1lNQk9MKGRybV9oZWxwZXJfZW5jb2Rlcl9pbl91c2UpOwo+IEBAIC00MzYsMTAgKzQ0Mywx MyBAQCBkcm1fY3J0Y19oZWxwZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4KPiAg CS8qIERlY291cGxlIGFsbCBlbmNvZGVycyBhbmQgdGhlaXIgYXR0YWNoZWQgY29ubmVjdG9ycyBm cm9tIHRoaXMgY3J0YyAqLwo+ICAJZHJtX2Zvcl9lYWNoX2VuY29kZXIoZW5jb2RlciwgZGV2KSB7 Cj4gKwkJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKPiArCj4gIAkJ aWYgKGVuY29kZXItPmNydGMgIT0gY3J0YykKPiAgCQkJY29udGludWU7Cj4KPiAtCQlkcm1fZm9y X2VhY2hfY29ubmVjdG9yKGNvbm5lY3RvciwgZGV2KSB7Cj4gKwkJZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXJfZ2V0KGRldiwgJmNvbm5faXRlcik7Cj4gKwkJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9p dGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgewo+ICAJCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVy ICE9IGVuY29kZXIpCj4gIAkJCQljb250aW51ZTsKPgo+IEBAIC00NTYsNiArNDY2LDcgQEAgZHJt X2NydGNfaGVscGVyX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJCQkvKiB3ZSBr ZWVwIGEgcmVmZXJlbmNlIHdoaWxlIHRoZSBlbmNvZGVyIGlzIGJvdW5kICovCj4gIAkJCWRybV9j b25uZWN0b3JfdW5yZWZlcmVuY2UoY29ubmVjdG9yKTsKPiAgCQl9Cj4gKwkJZHJtX2Nvbm5lY3Rv cl9saXN0X2l0ZXJfcHV0KCZjb25uX2l0ZXIpOwo+ICAJfQo+Cj4gIAlfX2RybV9oZWxwZXJfZGlz YWJsZV91bnVzZWRfZnVuY3Rpb25zKGRldik7Cj4gQEAgLTUwNyw2ICs1MTgsNyBAQCBpbnQgZHJt X2NydGNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KQo+ICAJYm9v bCBtb2RlX2NoYW5nZWQgPSBmYWxzZTsgLyogaWYgdHJ1ZSBkbyBhIGZ1bGwgbW9kZSBzZXQgKi8K PiAgCWJvb2wgZmJfY2hhbmdlZCA9IGZhbHNlOyAvKiBpZiB0cnVlIGFuZCAhbW9kZV9jaGFuZ2Vk IGp1c3QgZG8gYSBmbGlwICovCj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ ICsJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKPiAgCWludCBjb3Vu dCA9IDAsIHJvLCBmYWlsID0gMDsKPiAgCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVu Y3MgKmNydGNfZnVuY3M7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfc2V0IHNhdmVfc2V0Owo+IEBAIC01 NzEsOSArNTgzLDEwIEBAIGludCBkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJt X21vZGVfc2V0ICpzZXQpCj4gIAl9Cj4KPiAgCWNvdW50ID0gMDsKPiAtCWRybV9mb3JfZWFjaF9j b25uZWN0b3IoY29ubmVjdG9yLCBkZXYpIHsKPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2dl dChkZXYsICZjb25uX2l0ZXIpOwo+ICsJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5l Y3RvciwgJmNvbm5faXRlcikKPiAgCQlzYXZlX2Nvbm5lY3Rvcl9lbmNvZGVyc1tjb3VudCsrXSA9 IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPiAtCX0KPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX3B1 dCgmY29ubl9pdGVyKTsKPgo+ICAJc2F2ZV9zZXQuY3J0YyA9IHNldC0+Y3J0YzsKPiAgCXNhdmVf c2V0Lm1vZGUgPSAmc2V0LT5jcnRjLT5tb2RlOwo+IEBAIC02MTYsNyArNjI5LDggQEAgaW50IGRy bV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKPgo+ICAJ LyogYSkgdHJhdmVyc2UgcGFzc2VkIGluIGNvbm5lY3RvciBsaXN0IGFuZCBnZXQgZW5jb2RlcnMg Zm9yIHRoZW0gKi8KPiAgCWNvdW50ID0gMDsKPiAtCWRybV9mb3JfZWFjaF9jb25uZWN0b3IoY29u bmVjdG9yLCBkZXYpIHsKPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2dldChkZXYsICZjb25u X2l0ZXIpOwo+ICsJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5f aXRlcikgewo+ICAJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAqY29u bmVjdG9yX2Z1bmNzID0KPiAgCQkJY29ubmVjdG9yLT5oZWxwZXJfcHJpdmF0ZTsKPiAgCQluZXdf ZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKPiBAQCAtNjQ5LDYgKzY2Myw3IEBAIGludCBk cm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCj4gIAkJ CWNvbm5lY3Rvci0+ZW5jb2RlciA9IG5ld19lbmNvZGVyOwo+ICAJCX0KPiAgCX0KPiArCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX3B1dCgmY29ubl9pdGVyKTsKPgo+ICAJaWYgKGZhaWwpIHsKPiAg CQlyZXQgPSAtRUlOVkFMOwo+IEBAIC02NTYsNyArNjcxLDggQEAgaW50IGRybV9jcnRjX2hlbHBl cl9zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKPiAgCX0KPgo+ICAJY291bnQg PSAwOwo+IC0JZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcihjb25uZWN0b3IsIGRldikgewo+ICsJZHJt X2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZ2V0KGRldiwgJmNvbm5faXRlcik7Cj4gKwlkcm1fZm9yX2Vh Y2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmY29ubl9pdGVyKSB7Cj4gIAkJaWYgKCFjb25u ZWN0b3ItPmVuY29kZXIpCj4gIAkJCWNvbnRpbnVlOwo+Cj4gQEAgLTY3NCw2ICs2OTAsNyBAQCBp bnQgZHJtX2NydGNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KQo+ ICAJCWlmIChuZXdfY3J0YyAmJgo+ICAJCSAgICAhZHJtX2VuY29kZXJfY3J0Y19vayhjb25uZWN0 b3ItPmVuY29kZXIsIG5ld19jcnRjKSkgewo+ICAJCQlyZXQgPSAtRUlOVkFMOwo+ICsJCQlkcm1f Y29ubmVjdG9yX2xpc3RfaXRlcl9wdXQoJmNvbm5faXRlcik7Cj4gIAkJCWdvdG8gZmFpbDsKPiAg CQl9Cj4gIAkJaWYgKG5ld19jcnRjICE9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+Y3J0Yykgewo+IEBA IC02OTAsNiArNzA3LDcgQEAgaW50IGRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBk cm1fbW9kZV9zZXQgKnNldCkKPiAgCQkJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVj dG9yLT5uYW1lKTsKPiAgCQl9Cj4gIAl9Cj4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9wdXQo JmNvbm5faXRlcik7Cj4KPiAgCS8qIG1vZGVfc2V0X2Jhc2UgaXMgbm90IGEgcmVxdWlyZWQgZnVu Y3Rpb24gKi8KPiAgCWlmIChmYl9jaGFuZ2VkICYmICFjcnRjX2Z1bmNzLT5tb2RlX3NldF9iYXNl KQo+IEBAIC03NDQsOSArNzYyLDEwIEBAIGludCBkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZyhz dHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCj4gIAl9Cj4KPiAgCWNvdW50ID0gMDsKPiAtCWRybV9m b3JfZWFjaF9jb25uZWN0b3IoY29ubmVjdG9yLCBkZXYpIHsKPiArCWRybV9jb25uZWN0b3JfbGlz dF9pdGVyX2dldChkZXYsICZjb25uX2l0ZXIpOwo+ICsJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9p dGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikKPiAgCQljb25uZWN0b3ItPmVuY29kZXIgPSBzYXZl X2Nvbm5lY3Rvcl9lbmNvZGVyc1tjb3VudCsrXTsKPiAtCX0KPiArCWRybV9jb25uZWN0b3JfbGlz dF9pdGVyX3B1dCgmY29ubl9pdGVyKTsKPgo+ICAJLyogYWZ0ZXIgZmFpbCBkcm9wIHJlZmVyZW5j ZSBvbiBhbGwgdW5ib3VuZCBjb25uZWN0b3JzIGluIHNldCwgbGV0Cj4gIAkgKiBib3VuZCBjb25u ZWN0b3JzIGtlZXAgdGhlaXIgcmVmZXJlbmNlCj4gQEAgLTc3MywxMiArNzkyLDE2IEBAIHN0YXRp YyBpbnQgZHJtX2hlbHBlcl9jaG9vc2VfZW5jb2Rlcl9kcG1zKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKPiAgewo+ICAJaW50IGRwbXMgPSBEUk1fTU9ERV9EUE1TX09GRjsKPiAgCXN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXIgY29ubl9pdGVyOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRl djsKPgo+IC0JZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcihjb25uZWN0b3IsIGRldikKPiArCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX2dldChkZXYsICZjb25uX2l0ZXIpOwo+ICsJZHJtX2Zvcl9lYWNo X2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikKPiAgCQlpZiAoY29ubmVjdG9y LT5lbmNvZGVyID09IGVuY29kZXIpCj4gIAkJCWlmIChjb25uZWN0b3ItPmRwbXMgPCBkcG1zKQo+ ICAJCQkJZHBtcyA9IGNvbm5lY3Rvci0+ZHBtczsKPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVy X3B1dCgmY29ubl9pdGVyKTsKPiArCj4gIAlyZXR1cm4gZHBtczsKPiAgfQo+Cj4gQEAgLTgxMCwx MiArODMzLDE2IEBAIHN0YXRpYyBpbnQgZHJtX2hlbHBlcl9jaG9vc2VfY3J0Y19kcG1zKHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJaW50IGRwbXMgPSBEUk1fTU9ERV9EUE1TX09GRjsK PiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmRldjsKPgo+IC0JZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcihjb25uZWN0b3IsIGRldikKPiAr CWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2dldChkZXYsICZjb25uX2l0ZXIpOwo+ICsJZHJtX2Zv cl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikKPiAgCQlpZiAoY29u bmVjdG9yLT5lbmNvZGVyICYmIGNvbm5lY3Rvci0+ZW5jb2Rlci0+Y3J0YyA9PSBjcnRjKQo+ICAJ CQlpZiAoY29ubmVjdG9yLT5kcG1zIDwgZHBtcykKPiAgCQkJCWRwbXMgPSBjb25uZWN0b3ItPmRw bXM7Cj4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9wdXQoJmNvbm5faXRlcik7Cj4gKwo+ICAJ cmV0dXJuIGRwbXM7Cj4gIH0KPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Zi X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+IGluZGV4IGU5MzRi NTQxZmVlYS4uOGY1OTM3NjE2ZjAxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZmJfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gQEAg LTEyMCwyMCArMTIwLDIyIEBAIGludCBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5l Y3RvcnMoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKPiAgewo+ICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGZiX2hlbHBlci0+ZGV2Owo+ICAJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcjsKPiAtCWludCBpLCByZXQ7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXIgY29ubl9pdGVyOwo+ICsJaW50IGksIHJldCA9IDA7Cj4KPiAgCWlmICghZHJtX2ZiZGV2 X2VtdWxhdGlvbikKPiAgCQlyZXR1cm4gMDsKPgo+ICAJbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2Nv bmZpZy5tdXRleCk7Cj4gLQlkcm1fZm9yX2VhY2hfY29ubmVjdG9yKGNvbm5lY3RvciwgZGV2KSB7 Cj4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9nZXQoZGV2LCAmY29ubl9pdGVyKTsKPiArCWRy bV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKPiAgCQly ZXQgPSBkcm1fZmJfaGVscGVyX2FkZF9vbmVfY29ubmVjdG9yKGZiX2hlbHBlciwgY29ubmVjdG9y KTsKPgo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gZmFpbDsKPiAgCX0KPiAtCW11dGV4X3VubG9j aygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gLQlyZXR1cm4gMDsKPiArCWdvdG8gb3V0Owo+ ICsKPiAgZmFpbDoKPiAgCWRybV9mYl9oZWxwZXJfZm9yX2VhY2hfY29ubmVjdG9yKGZiX2hlbHBl ciwgaSkgewo+ICAJCXN0cnVjdCBkcm1fZmJfaGVscGVyX2Nvbm5lY3RvciAqZmJfaGVscGVyX2Nv bm5lY3RvciA9Cj4gQEAgLTE0NSw2ICsxNDcsOCBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9zaW5nbGVf YWRkX2FsbF9jb25uZWN0b3JzKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCj4gIAkJ ZmJfaGVscGVyLT5jb25uZWN0b3JfaW5mb1tpXSA9IE5VTEw7Cj4gIAl9Cj4gIAlmYl9oZWxwZXIt PmNvbm5lY3Rvcl9jb3VudCA9IDA7Cj4gK291dDoKPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVy X3B1dCgmY29ubl9pdGVyKTsKPiAgCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRl eCk7Cj4KPiAgCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZXNldF9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYwo+ IGluZGV4IGNjMjMyYWM2Yzk1MC4uNDM3ODlmNjA2YzM3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZXNldF9oZWxwZXIuYwo+IEBAIC00OCw2ICs0OCw3IEBAIHZvaWQgZHJtX2hlbHBlcl9tb3Zl X3BhbmVsX2Nvbm5lY3RvcnNfdG9faGVhZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Cj4gIAlJ TklUX0xJU1RfSEVBRCgmcGFuZWxfbGlzdCk7Cj4KPiArCXNwaW5fbG9ja19pcnEoJmRldi0+bW9k ZV9jb25maWcuY29ubmVjdG9yX2xpc3RfbG9jayk7Cj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUoY29ubmVjdG9yLCB0bXAsCj4gIAkJCQkgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xp c3QsIGhlYWQpIHsKPiAgCQlpZiAoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9E RV9DT05ORUNUT1JfTFZEUyB8fAo+IEBAIC01Nyw2ICs1OCw3IEBAIHZvaWQgZHJtX2hlbHBlcl9t b3ZlX3BhbmVsX2Nvbm5lY3RvcnNfdG9faGVhZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJ fQo+Cj4gIAlsaXN0X3NwbGljZSgmcGFuZWxfbGlzdCwgJmRldi0+bW9kZV9jb25maWcuY29ubmVj dG9yX2xpc3QpOwo+ICsJc3Bpbl91bmxvY2tfaXJxKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rv cl9saXN0X2xvY2spOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX2hlbHBlcl9tb3ZlX3BhbmVs X2Nvbm5lY3RvcnNfdG9faGVhZCk7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9wbGFuZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKPiBp bmRleCA3YTdkZGRmNjA0ZDcuLmJjOWY5NzQyMmNkMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFu ZV9oZWxwZXIuYwo+IEBAIC03NCw2ICs3NCw3IEBAIHN0YXRpYyBpbnQgZ2V0X2Nvbm5lY3RvcnNf Zm9yX2NydGMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsK PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7Cj4gIAlpbnQgY291 bnQgPSAwOwo+Cj4gIAkvKgo+IEBAIC04Myw3ICs4NCw4IEBAIHN0YXRpYyBpbnQgZ2V0X2Nvbm5l Y3RvcnNfZm9yX2NydGMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJICovCj4gIAlXQVJOX09O KCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRl eCkpOwo+Cj4gLQlkcm1fZm9yX2VhY2hfY29ubmVjdG9yKGNvbm5lY3RvciwgZGV2KSB7Cj4gKwlk cm1fY29ubmVjdG9yX2xpc3RfaXRlcl9nZXQoZGV2LCAmY29ubl9pdGVyKTsKPiArCWRybV9mb3Jf ZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKPiAgCQlpZiAoY29u bmVjdG9yLT5lbmNvZGVyICYmIGNvbm5lY3Rvci0+ZW5jb2Rlci0+Y3J0YyA9PSBjcnRjKSB7Cj4g IAkJCWlmIChjb25uZWN0b3JfbGlzdCAhPSBOVUxMICYmIGNvdW50IDwgbnVtX2Nvbm5lY3RvcnMp Cj4gIAkJCQkqKGNvbm5lY3Rvcl9saXN0KyspID0gY29ubmVjdG9yOwo+IEBAIC05MSw2ICs5Myw3 IEBAIHN0YXRpYyBpbnQgZ2V0X2Nvbm5lY3RvcnNfZm9yX2NydGMoc3RydWN0IGRybV9jcnRjICpj cnRjLAo+ICAJCQljb3VudCsrOwo+ICAJCX0KPiAgCX0KPiArCWRybV9jb25uZWN0b3JfbGlzdF9p dGVyX3B1dCgmY29ubl9pdGVyKTsKPgo+ICAJcmV0dXJuIGNvdW50Owo+ICB9Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX3Byb2JlX2hlbHBlci5jCj4gaW5kZXggYWM5NTNmMDM3YmU3Li43Y2ZmOTFlNzQ5N2YgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKPiBAQCAtMTI5LDYgKzEyOSw3IEBAIHZv aWQgZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGVfbG9ja2VkKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gIHsKPiAgCWJvb2wgcG9sbCA9IGZhbHNlOwo+ICAJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7 Cj4gIAl1bnNpZ25lZCBsb25nIGRlbGF5ID0gRFJNX09VVFBVVF9QT0xMX1BFUklPRDsKPgo+ICAJ V0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KSk7Cj4gQEAg LTEzNiwxMSArMTM3LDEzIEBAIHZvaWQgZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGVfbG9ja2Vk KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlpZiAoIWRldi0+bW9kZV9jb25maWcucG9sbF9l bmFibGVkIHx8ICFkcm1fa21zX2hlbHBlcl9wb2xsKQo+ICAJCXJldHVybjsKPgo+IC0JZHJtX2Zv cl9lYWNoX2Nvbm5lY3Rvcihjb25uZWN0b3IsIGRldikgewo+ICsJZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXJfZ2V0KGRldiwgJmNvbm5faXRlcik7Cj4gKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0 ZXIoY29ubmVjdG9yLCAmY29ubl9pdGVyKSB7Cj4gIAkJaWYgKGNvbm5lY3Rvci0+cG9sbGVkICYg KERSTV9DT05ORUNUT1JfUE9MTF9DT05ORUNUIHwKPiAgCQkJCQkgRFJNX0NPTk5FQ1RPUl9QT0xM X0RJU0NPTk5FQ1QpKQo+ICAJCQlwb2xsID0gdHJ1ZTsKPiAgCX0KPiArCWRybV9jb25uZWN0b3Jf bGlzdF9pdGVyX3B1dCgmY29ubl9pdGVyKTsKPgo+ICAJaWYgKGRldi0+bW9kZV9jb25maWcuZGVs YXllZF9ldmVudCkgewo+ICAJCXBvbGwgPSB0cnVlOwo+IEBAIC0zODIsNiArMzg1LDcgQEAgc3Rh dGljIHZvaWQgb3V0cHV0X3BvbGxfZXhlY3V0ZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4g IAlzdHJ1Y3QgZGVsYXllZF93b3JrICpkZWxheWVkX3dvcmsgPSB0b19kZWxheWVkX3dvcmsod29y ayk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29udGFpbmVyX29mKGRlbGF5ZWRfd29y aywgc3RydWN0IGRybV9kZXZpY2UsIG1vZGVfY29uZmlnLm91dHB1dF9wb2xsX3dvcmspOwo+ICAJ c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9y X2xpc3RfaXRlciBjb25uX2l0ZXI7Cj4gIAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIG9sZF9z dGF0dXM7Cj4gIAlib29sIHJlcG9sbCA9IGZhbHNlLCBjaGFuZ2VkOwo+Cj4gQEAgLTM5Nyw4ICs0 MDEsOCBAQCBzdGF0aWMgdm9pZCBvdXRwdXRfcG9sbF9leGVjdXRlKHN0cnVjdCB3b3JrX3N0cnVj dCAqd29yaykKPiAgCQlnb3RvIG91dDsKPiAgCX0KPgo+IC0JZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rv cihjb25uZWN0b3IsIGRldikgewo+IC0KPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2dldChk ZXYsICZjb25uX2l0ZXIpOwo+ICsJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3Rv ciwgJmNvbm5faXRlcikgewo+ICAJCS8qIElnbm9yZSBmb3JjZWQgY29ubmVjdG9ycy4gKi8KPiAg CQlpZiAoY29ubmVjdG9yLT5mb3JjZSkKPiAgCQkJY29udGludWU7Cj4gQEAgLTQ1MSw2ICs0NTUs NyBAQCBzdGF0aWMgdm9pZCBvdXRwdXRfcG9sbF9leGVjdXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKPiAgCQkJY2hhbmdlZCA9IHRydWU7Cj4gIAkJfQo+ICAJfQo+ICsJZHJtX2Nvbm5lY3Rv cl9saXN0X2l0ZXJfcHV0KCZjb25uX2l0ZXIpOwo+Cj4gIAltdXRleF91bmxvY2soJmRldi0+bW9k ZV9jb25maWcubXV0ZXgpOwo+Cj4gQEAgLTU2Miw2ICs1NjcsNyBAQCBFWFBPUlRfU1lNQk9MKGRy bV9rbXNfaGVscGVyX3BvbGxfZmluaSk7Cj4gIGJvb2wgZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOwo+ ICAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBvbGRfc3RhdHVzOwo+ICAJYm9vbCBjaGFuZ2Vk ID0gZmFsc2U7Cj4KPiBAQCAtNTY5LDggKzU3NSw4IEBAIGJvb2wgZHJtX2hlbHBlcl9ocGRfaXJx X2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJcmV0dXJuIGZhbHNlOwo+Cj4gIAlt dXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiAtCWRybV9mb3JfZWFjaF9jb25u ZWN0b3IoY29ubmVjdG9yLCBkZXYpIHsKPiAtCj4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9n ZXQoZGV2LCAmY29ubl9pdGVyKTsKPiArCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25u ZWN0b3IsICZjb25uX2l0ZXIpIHsKPiAgCQkvKiBPbmx5IGhhbmRsZSBIUEQgY2FwYWJsZSBjb25u ZWN0b3JzLiAqLwo+ICAJCWlmICghKGNvbm5lY3Rvci0+cG9sbGVkICYgRFJNX0NPTk5FQ1RPUl9Q T0xMX0hQRCkpCj4gIAkJCWNvbnRpbnVlOwo+IEBAIC01ODYsNyArNTkyLDcgQEAgYm9vbCBkcm1f aGVscGVyX2hwZF9pcnFfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlpZiAob2xk X3N0YXR1cyAhPSBjb25uZWN0b3ItPnN0YXR1cykKPiAgCQkJY2hhbmdlZCA9IHRydWU7Cj4gIAl9 Cj4gLQo+ICsJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfcHV0KCZjb25uX2l0ZXIpOwo+ICAJbXV0 ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPgo+ICAJaWYgKGNoYW5nZWQpCj4K X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==