From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/atomic: Acquire connection_mutex lock in drm_helper_probe_single_connector_modes. Date: Wed, 29 Mar 2017 15:26:45 +0200 Message-ID: <20170329132645.w5j7gvizgrtkvxon@phenom.ffwll.local> References: <1490782610-5481-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1490782610-5481-1-git-send-email-maarten.lankhorst@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: Maarten Lankhorst Cc: Boris Brezillon , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXIgMjksIDIwMTcgYXQgMTI6MTY6NTBQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gbW9kZV92YWxpZCgpIGFuZCBnZXRfbW9kZXMoKSBjYWxsZWQKPiBmcm9tIGRy bV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcygpCj4gbWF5IG5lZWQgdG8gbG9v ayBhdCBjb25uZWN0b3ItPnN0YXRlIGJlY2F1c2Ugd2hhdCBhIHZhbGlkIG1vZGUgaXMgbWF5Cj4g ZGVwZW5kIG9uIGNvbm5lY3RvciBwcm9wZXJ0aWVzIGJlaW5nIHNldC4gRm9yIGV4YW1wbGUgc29t ZSBIRE1JIG1vZGVzCj4gbWlnaHQgYmUgcmVqZWN0ZWQgd2hlbiBhIGNvbm5lY3RvciBwcm9wZXJ0 eSBmb3JjZXMgdGhlIGNvbm5lY3Rvcgo+IGludG8gRFZJIG1vZGUuCj4gCj4gU29tZSBpbXBsZW1l bnRhdGlvbnMgb2YgZGV0ZWN0KCkgYWxyZWFkeSBsb2NrIGFsbCBzdGF0ZSwKPiBzbyB3ZSBoYXZl IHRvIHBhc3MgYW4gYWNxdWlyZV9jdHggdG8gdGhlbSB0byBwcmV2ZW50IGEgZGVhZGxvY2suCj4g Cj4gVGhpcyBtZWFucyBjaGFuZ2luZyB0aGUgZnVuY3Rpb24gc2lnbmF0dXJlIG9mIGRldGVjdCgp IHNsaWdodGx5LAo+IGFuZCBwYXNzaW5nIHRoZSBhY3F1aXJlX2N0eCBmb3IgbG9ja2luZyBtdWx0 aXBsZSBjcnRjJ3MuCj4gSXQgbWlnaHQgYmUgTlVMTCwgaW4gd2hpY2ggY2FzZSBleHBlbnNpdmUg b3BlcmF0aW9ucyBzaG91bGQgYmUgYXZvaWRlZC4KPiAKPiBpbnRlbF9kcC5jIGhvd2V2ZXIgaWdu b3JlcyB0aGUgZm9yY2UgZmxhZywgc28gc3RpbGwgbG9jawo+IGNvbm5lY3Rpb25fbXV0ZXggdGhl cmUgaWYgbmVlZGVkLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFy dGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IEJvcmlzIEJyZXppbGxvbiA8Ym9y aXMuYnJlemlsbG9uQGZyZWUtZWxlY3Ryb25zLmNvbT4KPiBDYzogTWFuYXNpIE5hdmFyZSA8bWFu YXNpLmQubmF2YXJlQGludGVsLmNvbT4KCkhtIG9ubHkgbm90aWNlZCB0aGlzIG5vdywgYnV0IG1p eGluZyB1cCBmb3JjZSB3aXRoIHRoZSBhY3F1aXJlX2N0eCBzb3VuZHMKbGlrZSB2ZXJ5IGJhZCBp bnRlcmZhY2UgZGVzaWduLiBZZXMsIHRoZSBvbmx5IHVzZXIgb2YgdGhlIG5ldyBob29rIHdvcmtz Cmxpa2UgdGhhdCwgYnV0IHRoYXQncyByZWFsbHkgYWNjaWRlbnRhbCBJIHRoaW5rLiBJIHRoaW5r IGp1c3QgaGF2aW5nIHRoZQpjdHggZXZlcnl3aGVyZSAoZm9yIGF0b21pYyBkcml2ZXJzIGF0IGxl YXN0KSB3b3VsZCBiZSBhIGxvdCBzYWZlci4gVGhpcyBpcwpleHRyZW1lbHkgc3VycHJpc2luZyAo YW5kIHVuZG9jdW1lbnRlZCBzdXByaXNlIGF0IHRoYXQpLgoKPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9wcm9iZV9oZWxwZXIuYyAgIHwgNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jICAgICB8IDI5ICsr KysrKysrKysrKystLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgMjUgKysrKysrKysrKystLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jICAgICAgfCAyMiArKysrKysrKysrKystLS0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICA4ICsrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaG90cGx1Zy5jIHwgIDYgKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3R2LmMgICAgICB8IDI0ICsrKysrKysrKystLS0tLS0tLS0tLQo+ICBpbmNsdWRlL2Ry bS9kcm1fY29ubmVjdG9yLmggICAgICAgICAgfCAgNSArKysrKwo+ICA4IGZpbGVzIGNoYW5nZWQs IDEwMSBpbnNlcnRpb25zKCspLCA1OSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJv YmVfaGVscGVyLmMKPiBpbmRleCA4NTAwNWQ1N2JkZTYuLmE0OGNmZjk2Mzg3MSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+IEBAIC0xNjksMTEgKzE2OSwxNSBAQCB2b2lkIGRy bV9rbXNfaGVscGVyX3BvbGxfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIEVYUE9S VF9TWU1CT0woZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGUpOwo+ICAKPiAgc3RhdGljIGVudW0g ZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKPiAtZHJtX2Nvbm5lY3Rvcl9kZXRlY3Qoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiArZHJtX2Nvbm5lY3Rvcl9kZXRlY3Qo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkgICAgIHN0cnVjdCBkcm1fbW9k ZXNldF9hY3F1aXJlX2N0eCAqY3R4KQo+ICB7Cj4gLQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+ ZGV0ZWN0ID8KPiAtCQljb25uZWN0b3ItPmZ1bmNzLT5kZXRlY3QoY29ubmVjdG9yLCBmb3JjZSkg Ogo+IC0JCWNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+ICsJaWYgKGNvbm5lY3Rvci0+ZnVu Y3MtPmRldGVjdF9jdHgpCj4gKwkJcmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmRldGVjdF9jdHgo Y29ubmVjdG9yLCBjdHgpOwo+ICsJZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0KQo+ ICsJCXJldHVybiBjb25uZWN0b3ItPmZ1bmNzLT5kZXRlY3QoY29ubmVjdG9yLCAhIWN0eCk7Cj4g KwllbHNlCj4gKwkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+ICB9Cj4gIAo+ ICAvKioKPiBAQCAtMjM5LDE1ICsyNDMsMjcgQEAgaW50IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xl X2Nvbm5lY3Rvcl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9oZWxwZXJfZnVuY3MgKmNvbm5lY3Rvcl9mdW5jcyA9Cj4gIAkJY29ubmVjdG9yLT5oZWxwZXJf cHJpdmF0ZTsKPiAtCWludCBjb3VudCA9IDA7Cj4gKwlpbnQgY291bnQgPSAwLCByZXQ7Cj4gIAlp bnQgbW9kZV9mbGFncyA9IDA7Cj4gIAlib29sIHZlcmJvc2VfcHJ1bmUgPSB0cnVlOwo+ICAJZW51 bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBvbGRfc3RhdHVzOwo+ICsJc3RydWN0IGRybV9tb2Rlc2V0 X2FjcXVpcmVfY3R4IGN0eDsKPiAgCj4gIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldi0+ bW9kZV9jb25maWcubXV0ZXgpKTsKPiAgCj4gKwlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0 eCwgMCk7Cj4gKwo+ICAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc11cbiIsIGNvbm5l Y3Rvci0+YmFzZS5pZCwKPiAgCQkJY29ubmVjdG9yLT5uYW1lKTsKPiArCj4gK3JldHJ5Ogo+ICsJ cmV0ID0gZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4 LCAmY3R4KTsKPiArCWlmIChyZXQgPT0gLUVERUFETEspIHsKPiArCQlkcm1fbW9kZXNldF9iYWNr b2ZmKCZjdHgpOwo+ICsJCWdvdG8gcmV0cnk7Cj4gKwl9IGVsc2UKPiArCQlXQVJOX09OKHJldCA8 IDApOwo+ICsKPiAgCS8qIHNldCBhbGwgb2xkIG1vZGVzIHRvIHRoZSBzdGFsZSBzdGF0ZSAqLwo+ ICAJbGlzdF9mb3JfZWFjaF9lbnRyeShtb2RlLCAmY29ubmVjdG9yLT5tb2RlcywgaGVhZCkKPiAg CQltb2RlLT5zdGF0dXMgPSBNT0RFX1NUQUxFOwo+IEBAIC0yNjMsNyArMjc5LDE1IEBAIGludCBk cm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPiAgCQlpZiAoY29ubmVjdG9yLT5mdW5jcy0+Zm9yY2UpCj4gIAkJCWNv bm5lY3Rvci0+ZnVuY3MtPmZvcmNlKGNvbm5lY3Rvcik7Cj4gIAl9IGVsc2Ugewo+IC0JCWNvbm5l Y3Rvci0+c3RhdHVzID0gZHJtX2Nvbm5lY3Rvcl9kZXRlY3QoY29ubmVjdG9yLCB0cnVlKTsKPiAr CQlyZXQgPSBkcm1fY29ubmVjdG9yX2RldGVjdChjb25uZWN0b3IsICZjdHgpOwo+ICsKPiArCQlp ZiAocmV0ID09IC1FREVBRExLKSB7Cj4gKwkJCWRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7Cj4g KwkJCWdvdG8gcmV0cnk7Cj4gKwkJfSBlbHNlIGlmIChXQVJOKHJldCA8IDAsICJJbnZhbGlkIHJl dHVybiB2YWx1ZSAlaSBmb3IgY29ubmVjdG9yIGRldGVjdGlvblxuIiwgcmV0KSkKPiArCQkJcmV0 ID0gY29ubmVjdG9yX3N0YXR1c191bmtub3duOwo+ICsKPiArCQljb25uZWN0b3ItPnN0YXR1cyA9 IHJldDsKPiAgCX0KPiAgCj4gIAkvKgo+IEBAIC0zNTUsNiArMzc5LDkgQEAgaW50IGRybV9oZWxw ZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ICBwcnVuZToKPiAgCWRybV9tb2RlX3BydW5lX2ludmFsaWQoZGV2LCAmY29ubmVj dG9yLT5tb2RlcywgdmVyYm9zZV9wcnVuZSk7Cj4gIAo+ICsJZHJtX21vZGVzZXRfZHJvcF9sb2Nr cygmY3R4KTsKPiArCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKPiArCj4gIAlpZiAo bGlzdF9lbXB0eSgmY29ubmVjdG9yLT5tb2RlcykpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IEBAIC00 NDAsNyArNDY3LDcgQEAgc3RhdGljIHZvaWQgb3V0cHV0X3BvbGxfZXhlY3V0ZShzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspCj4gIAo+ICAJCXJlcG9sbCA9IHRydWU7Cj4gIAo+IC0JCWNvbm5lY3Rv ci0+c3RhdHVzID0gZHJtX2Nvbm5lY3Rvcl9kZXRlY3QoY29ubmVjdG9yLCBmYWxzZSk7Cj4gKwkJ Y29ubmVjdG9yLT5zdGF0dXMgPSBkcm1fY29ubmVjdG9yX2RldGVjdChjb25uZWN0b3IsIE5VTEwp Owo+ICAJCWlmIChvbGRfc3RhdHVzICE9IGNvbm5lY3Rvci0+c3RhdHVzKSB7Cj4gIAkJCWNvbnN0 IGNoYXIgKm9sZCwgKm5ldzsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2NydC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKPiBpbmRleCA4 YzgyNjA3Mjk0YzYuLjExODZjM2Y1ZmVhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jcnQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5j Cj4gQEAgLTY2OSwxOSArNjY5LDE5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9p ZCBpbnRlbF9zcHVyaW91c19jcnRfZGV0ZWN0W10gPSB7Cj4gIAl7IH0KPiAgfTsKPiAgCj4gLXN0 YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4gLWludGVsX2NydF9kZXRlY3Qoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiArc3RhdGljIGludAo+ICtp bnRlbF9jcnRfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJIHN0 cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsKPiAgCXN0cnVj dCBpbnRlbF9jcnQgKmNydCA9IGludGVsX2F0dGFjaGVkX2NydChjb25uZWN0b3IpOwo+ICAJc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmY3J0LT5iYXNlOwo+IC0JZW51bSBk cm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXM7Cj4gKwlpbnQgc3RhdHVzLCByZXQ7Cj4gIAlzdHJ1 Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSB0bXA7Cj4gLQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNx dWlyZV9jdHggY3R4Owo+ICAKPiAgCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdIGZv cmNlPSVkXG4iLAo+ICAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1l LAo+IC0JCSAgICAgIGZvcmNlKTsKPiArCQkgICAgICAhIWN0eCk7Cj4gIAo+ICAJLyogU2tpcCBt YWNoaW5lcyB3aXRob3V0IFZHQSB0aGF0IGZhbHNlbHkgcmVwb3J0IGhvdHBsdWcgZXZlbnRzICov Cj4gIAlpZiAoZG1pX2NoZWNrX3N5c3RlbShpbnRlbF9zcHVyaW91c19jcnRfZGV0ZWN0KSkKPiBA QCAtNzE2LDE1ICs3MTYsMTkgQEAgaW50ZWxfY3J0X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ICAJCWdvdG8gb3V0Owo+ICAJfQo+ICAKPiAtCWlm ICghZm9yY2UpIHsKPiArCWlmICghY3R4KSB7Cj4gIAkJc3RhdHVzID0gY29ubmVjdG9yLT5zdGF0 dXM7Cj4gIAkJZ290byBvdXQ7Cj4gIAl9Cj4gIAo+IC0JZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0 KCZjdHgsIDApOwo+IC0KPiAgCS8qIGZvciBwcmUtOTQ1ZyBwbGF0Zm9ybXMgdXNlIGxvYWQgZGV0 ZWN0ICovCj4gLQlpZiAoaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoY29ubmVjdG9yLCBOVUxM LCAmdG1wLCAmY3R4KSkgewo+ICsJcmV0ID0gaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoY29u bmVjdG9yLCBOVUxMLCAmdG1wLCBjdHgpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQlzdGF0dXMg PSByZXQ7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJaWYgKHJldCA+IDApIHsKPiAgCQlp ZiAoaW50ZWxfY3J0X2RldGVjdF9kZGMoY29ubmVjdG9yKSkKPiAgCQkJc3RhdHVzID0gY29ubmVj dG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4gIAkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8 IDQpCj4gQEAgLTczNCwxMyArNzM4LDEwIEBAIGludGVsX2NydF9kZXRlY3Qoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgCQkJc3RhdHVzID0gY29ubmVjdG9y X3N0YXR1c19kaXNjb25uZWN0ZWQ7Cj4gIAkJZWxzZQo+ICAJCQlzdGF0dXMgPSBjb25uZWN0b3Jf c3RhdHVzX3Vua25vd247Cj4gLQkJaW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKGNvbm5l Y3RvciwgJnRtcCwgJmN0eCk7Cj4gKwkJaW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKGNv bm5lY3RvciwgJnRtcCwgY3R4KTsKPiAgCX0gZWxzZQo+ICAJCXN0YXR1cyA9IGNvbm5lY3Rvcl9z dGF0dXNfdW5rbm93bjsKPiAgCj4gLQlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwo+IC0J ZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwo+IC0KPiAgb3V0Ogo+ICAJaW50ZWxfZGlz cGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIGludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbik7Cj4g IAlyZXR1cm4gc3RhdHVzOwo+IEBAIC04MTEsNyArODEyLDcgQEAgdm9pZCBpbnRlbF9jcnRfcmVz ZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX2Z1bmNzIGludGVsX2NydF9jb25uZWN0b3JfZnVuY3MgPSB7Cj4gIAku ZHBtcyA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAo+IC0JLmRldGVjdCA9IGlu dGVsX2NydF9kZXRlY3QsCj4gKwkuZGV0ZWN0X2N0eCA9IGludGVsX2NydF9kZXRlY3QsCj4gIAku ZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKPiAg CS5sYXRlX3JlZ2lzdGVyID0gaW50ZWxfY29ubmVjdG9yX3JlZ2lzdGVyLAo+ICAJLmVhcmx5X3Vu cmVnaXN0ZXIgPSBpbnRlbF9jb25uZWN0b3JfdW5yZWdpc3RlciwKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYTc5MDYzZmFjOTUxLi5iYWE4ZDgzNmM4ZTcgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTk1MDMsMTAgKzk1MDMsMTAg QEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X3NldHVwX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1ib29sIGludGVs X2dldF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4g LQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiAtCQkJCXN0cnVjdCBpbnRlbF9s b2FkX2RldGVjdF9waXBlICpvbGQsCj4gLQkJCQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9j dHggKmN0eCkKPiAraW50IGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlICpvbGQsCj4g KwkJCSAgICAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKPiAgewo+ICAJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciA9Cj4gQEAgLTk1MjksMTAgKzk1MjksNyBAQCBib29sIGludGVsX2dldF9s b2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAo+ICAJ b2xkLT5yZXN0b3JlX3N0YXRlID0gTlVMTDsKPiAgCj4gLXJldHJ5Ogo+IC0JcmV0ID0gZHJtX21v ZGVzZXRfbG9jaygmY29uZmlnLT5jb25uZWN0aW9uX211dGV4LCBjdHgpOwo+IC0JaWYgKHJldCkK PiAtCQlnb3RvIGZhaWw7Cj4gKwlXQVJOX09OKCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmNvbmZp Zy0+Y29ubmVjdGlvbl9tdXRleCkpOwo+ICAKPiAgCS8qCj4gIAkgKiBBbGdvcml0aG0gZ2V0cyBh IGxpdHRsZSBtZXNzeToKPiBAQCAtOTY4MiwxMCArOTY3OSw4IEBAIGJvb2wgaW50ZWxfZ2V0X2xv YWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQlyZXN0 b3JlX3N0YXRlID0gTlVMTDsKPiAgCX0KPiAgCj4gLQlpZiAocmV0ID09IC1FREVBRExLKSB7Cj4g LQkJZHJtX21vZGVzZXRfYmFja29mZihjdHgpOwo+IC0JCWdvdG8gcmV0cnk7Cj4gLQl9Cj4gKwlp ZiAocmV0ID09IC1FREVBRExLKQo+ICsJCXJldHVybiByZXQ7Cj4gIAo+ICAJcmV0dXJuIGZhbHNl Owo+ICB9Cj4gQEAgLTE1MTEyLDYgKzE1MTA3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxl X3BpcGVfYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNydCA9IE5VTEw7Cj4gIAlzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSBsb2FkX2RldGVj dF90ZW1wOwo+ICAJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHggPSBkZXYtPm1v ZGVfY29uZmlnLmFjcXVpcmVfY3R4Owo+ICsJaW50IHJldDsKPiAgCj4gIAkvKiBXZSBjYW4ndCBq dXN0IHN3aXRjaCBvbiB0aGUgcGlwZSBBLCB3ZSBuZWVkIHRvIHNldCB0aGluZ3MgdXAgd2l0aCBh Cj4gIAkgKiBwcm9wZXIgbW9kZSBhbmQgb3V0cHV0IGNvbmZpZ3VyYXRpb24uIEFzIGEgZ3Jvc3Mg aGFjaywgZW5hYmxlIHBpcGUgQQo+IEBAIC0xNTEyOCw3ICsxNTEyNCwxMCBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9lbmFibGVfcGlwZV9hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlpZiAoIWNy dCkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JaWYgKGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKGNy dCwgTlVMTCwgJmxvYWRfZGV0ZWN0X3RlbXAsIGN0eCkpCj4gKwlyZXQgPSBpbnRlbF9nZXRfbG9h ZF9kZXRlY3RfcGlwZShjcnQsIE5VTEwsICZsb2FkX2RldGVjdF90ZW1wLCBjdHgpOwo+ICsJV0FS TihyZXQgPCAwLCAiQWxsIG1vZGVzZXQgbXV0ZXhlcyBhcmUgbG9ja2VkLCBidXQgaW50ZWxfZ2V0 X2xvYWRfZGV0ZWN0X3BpcGUgZmFpbGVkXG4iKTsKPiArCj4gKwlpZiAocmV0ID4gMCkKPiAgCQlp bnRlbF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3BpcGUoY3J0LCAmbG9hZF9kZXRlY3RfdGVtcCwgY3R4 KTsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCBmZDk2YTZjZjczMjYu LjEwYjM3MjdiNzM4MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC00NTY3LDcg KzQ1NjcsOCBAQCBpbnRlbF9kcF91bnNldF9lZGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp Cj4gIH0KPiAgCj4gIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4gLWludGVsX2Rw X2xvbmdfcHVsc2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ICtp bnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rv ciwKPiArCQkgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gIHsKPiAg CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50ZWxfY29ubmVjdG9yLT5iYXNl Owo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKGNvbm5l Y3Rvcik7Cj4gQEAgLTQ2NDAsOSArNDY0MSwxMyBAQCBpbnRlbF9kcF9sb25nX3B1bHNlKHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiAgCQkgKiBjaGVjayBsaW5rcyBz dGF0dXMsIHRoZXJlIGhhcyBiZWVuIGtub3duIGlzc3VlcyBvZgo+ICAJCSAqIGxpbmsgbG9zcyB0 cmlnZ2VycmluZyBsb25nIHB1bHNlISEhIQo+ICAJCSAqLwo+IC0JCWRybV9tb2Rlc2V0X2xvY2so JmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7Cj4gKwkJaWYgKCFjdHgp Cj4gKwkJCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRl eCwgTlVMTCk7Cj4gKwo+ICAJCWludGVsX2RwX2NoZWNrX2xpbmtfc3RhdHVzKGludGVsX2RwKTsK PiAtCQlkcm1fbW9kZXNldF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRl eCk7Cj4gKwo+ICsJCWlmICghY3R4KQo+ICsJCQlkcm1fbW9kZXNldF91bmxvY2soJmRldi0+bW9k ZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCk7Cj4gIAkJZ290byBvdXQ7Cj4gIAl9Cj4gIAo+IEBA IC00NjgyLDE4ICs0Njg3LDE5IEBAIGludGVsX2RwX2xvbmdfcHVsc2Uoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ICAJcmV0dXJuIHN0YXR1czsKPiAgfQo+ICAKPiAt c3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKPiAtaW50ZWxfZHBfZGV0ZWN0KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gK3N0YXRpYyBpbnQKPiAr aW50ZWxfZHBfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAgPSBpbnRlbF9hdHRhY2hlZF9kcChjb25uZWN0b3IpOwo+IC0JZW51bSBkcm1f Y29ubmVjdG9yX3N0YXR1cyBzdGF0dXMgPSBjb25uZWN0b3ItPnN0YXR1czsKPiArCWludCBzdGF0 dXMgPSBjb25uZWN0b3ItPnN0YXR1czsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9S OiVkOiVzXVxuIiwKPiAgCQkgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFt ZSk7Cj4gIAo+ICAJLyogSWYgZnVsbCBkZXRlY3QgaXMgbm90IHBlcmZvcm1lZCB5ZXQsIGRvIGEg ZnVsbCBkZXRlY3QgKi8KPiAgCWlmICghaW50ZWxfZHAtPmRldGVjdF9kb25lKQo+IC0JCXN0YXR1 cyA9IGludGVsX2RwX2xvbmdfcHVsc2UoaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvcik7Cj4g KwkJc3RhdHVzID0gaW50ZWxfZHBfbG9uZ19wdWxzZShpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVj dG9yLCBjdHgpOwo+ICAKPiAgCWludGVsX2RwLT5kZXRlY3RfZG9uZSA9IGZhbHNlOwo+ICAKPiBA QCAtNTAxNCw3ICs1MDIwLDcgQEAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9mdW5jcyBpbnRlbF9kcF9jb25uZWN0b3JfZnVuY3MgPSB7Cj4gIAkuZHBtcyA9IGRybV9h dG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAo+IC0JLmRldGVjdCA9IGludGVsX2RwX2RldGVj dCwKPiArCS5kZXRlY3RfY3R4ID0gaW50ZWxfZHBfZGV0ZWN0LAo+ICAJLmZvcmNlID0gaW50ZWxf ZHBfZm9yY2UsCj4gIAkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5l Y3Rvcl9tb2RlcywKPiAgCS5zZXRfcHJvcGVydHkgPSBpbnRlbF9kcF9zZXRfcHJvcGVydHksCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBlMjQ2NDFiNTU5ZTIuLjZlYThiOWNkNjhj NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEzNjIsMTAgKzEzNjIsMTAg QEAgaW50IGlyb25sYWtlX2dldF9sYW5lc19yZXF1aXJlZChpbnQgdGFyZ2V0X2Nsb2NrLCBpbnQg bGlua19idywgaW50IGJwcCk7Cj4gIHZvaWQgdmx2X3dhaXRfcG9ydF9yZWFkeShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICpkcG9ydCwKPiAgCQkJIHVuc2lnbmVkIGludCBleHBlY3RlZF9tYXNrKTsKPiAtYm9vbCBpbnRl bF9nZXRfbG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ IC0JCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gLQkJCQlzdHJ1Y3QgaW50ZWxf bG9hZF9kZXRlY3RfcGlwZSAqb2xkLAo+IC0JCQkJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVf Y3R4ICpjdHgpOwo+ICtpbnQgaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlLAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2xvYWRfZGV0ZWN0X3BpcGUgKm9sZCwK PiArCQkJICAgICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKPiAgdm9p ZCBpbnRlbF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKPiAgCQkJCSAgICBzdHJ1Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSAqb2xkLAo+ ICAJCQkJICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4gaW5kZXggN2QyMTAwOTdlZWZhLi5kMmQyYWY3ZWYz MDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4gQEAgLTI0Myw3ICsy NDMsMTEgQEAgc3RhdGljIGJvb2wgaW50ZWxfaHBkX2lycV9ldmVudChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmlnLm11 dGV4KSk7Cj4gIAlvbGRfc3RhdHVzID0gY29ubmVjdG9yLT5zdGF0dXM7Cj4gIAo+IC0JY29ubmVj dG9yLT5zdGF0dXMgPSBjb25uZWN0b3ItPmZ1bmNzLT5kZXRlY3QoY29ubmVjdG9yLCBmYWxzZSk7 Cj4gKwlpZiAoY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0X2N0eCkKPiArCQljb25uZWN0b3ItPnN0 YXR1cyA9IGNvbm5lY3Rvci0+ZnVuY3MtPmRldGVjdF9jdHgoY29ubmVjdG9yLCBOVUxMKTsKPiAr CWVsc2UKPiArCQljb25uZWN0b3ItPnN0YXR1cyA9IGNvbm5lY3Rvci0+ZnVuY3MtPmRldGVjdChj b25uZWN0b3IsIGZhbHNlKTsKPiArCj4gIAlpZiAob2xkX3N0YXR1cyA9PSBjb25uZWN0b3ItPnN0 YXR1cykKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF90di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+IGlu ZGV4IDZlZDFhM2NlNDdiNy4uZDJjMDEyMDA0OGIyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3R2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90 di5jCj4gQEAgLTEzMTUsOCArMTMxNSw5IEBAIHN0YXRpYyB2b2lkIGludGVsX3R2X2ZpbmRfYmV0 dGVyX2Zvcm1hdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAgKiBDdXJyZW50 bHkgdGhpcyBhbHdheXMgcmV0dXJucyBDT05ORUNUT1JfU1RBVFVTX1VOS05PV04sIGFzIHdlIG5l ZWQgdG8gYmUgc3VyZQo+ICAgKiB3ZSBoYXZlIGEgcGlwZSBwcm9ncmFtbWVkIGluIG9yZGVyIHRv IHByb2JlIHRoZSBUVi4KPiAgICovCj4gLXN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVz Cj4gLWludGVsX3R2X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29s IGZvcmNlKQo+ICtzdGF0aWMgaW50Cj4gK2ludGVsX3R2X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAo+ICsJCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4 KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlOwo+ICAJc3RydWN0IGludGVs X3R2ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Cj4gQEAgLTEzMjUs MjcgKzEzMjYsMjYgQEAgaW50ZWxfdHZfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsIGJvb2wgZm9yY2UpCj4gIAo+ICAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDol c10gZm9yY2U9JWRcbiIsCj4gIAkJICAgICAgY29ubmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0b3It Pm5hbWUsCj4gLQkJICAgICAgZm9yY2UpOwo+ICsJCSAgICAgICEhY3R4KTsKPiAgCj4gIAltb2Rl ID0gcmVwb3J0ZWRfbW9kZXNbMF07Cj4gIAo+IC0JaWYgKGZvcmNlKSB7Cj4gKwlpZiAoY3R4KSB7 Cj4gIAkJc3RydWN0IGludGVsX2xvYWRfZGV0ZWN0X3BpcGUgdG1wOwo+IC0JCXN0cnVjdCBkcm1f bW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gKwkJaW50IHJldDsKPiAgCj4gLQkJZHJtX21vZGVz ZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwo+ICsJCXJldCA9IGludGVsX2dldF9sb2FkX2RldGVj dF9waXBlKGNvbm5lY3RvciwgJm1vZGUsICZ0bXAsIGN0eCk7Cj4gKwkJaWYgKHJldCA8IDApCj4g KwkJCXJldHVybiByZXQ7Cj4gIAo+IC0JCWlmIChpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShj b25uZWN0b3IsICZtb2RlLCAmdG1wLCAmY3R4KSkgewo+ICsJCWlmIChyZXQgPiAwKSB7Cj4gIAkJ CXR5cGUgPSBpbnRlbF90dl9kZXRlY3RfdHlwZShpbnRlbF90diwgY29ubmVjdG9yKTsKPiAtCQkJ aW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKGNvbm5lY3RvciwgJnRtcCwgJmN0eCk7Cj4g KwkJCWludGVsX3JlbGVhc2VfbG9hZF9kZXRlY3RfcGlwZShjb25uZWN0b3IsICZ0bXAsIGN0eCk7 Cj4gIAkJCXN0YXR1cyA9IHR5cGUgPCAwID8KPiAgCQkJCWNvbm5lY3Rvcl9zdGF0dXNfZGlzY29u bmVjdGVkIDoKPiAgCQkJCWNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+ICAJCX0gZWxzZQo+ ICAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX3Vua25vd247Cj4gLQo+IC0JCWRybV9tb2Rl c2V0X2Ryb3BfbG9ja3MoJmN0eCk7Cj4gLQkJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgp Owo+ICAJfSBlbHNlCj4gIAkJcmV0dXJuIGNvbm5lY3Rvci0+c3RhdHVzOwo+ICAKPiBAQCAtMTUx Niw3ICsxNTE2LDcgQEAgaW50ZWxfdHZfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3AKPiAgCj4gIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfZnVuY3MgPSB7 Cj4gIAkuZHBtcyA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAo+IC0JLmRldGVj dCA9IGludGVsX3R2X2RldGVjdCwKPiArCS5kZXRlY3RfY3R4ID0gaW50ZWxfdHZfZGV0ZWN0LAo+ ICAJLmxhdGVfcmVnaXN0ZXIgPSBpbnRlbF9jb25uZWN0b3JfcmVnaXN0ZXIsCj4gIAkuZWFybHlf dW5yZWdpc3RlciA9IGludGVsX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyLAo+ICAJLmRlc3Ryb3kgPSBp bnRlbF90dl9kZXN0cm95LAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9y LmggYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiBpbmRleCA5NDFmNTdmMzExYWEuLjgz NGQxYmE3MDllYSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiAr KysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiBAQCAtMzIsNiArMzIsNyBAQAo+ICBz dHJ1Y3QgZHJtX2RldmljZTsKPiAgCj4gIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5j czsKPiArc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4Owo+ICBzdHJ1Y3QgZHJtX2Rldmlj ZTsKPiAgc3RydWN0IGRybV9jcnRjOwo+ICBzdHJ1Y3QgZHJtX2VuY29kZXI7Cj4gQEAgLTM4NSw2 ICszODYsMTAgQEAgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3Mgewo+ICAJZW51bSBkcm1fY29u bmVjdG9yX3N0YXR1cyAoKmRldGVjdCkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK PiAgCQkJCQkgICAgYm9vbCBmb3JjZSk7Cj4gIAo+ICsJLyogY3R4ID0gTlVMTCA8PiBkZXRlY3Qo Zm9yY2UgPSBmYWxzZSksIGJ1dCBtYXkgYWxzbyByZXR1cm4gLUVERUFETEsuICovCgpBdCBsZWFz dCBjb3B5LXBhc3RlIHRoZSBrZXJuZWwtZG9jIGZvciB0aGUgZXhpc3RpbmcgaG9vay4gQW5kIHJ1 biBtYWtlCmhtdGxkb2NzIHRvIGNoZWNrIGl0IC4uLgoKV2hlbiBkb2luZyB0aGF0IHlvdSdsbCBh bHNvIG5vdGljZSB0aGF0IHRoZXJlJ3MgYSBGSVhNRSB0ZWxsaW5nIHlvdSB0aGUKaG9vayBzaG91 bGQgcHJvYmFibHkgYmUgaW4gZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MuCgpUaGFua3MsIERh bmllbAoKPiArCWludCAoKmRldGVjdF9jdHgpKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gKwkJCSAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwo+ICsKPiAg CS8qKgo+ICAJICogQGZvcmNlOgo+ICAJICoKPiAtLSAKPiAyLjcuNAo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0 ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xs LmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=