From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 14/15] drm/i915: Convert intel_dp to use atomic state Date: Thu, 18 Aug 2016 16:01:04 +0200 Message-ID: <20160818140104.GP6232@phenom.ffwll.local> References: <1470755054-32699-1-git-send-email-maarten.lankhorst@linux.intel.com> <1470755054-32699-15-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: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id B831E6EA55 for ; Thu, 18 Aug 2016 14:01:08 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id i138so5708250wmf.3 for ; Thu, 18 Aug 2016 07:01:08 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1470755054-32699-15-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBdWcgMDksIDIwMTYgYXQgMDU6MDQ6MTNQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gU2xpZ2h0bHkgbGVzcyBzdHJhaWdodGZvcndhcmQuIFNvbWUgb2YgdGhlIGRy cnMgY2FsbHMgYXJlIGRvbmUgZnJvbQo+IHdvcmtlcnMgb3IgZnJvbSBpbnRlbF9kZGkuYywgcGFz cyBhbG9uZyBjcnRjX3N0YXRlIHdoZW4gd2UgY2FuLAo+IG9yIGNydGMtPmNvbmZpZyB3aGVuIHdl IGNhbid0Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb20+CgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgMTIz ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCB8ICAgNiArLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDY0IGluc2Vy dGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4g aW5kZXggYjIzODcyODM5ZmUwLi4zMDliYTdiYzE5YWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwo+IEBAIC0xNzQ1LDcgKzE3NDUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVf ZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICAKPiAgCQlpbnRlbF9l ZHBfYmFja2xpZ2h0X29uKGludGVsX2RwKTsKPiAgCQlpbnRlbF9wc3JfZW5hYmxlKGludGVsX2Rw KTsKPiAtCQlpbnRlbF9lZHBfZHJyc19lbmFibGUoaW50ZWxfZHApOwo+ICsJCWludGVsX2VkcF9k cnJzX2VuYWJsZShpbnRlbF9kcCwgcGlwZV9jb25maWcpOwo+ICAJfQo+ICAKPiAgCWlmIChpbnRl bF9jcnRjLT5jb25maWctPmhhc19hdWRpbykgewo+IEBAIC0xNzczLDcgKzE3NzMsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlciwKPiAgCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9FRFApIHsKPiAgCQlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwo+ICAKPiAtCQlpbnRl bF9lZHBfZHJyc19kaXNhYmxlKGludGVsX2RwKTsKPiArCQlpbnRlbF9lZHBfZHJyc19kaXNhYmxl KGludGVsX2RwLCBvbGRfY3J0Y19zdGF0ZSk7Cj4gIAkJaW50ZWxfcHNyX2Rpc2FibGUoaW50ZWxf ZHApOwo+ICAJCWludGVsX2VkcF9iYWNrbGlnaHRfb2ZmKGludGVsX2RwKTsKPiAgCX0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCAyMzQwYzJiODdhNWQuLjhhNGYzNGQyZTEyNiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0xNjU1LDE2ICsxNjU1LDE3IEBAIHZvaWQg aW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAlp bnRlbF9kcC0+bGlua19tc3QgPSBpbnRlbF9jcnRjX2hhc190eXBlKHBpcGVfY29uZmlnLCBJTlRF TF9PVVRQVVRfRFBfTVNUKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfZHBfcHJlcGFy ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfZHBf cHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBkcF90 b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOwo+ICsJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiAgCj4gLQlpbnRlbF9kcF9zZXRf bGlua19wYXJhbXMoaW50ZWxfZHAsIGNydGMtPmNvbmZpZyk7Cj4gKwlpbnRlbF9kcF9zZXRfbGlu a19wYXJhbXMoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKPiAgCj4gIAkvKgo+ICAJICogVGhlcmUg YXJlIGZvdXIga2luZHMgb2YgRFAgcmVnaXN0ZXJzOgo+IEBAIC0xNjkwLDcgKzE2OTEsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9kcF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQo+ICAKPiAgCS8qIEhhbmRsZSBEUCBiaXRzIGluIGNvbW1vbiBiZXR3ZWVuIGFsbCB0aHJlZSBy ZWdpc3RlciBmb3JtYXRzICovCj4gIAlpbnRlbF9kcC0+RFAgfD0gRFBfVk9MVEFHRV8wXzQgfCBE UF9QUkVfRU1QSEFTSVNfMDsKPiAtCWludGVsX2RwLT5EUCB8PSBEUF9QT1JUX1dJRFRIKGNydGMt PmNvbmZpZy0+bGFuZV9jb3VudCk7Cj4gKwlpbnRlbF9kcC0+RFAgfD0gRFBfUE9SVF9XSURUSChw aXBlX2NvbmZpZy0+bGFuZV9jb3VudCk7Cj4gIAo+ICAJLyogU3BsaXQgb3V0IHRoZSBJQlgvQ1BV IHZzIENQVCBzZXR0aW5ncyAqLwo+ICAKPiBAQCAtMTcxOCw3ICsxNzE5LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCQlJ OTE1X1dSSVRFKFRSQU5TX0RQX0NUTChjcnRjLT5waXBlKSwgdHJhbnNfZHApOwo+ICAJfSBlbHNl IHsKPiAgCQlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2KSAmJiAhSVNfVkFMTEVZVklFVyhkZXYpICYm Cj4gLQkJICAgICFJU19DSEVSUllWSUVXKGRldikgJiYgY3J0Yy0+Y29uZmlnLT5saW1pdGVkX2Nv bG9yX3JhbmdlKQo+ICsJCSAgICAhSVNfQ0hFUlJZVklFVyhkZXYpICYmIHBpcGVfY29uZmlnLT5s aW1pdGVkX2NvbG9yX3JhbmdlKQo+ICAJCQlpbnRlbF9kcC0+RFAgfD0gRFBfQ09MT1JfUkFOR0Vf MTZfMjM1Owo+ICAKPiAgCQlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFH X1BIU1lOQykKPiBAQCAtMjI1NiwxMCArMjI1NywxMCBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfZWRw X3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgc3RhdGUpCj4gICNk ZWZpbmUgYXNzZXJ0X2VkcF9wbGxfZW5hYmxlZChkKSBhc3NlcnRfZWRwX3BsbCgoZCksIHRydWUp Cj4gICNkZWZpbmUgYXNzZXJ0X2VkcF9wbGxfZGlzYWJsZWQoZCkgYXNzZXJ0X2VkcF9wbGwoKGQp LCBmYWxzZSkKPiAgCj4gLXN0YXRpYyB2b2lkIGlyb25sYWtlX2VkcF9wbGxfb24oc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKPiArc3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3BsbF9vbihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICsJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmNydGMpOwo+ICsJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNl LmNydGMpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7Cj4gIAo+ICAJYXNzZXJ0X3BpcGVfZGlzYWJsZWQoZGV2X3ByaXYsIGNy dGMtPnBpcGUpOwo+IEBAIC0yMjY3LDExICsyMjY4LDExIEBAIHN0YXRpYyB2b2lkIGlyb25sYWtl X2VkcF9wbGxfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWFzc2VydF9lZHBfcGxs X2Rpc2FibGVkKGRldl9wcml2KTsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJlbmFibGluZyBlRFAg UExMIGZvciBjbG9jayAlZFxuIiwKPiAtCQkgICAgICBjcnRjLT5jb25maWctPnBvcnRfY2xvY2sp Owo+ICsJCSAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrKTsKPiAgCj4gIAlpbnRlbF9kcC0+ RFAgJj0gfkRQX1BMTF9GUkVRX01BU0s7Cj4gIAo+IC0JaWYgKGNydGMtPmNvbmZpZy0+cG9ydF9j bG9jayA9PSAxNjIwMDApCj4gKwlpZiAocGlwZV9jb25maWctPnBvcnRfY2xvY2sgPT0gMTYyMDAw KQo+ICAJCWludGVsX2RwLT5EUCB8PSBEUF9QTExfRlJFUV8xNjJNSFo7Cj4gIAllbHNlCj4gIAkJ aW50ZWxfZHAtPkRQIHw9IERQX1BMTF9GUkVRXzI3ME1IWjsKPiBAQCAtMjQ4NSwxMyArMjQ4Niwx MiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9z dGF0ZSkKPiAgewo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9k cCgmZW5jb2Rlci0+YmFzZSk7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5j b2Rlci0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAKPiAtCWlmIChjcnRjLT5jb25maWctPmhh c19hdWRpbykKPiArCWlmIChvbGRfY3J0Y19zdGF0ZS0+aGFzX2F1ZGlvKQo+ICAJCWludGVsX2F1 ZGlvX2NvZGVjX2Rpc2FibGUoZW5jb2Rlcik7Cj4gIAo+IC0JaWYgKEhBU19QU1IoZGV2KSAmJiAh SEFTX0RESShkZXYpKQo+ICsJaWYgKEhBU19QU1IoZGV2X3ByaXYpICYmICFIQVNfRERJKGRldl9w cml2KSkKPiAgCQlpbnRlbF9wc3JfZGlzYWJsZShpbnRlbF9kcCk7Cj4gIAo+ICAJLyogTWFrZSBz dXJlIHRoZSBwYW5lbCBpcyBvZmYgYmVmb3JlIHRyeWluZyB0byBjaGFuZ2UgdGhlIG1vZGUuIEJ1 dCBhbHNvCj4gQEAgLTI1MDIsNyArMjUwMiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVf ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlpbnRlbF9lZHBfcGFuZWxfb2Zm KGludGVsX2RwKTsKPiAgCj4gIAkvKiBkaXNhYmxlIHRoZSBwb3J0IGJlZm9yZSB0aGUgcGlwZSBv biBnNHggKi8KPiAtCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDUpCj4gKwlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA8IDUpCj4gIAkJaW50ZWxfZHBfbGlua19kb3duKGludGVsX2RwKTsKPiAg fQo+ICAKPiBAQCAtMjYzMSwxMiArMjYzMSwxMSBAQCBfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4o c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQg aW50ZWxfZHBfZW5hYmxlX3BvcnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiArc3RhdGlj IHZvaWQgaW50ZWxfZHBfZW5hYmxlX3BvcnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAr CQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIHsKPiAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPQo+IC0JCXRvX2ludGVsX2NydGMoZHBfdG9fZGlnX3BvcnQoaW50 ZWxfZHApLT5iYXNlLmJhc2UuY3J0Yyk7Cj4gIAo+ICAJLyogZW5hYmxlIHdpdGggcGF0dGVybiAx IChhcyBwZXIgc3BlYykgKi8KPiAgCV9pbnRlbF9kcF9zZXRfbGlua190cmFpbihpbnRlbF9kcCwg JmludGVsX2RwLT5EUCwKPiBAQCAtMjY1MiwxNCArMjY1MSwxNSBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kcF9lbmFibGVfcG9ydChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJICogZmFpbCB3 aGVuIHRoZSBwb3dlciBzZXF1ZW5jZXIgaXMgZnJlc2hseSB1c2VkIGZvciB0aGlzIHBvcnQuCj4g IAkgKi8KPiAgCWludGVsX2RwLT5EUCB8PSBEUF9QT1JUX0VOOwo+IC0JaWYgKGNydGMtPmNvbmZp Zy0+aGFzX2F1ZGlvKQo+ICsJaWYgKG9sZF9jcnRjX3N0YXRlLT5oYXNfYXVkaW8pCj4gIAkJaW50 ZWxfZHAtPkRQIHw9IERQX0FVRElPX09VVFBVVF9FTkFCTEU7Cj4gIAo+ICAJSTkxNV9XUklURShp bnRlbF9kcC0+b3V0cHV0X3JlZywgaW50ZWxfZHAtPkRQKTsKPiAgCVBPU1RJTkdfUkVBRChpbnRl bF9kcC0+b3V0cHV0X3JlZyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfZW5h YmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiBAQCAtMjY3Niw3ICsyNjc2LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQo+ICAJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCj4gIAkJ dmx2X2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyKGludGVsX2RwKTsKPiAgCj4gLQlpbnRlbF9k cF9lbmFibGVfcG9ydChpbnRlbF9kcCk7Cj4gKwlpbnRlbF9kcF9lbmFibGVfcG9ydChpbnRlbF9k cCwgcGlwZV9jb25maWcpOwo+ICAKPiAgCWVkcF9wYW5lbF92ZGRfb24oaW50ZWxfZHApOwo+ICAJ ZWRwX3BhbmVsX29uKGludGVsX2RwKTsKPiBAQCAtMjY4OCw3ICsyNjg4LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJCXVu c2lnbmVkIGludCBsYW5lX21hc2sgPSAweDA7Cj4gIAo+ICAJCWlmIChJU19DSEVSUllWSUVXKGRl dikpCj4gLQkJCWxhbmVfbWFzayA9IGludGVsX2RwX3VudXNlZF9sYW5lX21hc2soY3J0Yy0+Y29u ZmlnLT5sYW5lX2NvdW50KTsKPiArCQkJbGFuZV9tYXNrID0gaW50ZWxfZHBfdW51c2VkX2xhbmVf bWFzayhwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCk7Cj4gIAo+ICAJCXZsdl93YWl0X3BvcnRfcmVh ZHkoZGV2X3ByaXYsIGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKSwKPiAgCQkJCSAgICBsYW5lX21h c2spOwo+IEBAIC0yNjk4LDcgKzI2OTgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfZHAo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlpbnRlbF9kcF9zdGFydF9saW5rX3Ry YWluKGludGVsX2RwKTsKPiAgCWludGVsX2RwX3N0b3BfbGlua190cmFpbihpbnRlbF9kcCk7Cj4g IAo+IC0JaWYgKGNydGMtPmNvbmZpZy0+aGFzX2F1ZGlvKSB7Cj4gKwlpZiAocGlwZV9jb25maWct Pmhhc19hdWRpbykgewo+ICAJCURSTV9ERUJVR19EUklWRVIoIkVuYWJsaW5nIERQIGF1ZGlvIG9u IHBpcGUgJWNcbiIsCj4gIAkJCQkgcGlwZV9uYW1lKHBpcGUpKTsKPiAgCQlpbnRlbF9hdWRpb19j b2RlY19lbmFibGUoZW5jb2Rlcik7Cj4gQEAgLTI3MTEsNyArMjcxMSw3IEBAIHN0YXRpYyB2b2lk IGc0eF9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIHsKPiAgCXN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2Up Owo+ICAKPiAtCWludGVsX2VuYWJsZV9kcChlbmNvZGVyKTsKPiArCWludGVsX2VuYWJsZV9kcChl bmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gIAlpbnRlbF9lZHBfYmFja2xpZ2h0X29uKGludGVsX2Rw KTsKPiAgfQo+ICAKPiBAQCAtMjczMiwxMSArMjczMiwxMSBAQCBzdGF0aWMgdm9pZCBnNHhfcHJl X2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAJZW51 bSBwb3J0IHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7Cj4gIAo+IC0JaW50 ZWxfZHBfcHJlcGFyZShlbmNvZGVyKTsKPiArCWludGVsX2RwX3ByZXBhcmUoZW5jb2RlciwgcGlw ZV9jb25maWcpOwo+ICAKPiAgCS8qIE9ubHkgaWxrKyBoYXMgcG9ydCBBICovCj4gIAlpZiAocG9y dCA9PSBQT1JUX0EpCj4gLQkJaXJvbmxha2VfZWRwX3BsbF9vbihpbnRlbF9kcCk7Cj4gKwkJaXJv bmxha2VfZWRwX3BsbF9vbihpbnRlbF9kcCwgcGlwZV9jb25maWcpOwo+ICB9Cj4gIAo+ICBzdGF0 aWMgdm9pZCB2bHZfZGV0YWNoX3Bvd2VyX3NlcXVlbmNlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+IEBAIC0yODQ4LDE0ICsyODQ4LDE0IEBAIHN0YXRpYyB2b2lkIHZsdl9wcmVfZW5hYmxl X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICB7Cj4gIAl2bHZfcGh5X3ByZV9l bmNvZGVyX2VuYWJsZShlbmNvZGVyKTsKPiAgCj4gLQlpbnRlbF9lbmFibGVfZHAoZW5jb2Rlcik7 Cj4gKwlpbnRlbF9lbmFibGVfZHAoZW5jb2RlciwgcGlwZV9jb25maWcpOwo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZCB2bHZfZHBfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAg CQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAtCWlu dGVsX2RwX3ByZXBhcmUoZW5jb2Rlcik7Cj4gKwlpbnRlbF9kcF9wcmVwYXJlKGVuY29kZXIsIHBp cGVfY29uZmlnKTsKPiAgCj4gIAl2bHZfcGh5X3ByZV9wbGxfZW5hYmxlKGVuY29kZXIpOwo+ICB9 Cj4gQEAgLTI4NjYsNyArMjg2Niw3IEBAIHN0YXRpYyB2b2lkIGNodl9wcmVfZW5hYmxlX2RwKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICB7Cj4gIAljaHZfcGh5X3ByZV9lbmNvZGVy X2VuYWJsZShlbmNvZGVyKTsKPiAgCj4gLQlpbnRlbF9lbmFibGVfZHAoZW5jb2Rlcik7Cj4gKwlp bnRlbF9lbmFibGVfZHAoZW5jb2RlciwgcGlwZV9jb25maWcpOwo+ICAKPiAgCS8qIFNlY29uZCBj b21tb24gbGFuZSB3aWxsIHN0YXkgYWxpdmUgb24gaXRzIG93biBub3cgKi8KPiAgCWNodl9waHlf cmVsZWFzZV9jbDJfb3ZlcnJpZGUoZW5jb2Rlcik7Cj4gQEAgLTI4NzYsNyArMjg3Niw3IEBAIHN0 YXRpYyB2b2lkIGNodl9kcF9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJ CQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+IC0JaW50 ZWxfZHBfcHJlcGFyZShlbmNvZGVyKTsKPiArCWludGVsX2RwX3ByZXBhcmUoZW5jb2RlciwgcGlw ZV9jb25maWcpOwo+ICAKPiAgCWNodl9waHlfcHJlX3BsbF9lbmFibGUoZW5jb2Rlcik7Cj4gIH0K PiBAQCAtNTA1NywxNCArNTA1NywxNCBAQCBpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVl bmNlcl9yZWdpc3RlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgICoKPiAgICogVGhlIGNh bGxlciBvZiB0aGlzIGZ1bmN0aW9uIG5lZWRzIHRvIHRha2UgYSBsb2NrIG9uIGRldl9wcml2LT5k cnJzLgo+ICAgKi8KPiAtc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IHJlZnJlc2hfcmF0ZSkKPiArc3RhdGljIHZvaWQgaW50ZWxf ZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJ CQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkJICAgIGlu dCByZWZyZXNoX3JhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ICAJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBOVUxMOwo+ICAJc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCA9IGRldl9wcml2LT5kcnJzLmRwOwo+IC0Jc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNvbmZpZyA9IE5VTEw7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IE5VTEw7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAgCWVudW0gZHJyc19yZWZyZXNoX3JhdGVfdHlw ZSBpbmRleCA9IERSUlNfSElHSF9SUjsKPiAgCj4gIAlpZiAocmVmcmVzaF9yYXRlIDw9IDApIHsK PiBAQCAtNTA5MSw4ICs1MDkxLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3Rh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHJlZnJlc2hfcmF0ZSkKPiAgCQlyZXR1cm47 Cj4gIAl9Cj4gIAo+IC0JY29uZmlnID0gaW50ZWxfY3J0Yy0+Y29uZmlnOwo+IC0KPiAgCWlmIChk ZXZfcHJpdi0+ZHJycy50eXBlIDwgU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7Cj4gIAkJRFJNX0RF QlVHX0tNUygiT25seSBTZWFtbGVzcyBEUlJTIHN1cHBvcnRlZC5cbiIpOwo+ICAJCXJldHVybjsK PiBAQCAtNTEwOCwxMiArNTEwNiwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9zZXRfZHJyc19z dGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcmVmcmVzaF9yYXRlKQo+ICAJCXJldHVy bjsKPiAgCX0KPiAgCj4gLQlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkgewo+ICsJaWYgKCFjcnRj X3N0YXRlLT5iYXNlLmFjdGl2ZSkgewo+ICAJCURSTV9ERUJVR19LTVMoImVEUCBlbmNvZGVyIGRp c2FibGVkLiBDUlRDIG5vdCBBY3RpdmVcbiIpOwo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gLQlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCAmJiAhSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4g KwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4ICYmICFJU19DSEVSUllWSUVXKGRldl9wcml2 KSkgewo+ICAJCXN3aXRjaCAoaW5kZXgpIHsKPiAgCQljYXNlIERSUlNfSElHSF9SUjoKPiAgCQkJ aW50ZWxfZHBfc2V0X21fbihpbnRlbF9jcnRjLCBNMV9OMSk7Cj4gQEAgLTUxMjUsMTggKzUxMjMs MTggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgaW50IHJlZnJlc2hfcmF0ZSkKPiAgCQlkZWZhdWx0Ogo+ICAJCQlEUk1fRVJST1Io IlVuc3VwcG9ydGVkIHJlZnJlc2hyYXRlIHR5cGVcbiIpOwo+ICAJCX0KPiAtCX0gZWxzZSBpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPiA2KSB7Cj4gLQkJaTkxNV9yZWdfdCByZWcgPSBQSVBFQ09O RihpbnRlbF9jcnRjLT5jb25maWctPmNwdV90cmFuc2NvZGVyKTsKPiArCX0gZWxzZSBpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+IDYpIHsKPiArCQlpOTE1X3JlZ190IHJlZyA9IFBJUEVDT05GKGNy dGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyKTsKPiAgCQl1MzIgdmFsOwo+ICAKPiAgCQl2YWwgPSBJ OTE1X1JFQUQocmVnKTsKPiAgCQlpZiAoaW5kZXggPiBEUlJTX0hJR0hfUlIpIHsKPiAtCQkJaWYg KElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCj4gKwkJCWlmIChJU19W QUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQkJCXZh bCB8PSBQSVBFQ09ORl9FRFBfUlJfTU9ERV9TV0lUQ0hfVkxWOwo+ICAJCQllbHNlCj4gIAkJCQl2 YWwgfD0gUElQRUNPTkZfRURQX1JSX01PREVfU1dJVENIOwo+ICAJCX0gZWxzZSB7Cj4gLQkJCWlm IChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJCQlpZiAoSVNf VkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gIAkJCQl2 YWwgJj0gflBJUEVDT05GX0VEUF9SUl9NT0RFX1NXSVRDSF9WTFY7Cj4gIAkJCWVsc2UKPiAgCQkJ CXZhbCAmPSB+UElQRUNPTkZfRURQX1JSX01PREVfU1dJVENIOwo+IEBAIC01MTU1LDE1ICs1MTUz LDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX3NldF9kcnJzX3N0YXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCByZWZyZXNoX3JhdGUpCj4gICAqCj4gICAqIEluaXRpYWxpemVzIGZyb250 YnVmZmVyX2JpdHMgYW5kIGRycnMuZHAKPiAgICovCj4gLXZvaWQgaW50ZWxfZWRwX2RycnNfZW5h YmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gK3ZvaWQgaW50ZWxfZWRwX2RycnNfZW5h YmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gKwkJCSAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50 ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRj ID0gZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAKPiAtCWlmICghaW50ZWxfY3J0Yy0+Y29u ZmlnLT5oYXNfZHJycykgewo+ICsJaWYgKCFjcnRjX3N0YXRlLT5oYXNfZHJycykgewo+ICAJCURS TV9ERUJVR19LTVMoIlBhbmVsIGRvZXNuJ3Qgc3VwcG9ydCBEUlJTXG4iKTsKPiAgCQlyZXR1cm47 Cj4gIAl9Cj4gQEAgLTUxODcsMTUgKzUxODMsMTMgQEAgdW5sb2NrOgo+ICAgKiBAaW50ZWxfZHA6 IERQIHN0cnVjdAo+ICAgKgo+ICAgKi8KPiAtdm9pZCBpbnRlbF9lZHBfZHJyc19kaXNhYmxlKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gK3ZvaWQgaW50ZWxfZWRwX2RycnNfZGlzYWJsZShz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICsJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm9sZF9jcnRjX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50 ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRj ID0gZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAKPiAtCWlmICghaW50ZWxfY3J0Yy0+Y29u ZmlnLT5oYXNfZHJycykKPiArCWlmICghb2xkX2NydGNfc3RhdGUtPmhhc19kcnJzKQo+ICAJCXJl dHVybjsKPiAgCj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJycy5tdXRleCk7Cj4gQEAgLTUy MDUsOSArNTE5OSw4IEBAIHZvaWQgaW50ZWxfZWRwX2RycnNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ICAJfQo+ICAKPiAgCWlmIChkZXZfcHJpdi0+ZHJycy5yZWZyZXNoX3Jh dGVfdHlwZSA9PSBEUlJTX0xPV19SUikKPiAtCQlpbnRlbF9kcF9zZXRfZHJyc19zdGF0ZSgmZGV2 X3ByaXYtPmRybSwKPiAtCQkJCQlpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yLT5wYW5lbC4K PiAtCQkJCQlmaXhlZF9tb2RlLT52cmVmcmVzaCk7Cj4gKwkJaW50ZWxfZHBfc2V0X2RycnNfc3Rh dGUoZGV2X3ByaXYsIG9sZF9jcnRjX3N0YXRlLAo+ICsJCQlpbnRlbF9kcC0+YXR0YWNoZWRfY29u bmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlLT52cmVmcmVzaCk7Cj4gIAo+ICAJZGV2X3ByaXYtPmRy cnMuZHAgPSBOVUxMOwo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJycy5tdXRleCk7Cj4g QEAgLTUyMzYsMTAgKzUyMjksMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfZWRwX2RycnNfZG93bmNs b2NrX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAJaWYgKGRldl9wcml2LT5kcnJz LmJ1c3lfZnJvbnRidWZmZXJfYml0cykKPiAgCQlnb3RvIHVubG9jazsKPiAgCj4gLQlpZiAoZGV2 X3ByaXYtPmRycnMucmVmcmVzaF9yYXRlX3R5cGUgIT0gRFJSU19MT1dfUlIpCj4gLQkJaW50ZWxf ZHBfc2V0X2RycnNfc3RhdGUoJmRldl9wcml2LT5kcm0sCj4gLQkJCQkJaW50ZWxfZHAtPmF0dGFj aGVkX2Nvbm5lY3Rvci0+cGFuZWwuCj4gLQkJCQkJZG93bmNsb2NrX21vZGUtPnZyZWZyZXNoKTsK PiArCWlmIChkZXZfcHJpdi0+ZHJycy5yZWZyZXNoX3JhdGVfdHlwZSAhPSBEUlJTX0xPV19SUikg ewo+ICsJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+ YmFzZS5iYXNlLmNydGM7Cj4gKwo+ICsJCWludGVsX2RwX3NldF9kcnJzX3N0YXRlKGRldl9wcml2 LCB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWcsCj4gKwkJCWludGVsX2RwLT5hdHRhY2hlZF9j b25uZWN0b3ItPnBhbmVsLmRvd25jbG9ja19tb2RlLT52cmVmcmVzaCk7Cj4gKwl9Cj4gIAo+ICB1 bmxvY2s6Cj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcnJzLm11dGV4KTsKPiBAQCAtNTI4 MCw5ICs1Mjc1LDggQEAgdm9pZCBpbnRlbF9lZHBfZHJyc19pbnZhbGlkYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIAkvKiBpbnZhbGlkYXRlIG1lYW5zIGJ1c3kg c2NyZWVuIGhlbmNlIHVwY2xvY2sgKi8KPiAgCWlmIChmcm9udGJ1ZmZlcl9iaXRzICYmIGRldl9w cml2LT5kcnJzLnJlZnJlc2hfcmF0ZV90eXBlID09IERSUlNfTE9XX1JSKQo+IC0JCWludGVsX2Rw X3NldF9kcnJzX3N0YXRlKCZkZXZfcHJpdi0+ZHJtLAo+IC0JCQkJCWRldl9wcml2LT5kcnJzLmRw LT5hdHRhY2hlZF9jb25uZWN0b3ItPnBhbmVsLgo+IC0JCQkJCWZpeGVkX21vZGUtPnZyZWZyZXNo KTsKPiArCQlpbnRlbF9kcF9zZXRfZHJyc19zdGF0ZShkZXZfcHJpdiwgdG9faW50ZWxfY3J0Yyhj cnRjKS0+Y29uZmlnLAo+ICsJCQlkZXZfcHJpdi0+ZHJycy5kcC0+YXR0YWNoZWRfY29ubmVjdG9y LT5wYW5lbC5maXhlZF9tb2RlLT52cmVmcmVzaCk7Cj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+ZHJycy5tdXRleCk7Cj4gIH0KPiBAQCAtNTMyNCw5ICs1MzE4LDggQEAgdm9pZCBpbnRl bF9lZHBfZHJyc19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAo+ ICAJLyogZmx1c2ggbWVhbnMgYnVzeSBzY3JlZW4gaGVuY2UgdXBjbG9jayAqLwo+ICAJaWYgKGZy b250YnVmZmVyX2JpdHMgJiYgZGV2X3ByaXYtPmRycnMucmVmcmVzaF9yYXRlX3R5cGUgPT0gRFJS U19MT1dfUlIpCj4gLQkJaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoJmRldl9wcml2LT5kcm0sCj4g LQkJCQkJZGV2X3ByaXYtPmRycnMuZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvci0+cGFuZWwuCj4gLQkJ CQkJZml4ZWRfbW9kZS0+dnJlZnJlc2gpOwo+ICsJCWludGVsX2RwX3NldF9kcnJzX3N0YXRlKGRl dl9wcml2LCB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWcsCj4gKwkJCQlkZXZfcHJpdi0+ZHJy cy5kcC0+YXR0YWNoZWRfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlLT52cmVmcmVzaCk7Cj4g IAo+ICAJLyoKPiAgCSAqIGZsdXNoIGFsc28gbWVhbnMgbm8gbW9yZSBhY3Rpdml0eSBoZW5jZSBz Y2hlZHVsZSBkb3duY2xvY2ssIGlmIGFsbAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5k ZXggOWU1YjY3NWU4YWM1Li5kMTg0YWEyNzYwZDQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+IEBAIC0xMzg3LDggKzEzODcsMTAgQEAgdm9pZCBpbnRlbF9kcF9ob3RfcGx1ZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rlcik7Cj4gIHZvaWQgaW50ZWxfcG93ZXJfc2Vx dWVuY2VyX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHVpbnQz Ml90IGludGVsX2RwX3BhY2tfYXV4KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50IHNyY19ieXRlcyk7 Cj4gIHZvaWQgaW50ZWxfcGxhbmVfZGVzdHJveShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7Cj4g LXZvaWQgaW50ZWxfZWRwX2RycnNfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ IC12b2lkIGludGVsX2VkcF9kcnJzX2Rpc2FibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7 Cj4gK3ZvaWQgaW50ZWxfZWRwX2RycnNfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs Cj4gKwkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiArdm9pZCBp bnRlbF9lZHBfZHJyc19kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gKwkJCSAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgdm9pZCBpbnRlbF9lZHBf ZHJyc19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJ ICAgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKTsKPiAgdm9pZCBpbnRlbF9lZHBf ZHJyc19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLS0gCj4gMi43 LjQKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK