From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 05/15] drm/i915: Pass crtc_state and connector_state to encoder functions Date: Thu, 18 Aug 2016 15:30:16 +0200 Message-ID: <20160818133016.GG6232@phenom.ffwll.local> References: <1470755054-32699-1-git-send-email-maarten.lankhorst@linux.intel.com> <1470755054-32699-6-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-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id CF2346EA38 for ; Thu, 18 Aug 2016 13:30:21 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id i138so5593785wmf.3 for ; Thu, 18 Aug 2016 06:30:21 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1470755054-32699-6-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 T24gVHVlLCBBdWcgMDksIDIwMTYgYXQgMDU6MDQ6MDRQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVGhpcyBpcyBtb3N0bHkgY29kZSBjaHVybiwgd2l0aCBleGNlcHRpb24gb2Yg YSBmZXcgcGxhY2VzOgo+IC0gaW50ZWxfZGlzcGxheS5jIGhhcyBjaGFuZ2VzIGluIGludGVsX3Nh bml0aXplX2VuY29kZXIKPiAtIGludGVsX2RkaS5jIGhhcyBpbnRlbF9kZGlfZmRpX2Rpc2FibGUg Y2FsbGluZyBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlLAo+ICAgYW5kIHJlcXVpcmVkIGEgZnVuY3Rp b24gY2hhbmdlLiBBbHNvIGFmZmVjdHMgaW50ZWxfZGlzcGxheS5jCj4gLSBpbnRlbF9kcF9tc3Qu YyBwYXNzZXMgYSBOVUxMIGNydGNfc3RhdGUgYW5kIGNvbm5fc3RhdGUgdG8KPiAgIGludGVsX2Rk aV9wb3N0X2Rpc2FibGUgZm9yIHNodXR0aW5nIGRvd24gdGhlIHJlYWwgZW5jb2Rlci4KCkkgZGlk bid0IGZpbmQgdGhpcyBOVUxMIGNhbGxzaXRlLiBPdXRkYXRlZCBjb21taXQgbWVzc2FnZT8KCj4g Cj4gTm8gb3RoZXIgZnVuY3Rpb25hbCBjaGFuZ2VzIGFyZSBkb25lLCBkaWZmIHN0YXQgaXMgYWxy ZWFkeSBodWdlLgo+IEVhY2ggZW5jb2RlciB0eXBlIHdpbGwgbmVlZCB0byBiZSBmaXhlZCB0byB1 c2UgdGhlIGF0b21pYyBzdGF0ZXMKPiBzZXBhcmF0ZWx5Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1h YXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gQEAg LTUxMzEsMTIgKzUxMzcsMjYgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICAJaWYgKCF0cmFuc2NvZGVy X2lzX2RzaShjcHVfdHJhbnNjb2RlcikpCj4gIAkJaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9jbG9j ayhpbnRlbF9jcnRjKTsKPiAgCj4gLQlpbnRlbF9lbmNvZGVyc19wb3N0X2Rpc2FibGUoY3J0Yywg b2xkX3N0YXRlKTsKPiArCWludGVsX2VuY29kZXJzX3Bvc3RfZGlzYWJsZShjcnRjLCBvbGRfY3J0 Y19zdGF0ZSwgb2xkX3N0YXRlKTsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNf cGNoX2VuY29kZXIpIHsKPiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5f c3RhdGU7Cj4gKwkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47Cj4gKwkJaW50IGk7Cj4gKwo+ ICAJCWxwdF9kaXNhYmxlX3BjaF90cmFuc2NvZGVyKGRldl9wcml2KTsKPiAgCQlscHRfZGlzYWJs ZV9pY2xraXAoZGV2X3ByaXYpOwo+IC0JCWludGVsX2RkaV9mZGlfZGlzYWJsZShjcnRjKTsKPiAr Cj4gKwkJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nv bm5fc3RhdGUsIGkpCj4gKwkJCWlmIChvbGRfY29ubl9zdGF0ZS0+Y3J0YyA9PSBjcnRjKSB7Cj4g KwkJCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9Cj4gKwkJCQkJdG9faW50ZWxfZW5j b2RlcihvbGRfY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKTsKPiArCj4gKwkJCQlpbnRlbF9kZGlf ZmRpX2Rpc2FibGUoZW5jb2RlciwKPiArCQkJCQkJICAgICAgb2xkX2NydGNfc3RhdGUsCj4gKwkJ CQkJCSAgICAgIG9sZF9jb25uX3N0YXRlKTsKPiArCQkJCWJyZWFrOwo+ICsJCQl9CgpUaGlzIGlz IHByZXR0eSBtdWNoIHRoZSByZWFzb25lIHdoeSBJIHRoaW5rIHRoZSBoc3crIGZkaSBjb2RlIHNo b3VsZCBiZQpwYXJ0IG9mIHRoZSBscHQrY3J0IGVuY29kZXIgZHJpdmVyLCBhbmQgX25vdF8gaW4g dGhlIHNoYXJlZCBjcnRjIGxvZ2ljLgpJJ3ZlIHNlbnQgYXJvdW5kIHBhdGNoZXMgYSBmZXcgdGlt ZXMgdG8gbWFrZSB0aGlzIGhhcHBlbiwgYnV0IHRoZXkgYWxsIGdvdApzaG90IGRvd24gYmVjYXVz ZSB0aGF0IG1ha2VzIGl0IHVubGlrZSB0aGUgaWxrLWl2YiBtb2Rlc2V0IGNvZGUuCgpJbW8gaXQn cyB0aW1lIHRvIGZpbmFsbHkgZG8gdGhpcywgYXQgbGVhc3QgZm9yIHRoaXMgb25lIGhlcmUuIE5l ZWRzIHRvIGJlCmEgcHJlcCBwYXRjaC4KCj4gIAo+ICAJCWludGVsX3NldF9wY2hfZmlmb191bmRl cnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIFRSQU5TQ09ERVJfQSwKPiAgCQkJCQkJICAgICAgdHJ1 ZSk7Cj4gQEAgLTYyMjcsNyArNjI0Nyw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfY3J0Y19l bmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAKPiAgCWludGVs X3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwo+ ICAKPiAtCWludGVsX2VuY29kZXJzX3ByZV9wbGxfZW5hYmxlKGNydGMsIG9sZF9zdGF0ZSk7Cj4g KwlpbnRlbF9lbmNvZGVyc19wcmVfcGxsX2VuYWJsZShjcnRjLCBwaXBlX2NvbmZpZywgb2xkX3N0 YXRlKTsKPiAgCj4gIAlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gIAkJY2h2X3ByZXBhcmVf cGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7Cj4gQEAgLTYyMzcsNyArNjI1Nyw3 IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJCXZsdl9lbmFibGVfcGxsKGludGVsX2NydGMsIGludGVs X2NydGMtPmNvbmZpZyk7Cj4gIAl9Cj4gIAo+IC0JaW50ZWxfZW5jb2RlcnNfcHJlX2VuYWJsZShj cnRjLCBvbGRfc3RhdGUpOwo+ICsJaW50ZWxfZW5jb2RlcnNfcHJlX2VuYWJsZShjcnRjLCBwaXBl X2NvbmZpZywgb2xkX3N0YXRlKTsKPiAgCj4gIAlpOXh4X3BmaXRfZW5hYmxlKGludGVsX2NydGMp Owo+ICAKPiBAQCAtNjI0OSw3ICs2MjY5LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRj X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAlhc3NlcnRf dmJsYW5rX2Rpc2FibGVkKGNydGMpOwo+ICAJZHJtX2NydGNfdmJsYW5rX29uKGNydGMpOwo+ICAK PiAtCWludGVsX2VuY29kZXJzX2VuYWJsZShjcnRjLCBvbGRfc3RhdGUpOwo+ICsJaW50ZWxfZW5j b2RlcnNfZW5hYmxlKGNydGMsIHBpcGVfY29uZmlnLCBvbGRfc3RhdGUpOwo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZCBpOXh4X3NldF9wbGxfZGl2aWRlcnMoc3RydWN0IGludGVsX2NydGMgKmNydGMp Cj4gQEAgLTYyODgsNyArNjMwOCw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJaWYgKCFJU19HRU4yKGRldikp Cj4gIAkJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGlw ZSwgdHJ1ZSk7Cj4gIAo+IC0JaW50ZWxfZW5jb2RlcnNfcHJlX2VuYWJsZShjcnRjLCBvbGRfc3Rh dGUpOwo+ICsJaW50ZWxfZW5jb2RlcnNfcHJlX2VuYWJsZShjcnRjLCBwaXBlX2NvbmZpZywgb2xk X3N0YXRlKTsKPiAgCj4gIAlpOXh4X2VuYWJsZV9wbGwoaW50ZWxfY3J0Yyk7Cj4gIAo+IEBAIC02 MzAyLDcgKzYzMjIsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCWFzc2VydF92YmxhbmtfZGlzYWJsZWQoY3J0 Yyk7Cj4gIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7Cj4gIAo+IC0JaW50ZWxfZW5jb2RlcnNf ZW5hYmxlKGNydGMsIG9sZF9zdGF0ZSk7Cj4gKwlpbnRlbF9lbmNvZGVyc19lbmFibGUoY3J0Yywg cGlwZV9jb25maWcsIG9sZF9zdGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGk5eHhfcGZp dF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+IEBAIC02MzM2LDcgKzYzNTYsNyBA QCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq b2xkX2NydGNfc3RhdGUsCj4gIAlpZiAoSVNfR0VOMihkZXYpKQo+ICAJCWludGVsX3dhaXRfZm9y X3ZibGFuayhkZXYsIHBpcGUpOwo+ICAKPiAtCWludGVsX2VuY29kZXJzX2Rpc2FibGUoY3J0Yywg b2xkX3N0YXRlKTsKPiArCWludGVsX2VuY29kZXJzX2Rpc2FibGUoY3J0Yywgb2xkX2NydGNfc3Rh dGUsIG9sZF9zdGF0ZSk7Cj4gIAo+ICAJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKPiAgCWFz c2VydF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7Cj4gQEAgLTYzNDUsNyArNjM2NSw3IEBAIHN0YXRp YyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSwKPiAgCj4gIAlpOXh4X3BmaXRfZGlzYWJsZShpbnRlbF9jcnRjKTsKPiAgCj4gLQlp bnRlbF9lbmNvZGVyc19wb3N0X2Rpc2FibGUoY3J0Yywgb2xkX3N0YXRlKTsKPiArCWludGVsX2Vu Y29kZXJzX3Bvc3RfZGlzYWJsZShjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgb2xkX3N0YXRlKTsKPiAg Cj4gIAlpZiAoIWludGVsX2NydGNfaGFzX3R5cGUoaW50ZWxfY3J0Yy0+Y29uZmlnLCBJTlRFTF9P VVRQVVRfRFNJKSkgewo+ICAJCWlmIChJU19DSEVSUllWSUVXKGRldikpCj4gQEAgLTYzNTYsNyAr NjM3Niw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAgCQkJaTl4eF9kaXNhYmxlX3BsbChpbnRlbF9jcnRj KTsKPiAgCX0KPiAgCj4gLQlpbnRlbF9lbmNvZGVyc19wb3N0X3BsbF9kaXNhYmxlKGNydGMsIG9s ZF9zdGF0ZSk7Cj4gKwlpbnRlbF9lbmNvZGVyc19wb3N0X3BsbF9kaXNhYmxlKGNydGMsIG9sZF9j cnRjX3N0YXRlLCBvbGRfc3RhdGUpOwo+ICAKPiAgCWlmICghSVNfR0VOMihkZXYpKQo+ICAJCWlu dGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZhbHNl KTsKPiBAQCAtMTU4NTgsMTcgKzE1ODc4LDYgQEAgc3RhdGljIGJvb2wgaW50ZWxfY3J0Y19oYXNf ZW5jb2RlcnMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAlyZXR1cm4gZmFsc2U7Cj4gIH0K PiAgCj4gLXN0YXRpYyBib29sIGludGVsX2VuY29kZXJfaGFzX2Nvbm5lY3RvcnMoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBl bmNvZGVyLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsK PiAtCj4gLQlmb3JfZWFjaF9jb25uZWN0b3Jfb25fZW5jb2RlcihkZXYsICZlbmNvZGVyLT5iYXNl LCBjb25uZWN0b3IpCj4gLQkJcmV0dXJuIHRydWU7Cj4gLQo+IC0JcmV0dXJuIGZhbHNlOwo+IC19 CgpJbW8gcmVuYW1lIHRoaXMgdG8gc3RhdGljIGludGVsX2Nvbm5lY3RvciAqaW50ZWxfZW5jb2Rl cl9maW5kX2Nvbm5lY3RvcgphbmQgdGhlbiB0aGUgYmVsb3cgY29kZSBjaGFuZ2VzIGJlY29tZXMg YSBsb3QgbW9yZSByZWFkYWJsZS4KCk90aGVyd2lzZSBsZ3RtLgotRGFuaWVsCgo+IC0KPiAgc3Rh dGljIHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAg ewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+IEBAIC0xNTk1 NSw2ICsxNTk2NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2VuY29kZXIoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcjsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRl djsKPiArCWJvb2wgZm91bmRfY29ubmVjdG9yID0gZmFsc2U7Cj4gIAo+ICAJLyogV2UgbmVlZCB0 byBjaGVjayBib3RoIGZvciBhIGNydGMgbGluayAobWVhbmluZyB0aGF0IHRoZQo+ICAJICogZW5j b2RlciBpcyBhY3RpdmUgYW5kIHRyeWluZyB0byByZWFkIGZyb20gYSBwaXBlKSBhbmQgdGhlCj4g QEAgLTE1OTYyLDcgKzE1OTcyLDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2VuY29k ZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlib29sIGhhc19hY3RpdmVfY3J0 YyA9IGVuY29kZXItPmJhc2UuY3J0YyAmJgo+ICAJCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFz ZS5jcnRjKS0+YWN0aXZlOwo+ICAKPiAtCWlmIChpbnRlbF9lbmNvZGVyX2hhc19jb25uZWN0b3Jz KGVuY29kZXIpICYmICFoYXNfYWN0aXZlX2NydGMpIHsKPiArCWZvcl9lYWNoX2Nvbm5lY3Rvcl9v bl9lbmNvZGVyKGRldiwgJmVuY29kZXItPmJhc2UsIGNvbm5lY3Rvcikgewo+ICsJCWZvdW5kX2Nv bm5lY3RvciA9IHRydWU7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJaWYgKGZvdW5kX2Nvbm5l Y3RvciAmJiAhaGFzX2FjdGl2ZV9jcnRjKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiW0VOQ09ERVI6 JWQ6JXNdIGhhcyBhY3RpdmUgY29ubmVjdG9ycyBidXQgbm8gYWN0aXZlIHBpcGUhXG4iLAo+ICAJ CQkgICAgICBlbmNvZGVyLT5iYXNlLmJhc2UuaWQsCj4gIAkJCSAgICAgIGVuY29kZXItPmJhc2Uu bmFtZSk7Cj4gQEAgLTE1OTcxLDEyICsxNTk4NiwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zYW5p dGl6ZV9lbmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJCSAqIGZhbGxv dXQgZnJvbSBvdXIgcmVzdW1lIHJlZ2lzdGVyIHJlc3RvcmluZy4gRGlzYWJsZQo+ICAJCSAqIHRo ZSBlbmNvZGVyIG1hbnVhbGx5IGFnYWluLiAqLwo+ICAJCWlmIChlbmNvZGVyLT5iYXNlLmNydGMp IHsKPiArCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gZW5jb2Rlci0+YmFz ZS5jcnRjLT5zdGF0ZTsKPiArCj4gIAkJCURSTV9ERUJVR19LTVMoIltFTkNPREVSOiVkOiVzXSBt YW51YWxseSBkaXNhYmxlZFxuIiwKPiAgCQkJCSAgICAgIGVuY29kZXItPmJhc2UuYmFzZS5pZCwK PiAgCQkJCSAgICAgIGVuY29kZXItPmJhc2UubmFtZSk7Cj4gLQkJCWVuY29kZXItPmRpc2FibGUo ZW5jb2Rlcik7Cj4gKwkJCWVuY29kZXItPmRpc2FibGUoZW5jb2RlciwgdG9faW50ZWxfY3J0Y19z dGF0ZShjcnRjX3N0YXRlKSwgY29ubmVjdG9yLT5iYXNlLnN0YXRlKTsKPiAgCQkJaWYgKGVuY29k ZXItPnBvc3RfZGlzYWJsZSkKPiAtCQkJCWVuY29kZXItPnBvc3RfZGlzYWJsZShlbmNvZGVyKTsK PiArCQkJCWVuY29kZXItPnBvc3RfZGlzYWJsZShlbmNvZGVyLCB0b19pbnRlbF9jcnRjX3N0YXRl KGNydGNfc3RhdGUpLCBjb25uZWN0b3ItPmJhc2Uuc3RhdGUpOwo+ICAJCX0KPiAgCQllbmNvZGVy LT5iYXNlLmNydGMgPSBOVUxMOwo+ICAKPiBAQCAtMTU5ODQsMTIgKzE2MDAxLDkgQEAgc3RhdGlj IHZvaWQgaW50ZWxfc2FuaXRpemVfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPiAgCQkgKiBhIGJ1ZyBpbiBvbmUgb2YgdGhlIGdldF9od19zdGF0ZSBmdW5jdGlvbnMuIE9y IHNvbWVwbGFjZSBlbHNlCj4gIAkJICogaW4gb3VyIGNvZGUsIGxpa2UgdGhlIHJlZ2lzdGVyIHJl c3RvcmUgbWVzcyBvbiByZXN1bWUuIENsYW1wCj4gIAkJICogdGhpbmdzIHRvIG9mZiBhcyBhIHNh ZmVyIGRlZmF1bHQuICovCj4gLQkJZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yKGRldiwgY29ubmVj dG9yKSB7Cj4gLQkJCWlmIChjb25uZWN0b3ItPmVuY29kZXIgIT0gZW5jb2RlcikKPiAtCQkJCWNv bnRpbnVlOwo+IC0JCQljb25uZWN0b3ItPmJhc2UuZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOwo+ IC0JCQljb25uZWN0b3ItPmJhc2UuZW5jb2RlciA9IE5VTEw7Cj4gLQkJfQo+ICsKPiArCQljb25u ZWN0b3ItPmJhc2UuZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOwo+ICsJCWNvbm5lY3Rvci0+YmFz ZS5lbmNvZGVyID0gTlVMTDsKPiAgCX0KPiAgCS8qIEVuYWJsZWQgZW5jb2RlcnMgd2l0aG91dCBh Y3RpdmUgY29ubmVjdG9ycyB3aWxsIGJlIGZpeGVkIGluCj4gIAkgKiB0aGUgY3J0YyBmaXh1cC4g Ki8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCA4ZmUyYWZhNTQzOWUuLjhiZjFiYTMx NjZlOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0yNDc5LDcgKzI0NzksOSBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RwKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxl X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+IEBAIC0yNTAzLDcgKzI1MDUsOSBAQCBz dGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQo+ICAJCWludGVsX2RwX2xpbmtfZG93bihpbnRlbF9kcCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2 b2lkIGlsa19wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g K3N0YXRpYyB2b2lkIGlsa19wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4g KwkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gIHsKPiAg CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJh c2UpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7 Cj4gQEAgLTI1MTUsMTQgKzI1MTksMTggQEAgc3RhdGljIHZvaWQgaWxrX3Bvc3RfZGlzYWJsZV9k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCQlpcm9ubGFrZV9lZHBfcGxsX29m ZihpbnRlbF9kcCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHZsdl9wb3N0X2Rpc2FibGVfZHAo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIHZsdl9wb3N0X2Rp c2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gKwkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAKPiAgCWludGVsX2RwX2xp bmtfZG93bihpbnRlbF9kcCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGNodl9wb3N0X2Rpc2Fi bGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGNodl9w b3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQlzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gKwkJCQlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+IEBAIC0yNjk2LDcgKzI3MDQsOSBA QCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGc0eF9lbmFibGVfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGc0eF9lbmFibGVfZHAoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnLAo+ICsJCQkgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2Rw KCZlbmNvZGVyLT5iYXNlKTsKPiAgCj4gQEAgLTI3MDQsNyArMjcxNCw5IEBAIHN0YXRpYyB2b2lk IGc0eF9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlpbnRlbF9l ZHBfYmFja2xpZ2h0X29uKGludGVsX2RwKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdmx2X2Vu YWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgdmx2 X2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCSAgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAKPiBAQCAtMjcxMiw3ICsyNzI0 LDkgQEAgc3RhdGljIHZvaWQgdmx2X2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKPiAgCWludGVsX3Bzcl9lbmFibGUoaW50ZWxfZHApOwo+ICB9Cj4gIAo+IC1zdGF0aWMg dm9pZCBnNHhfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAr c3RhdGljIHZvaWQgZzR4X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAr CQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAg CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJh c2UpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7 Cj4gQEAgLTI4MjcsMjEgKzI4NDEsMjcgQEAgc3RhdGljIHZvaWQgdmx2X2luaXRfcGFuZWxfcG93 ZXJfc2VxdWVuY2VyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAlpbnRlbF9kcF9pbml0 X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoZGV2LCBpbnRlbF9kcCk7Cj4gIH0KPiAg Cj4gLXN0YXRpYyB2b2lkIHZsdl9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICtzdGF0aWMgdm9pZCB2bHZfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiArCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnLAo+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0 ZSkKPiAgewo+ICAJdmx2X3BoeV9wcmVfZW5jb2Rlcl9lbmFibGUoZW5jb2Rlcik7Cj4gIAo+ICAJ aW50ZWxfZW5hYmxlX2RwKGVuY29kZXIpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCB2bHZfZHBf cHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2 b2lkIHZsdl9kcF9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiArCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICsJCQkJICBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJaW50ZWxfZHBf cHJlcGFyZShlbmNvZGVyKTsKPiAgCj4gIAl2bHZfcGh5X3ByZV9wbGxfZW5hYmxlKGVuY29kZXIp Owo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBjaHZfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgY2h2X3ByZV9lbmFibGVfZHAoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZywKPiArCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGUpCj4gIHsKPiAgCWNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKGVuY29kZXIp Owo+ICAKPiBAQCAtMjg1MSwxNCArMjg3MSwxOCBAQCBzdGF0aWMgdm9pZCBjaHZfcHJlX2VuYWJs ZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCWNodl9waHlfcmVsZWFzZV9j bDJfb3ZlcnJpZGUoZW5jb2Rlcik7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGNodl9kcF9wcmVf cGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQg Y2h2X2RwX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJ CQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCQkgIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlpbnRlbF9kcF9wcmVw YXJlKGVuY29kZXIpOwo+ICAKPiAgCWNodl9waHlfcHJlX3BsbF9lbmFibGUoZW5jb2Rlcik7Cj4g IH0KPiAgCj4gLXN0YXRpYyB2b2lkIGNodl9kcF9wb3N0X3BsbF9kaXNhYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBjaHZfZHBfcG9zdF9wbGxfZGlzYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCWNodl9waHlfcG9zdF9wbGxfZGlzYWJsZShlbmNv ZGVyKTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9t c3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gaW5kZXggNjI5MzM3 ZGJjYTNkLi4zZWMyOTBjYWVmMTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBfbXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3Qu Ywo+IEBAIC05Miw3ICs5Miw5IEBAIHN0YXRpYyBib29sIGludGVsX2RwX21zdF9jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIH0KPiAgCj4gLXN0YXRp YyB2b2lkIGludGVsX21zdF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9tc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiArCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3Rh dGUsCj4gKwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19t c3QoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQgPSBpbnRlbF9tc3QtPnByaW1hcnk7Cj4gQEAgLTEwOSw3ICsxMTEsOSBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9tc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfbXN0X3Bvc3RfZGlzYWJsZV9k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfbXN0 X3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAg ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJCSAgICAg IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKPiAgewo+ICAJc3Ry dWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRlbF9tc3QgPSBlbmNfdG9fbXN0KCZlbmNvZGVy LT5iYXNlKTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0g aW50ZWxfbXN0LT5wcmltYXJ5Owo+IEBAIC0xMjgsMTIgKzEzMiwxNiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9tc3RfcG9zdF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ ICAKPiAgCWludGVsX21zdC0+Y29ubmVjdG9yID0gTlVMTDsKPiAgCWlmIChpbnRlbF9kcC0+YWN0 aXZlX21zdF9saW5rcyA9PSAwKSB7Cj4gLQkJaW50ZWxfZGlnX3BvcnQtPmJhc2UucG9zdF9kaXNh YmxlKCZpbnRlbF9kaWdfcG9ydC0+YmFzZSk7Cj4gKwkJaW50ZWxfZGlnX3BvcnQtPmJhc2UucG9z dF9kaXNhYmxlKCZpbnRlbF9kaWdfcG9ydC0+YmFzZSwKPiArCQkJCQkJICBvbGRfY3J0Y19zdGF0 ZSwgTlVMTCk7Cj4gKwo+ICAJCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVf RFBNU19PRkYpOwo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9tc3RfcHJlX2Vu YWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50 ZWxfbXN0X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJ CQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICsJCQkJICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50 ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoJmVuY29kZXItPmJhc2Up Owo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBpbnRlbF9t c3QtPnByaW1hcnk7Cj4gQEAgLTIwMCw3ICsyMDgsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tc3Rf cHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCXJldCA9IGRy bV9kcF91cGRhdGVfcGF5bG9hZF9wYXJ0MSgmaW50ZWxfZHAtPm1zdF9tZ3IpOwo+ICB9Cj4gIAo+ IC1zdGF0aWMgdm9pZCBpbnRlbF9tc3RfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9tc3RfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICsJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnLAo+ICsJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsK PiAgCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgm ZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGludGVsX21zdC0+cHJpbWFyeTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGlu ZGV4IDBlNTNjYzFmZDVjYy4uOGUwY2ExMWMwZTk5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiBAQCAtMTk1LDEyICsxOTUsMjQgQEAgc3RydWN0IGludGVsX2VuY29kZXIgewo+ICAJ dm9pZCAoKmhvdF9wbHVnKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqKTsKPiAgCWJvb2wgKCpjb21w dXRlX2NvbmZpZykoc3RydWN0IGludGVsX2VuY29kZXIgKiwKPiAgCQkJICAgICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICopOwo+IC0Jdm9pZCAoKnByZV9wbGxfZW5hYmxlKShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqKTsKPiAtCXZvaWQgKCpwcmVfZW5hYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqKTsKPiAtCXZvaWQgKCplbmFibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICopOwo+IC0Jdm9p ZCAoKmRpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICopOwo+IC0Jdm9pZCAoKnBvc3RfZGlz YWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKik7Cj4gLQl2b2lkICgqcG9zdF9wbGxfZGlzYWJs ZSkoc3RydWN0IGludGVsX2VuY29kZXIgKik7Cj4gKwl2b2lkICgqcHJlX3BsbF9lbmFibGUpKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICosCj4gKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqLAo+ICsJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Cj4gKwl2b2lk ICgqcHJlX2VuYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwKPiArCQkJICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKiwKPiArCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7 Cj4gKwl2b2lkICgqZW5hYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAo+ICsJCSAgICAgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAo+ICsJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqKTsKPiArCXZvaWQgKCpkaXNhYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAo+ ICsJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAo+ICsJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqKTsKPiArCXZvaWQgKCpwb3N0X2Rpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICosCj4gKwkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKPiArCQkJICAgICBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqKTsKPiArCXZvaWQgKCpwb3N0X3BsbF9kaXNhYmxlKShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAo+ICsJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICos Cj4gKwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Cj4gIAkvKiBSZWFkIG91dCB0 aGUgY3VycmVudCBodyBzdGF0ZSBvZiB0aGlzIGNvbm5lY3RvciwgcmV0dXJuaW5nIHRydWUgaWYK PiAgCSAqIHRoZSBlbmNvZGVyIGlzIGFjdGl2ZS4gSWYgdGhlIGVuY29kZXIgaXMgZW5hYmxlZCBp dCBhbHNvIHNldCB0aGUgcGlwZQo+ICAJICogaXQgaXMgY29ubmVjdGVkIHRvIGluIHRoZSBwaXBl IHBhcmFtZXRlci4gKi8KPiBAQCAtMTEyMiw3ICsxMTM0LDkgQEAgYm9vbCBpbnRlbF9kZGlfcGxs X3NlbGVjdChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgdm9pZCBpbnRlbF9kZGlfc2V0X3Bp cGVfc2V0dGluZ3Moc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiAgdm9pZCBpbnRlbF9kZGlfcHJl cGFyZV9saW5rX3JldHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gIGJvb2wgaW50 ZWxfZGRpX2Nvbm5lY3Rvcl9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50 ZWxfY29ubmVjdG9yKTsKPiAtdm9pZCBpbnRlbF9kZGlfZmRpX2Rpc2FibGUoc3RydWN0IGRybV9j cnRjICpjcnRjKTsKPiArdm9pZCBpbnRlbF9kZGlfZmRpX2Rpc2FibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKiwKPiArCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKPiArCQkJICAgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Cj4gIHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnKTsKPiAgc3RydWN0IGludGVsX2VuY29kZXIgKgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaS5jCj4gaW5kZXggZGU4ZTlmYjUxNTk1Li4xMDdiNzBjMTkzMzMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IEBAIC01MzUsNyArNTM1LDkgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHNpX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCj4g IHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyKTsKPiAgCj4gLXN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZW5hYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlX2Vu YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVy LT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiBAQCAtNTgyLDcgKzU4NCw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJaW50ZWxfZHNpX2VuYWJs ZShlbmNvZGVyKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfZHNpX2VuYWJsZV9ub3Ao c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGludGVsX2RzaV9l bmFibGVfbm9wKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiArCQkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJRFJNX0RFQlVHX0tNUygiXG4iKTsKPiAgCj4g QEAgLTU5Miw3ICs1OTYsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZW5hYmxlX25vcChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCSAqLwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9p ZCBpbnRlbF9kc2lfcHJlX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g K3N0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiArCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl LAo+ICsJCQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4g IHsKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVu Y29kZXItPmJhc2UpOwo+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gQEAgLTY5NCw3ICs3MDAsOSBAQCBz dGF0aWMgdm9pZCBpbnRlbF9kc2lfY2xlYXJfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICAJaW50ZWxfZGlzYWJsZV9kc2lfcGxsKGVuY29kZXIpOwo+ICB9Cj4g IAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9kc2lfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcG9zdF9kaXNhYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnLAo+ICsJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp ID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHZvLmMKPiBpbmRleCA0N2JkZjlkYWQwZDMuLjUyZGRlOWI3MWNhNSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2R2by5jCj4gQEAgLTE3NCw3ICsxNzQsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9k dm9fZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IHBpcGVfY29uZmlnLT5wb3J0X2Ns b2NrOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2R2byhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9kdm8oc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9k dm8gKmludGVsX2R2byA9IGVuY190b19kdm8oZW5jb2Rlcik7Cj4gQEAgLTE4Niw3ICsxODgsOSBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKPiAgCUk5MTVfUkVBRChkdm9fcmVnKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50 ZWxfZW5hYmxlX2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZv aWQgaW50ZWxfZW5hYmxlX2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJ ICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCSAgICAgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJ c3RydWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5jX3RvX2R2byhlbmNvZGVyKTsKPiBAQCAt MjUzLDcgKzI1Nyw5IEBAIHN0YXRpYyBib29sIGludGVsX2R2b19jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gIAo+IC1z dGF0aWMgdm9pZCBpbnRlbF9kdm9fcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfZHZvX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gKwkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnLAo+ICsJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYwo+IGluZGV4IDRkZjlmMzg0OTEwYy4uNTYwZWZmOWEzNjk0IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IEBAIC05ODUsNyArOTg1LDkgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZW5hYmxlX2hkbWlfYXVkaW8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gIAlpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoZW5jb2Rlcik7Cj4gIH0KPiAgCj4gLXN0 YXRpYyB2b2lkIGc0eF9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikK PiArc3RhdGljIHZvaWQgZzR4X2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICsJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICsJ CQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiBAQCAtMTAwNiw3ICsxMDA4 LDkgQEAgc3RhdGljIHZvaWQgZzR4X2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICAJCWludGVsX2VuYWJsZV9oZG1pX2F1ZGlvKGVuY29kZXIpOwo+ICB9Cj4gIAo+ IC1zdGF0aWMgdm9pZCBpYnhfZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gK3N0YXRpYyB2b2lkIGlieF9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiArCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywK PiArCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gQEAgLTEwNTUsNyAr MTA1OSw5IEBAIHN0YXRpYyB2b2lkIGlieF9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKPiAgCQlpbnRlbF9lbmFibGVfaGRtaV9hdWRpbyhlbmNvZGVyKTsKPiAgfQo+ ICAKPiAtc3RhdGljIHZvaWQgY3B0X2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBjcHRfZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcsCj4gKwkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAg ewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IEBAIC0xMTA4 LDExICsxMTE0LDE1IEBAIHN0YXRpYyB2b2lkIGNwdF9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKPiAgCQlpbnRlbF9lbmFibGVfaGRtaV9hdWRpbyhlbmNvZGVyKTsK PiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdmx2X2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCB2bHZfZW5hYmxlX2hkbWkoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCj4gKwkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0 ZSkKPiAgewo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2hkbWkoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfaGRt aShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJICAgICAgIHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOwo+IEBAIC0xMTY0LDE3ICsxMTc0LDIxIEBAIHN0YXRpYyB2 b2lkIGludGVsX2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAg CWludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoaW50ZWxfaGRtaSwgZmFsc2UpOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBnNHhfZGlzYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBnNHhfZGlzYWJsZV9oZG1pKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpv bGRfY3J0Y19zdGF0ZSwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xk X2Nvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ICAKPiAgCWlmIChjcnRjLT5jb25maWctPmhhc19h dWRpbykKPiAgCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIpOwo+ICAKPiAtCWlu dGVsX2Rpc2FibGVfaGRtaShlbmNvZGVyKTsKPiArCWludGVsX2Rpc2FibGVfaGRtaShlbmNvZGVy LCBvbGRfY3J0Y19zdGF0ZSwgb2xkX2Nvbm5fc3RhdGUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9p ZCBwY2hfZGlzYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0 aWMgdm9pZCBwY2hfZGlzYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJ ICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gIHsKPiAg CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNy dGMpOwo+ICAKPiBAQCAtMTE4Miw5ICsxMTk2LDExIEBAIHN0YXRpYyB2b2lkIHBjaF9kaXNhYmxl X2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAkJaW50ZWxfYXVkaW9fY29k ZWNfZGlzYWJsZShlbmNvZGVyKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgcGNoX3Bvc3RfZGlz YWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBw Y2hfcG9zdF9kaXNhYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJ CQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJCSAgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7Cj4gLQlpbnRlbF9k aXNhYmxlX2hkbWkoZW5jb2Rlcik7Cj4gKwlpbnRlbF9kaXNhYmxlX2hkbWkoZW5jb2Rlciwgb2xk X2NydGNfc3RhdGUsIG9sZF9jb25uX3N0YXRlKTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBpbnRl bF9oZG1pX3NvdXJjZV9tYXhfdG1kc19jbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gQEAgLTE2MzgsNyArMTY1NCw5IEBAIGRvbmU6Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3ByZV9lbmFibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZywKPiArCQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5f c3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2lu dGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gQEAgLTE2NTEsNyArMTY2 OSw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiAgCQkJCSAgIGFkanVzdGVkX21vZGUpOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgdm9pZCB2bHZfaGRtaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQo+ICtzdGF0aWMgdm9pZCB2bHZfaGRtaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICsJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ ICsJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVy LT5iYXNlKTsKPiAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gJmRwb3J0LT5oZG1p Owo+IEBAIC0xNjcxLDM3ICsxNjkxLDQ3IEBAIHN0YXRpYyB2b2lkIHZsdl9oZG1pX3ByZV9lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAkJCQkgICBpbnRlbF9jcnRjLT5j b25maWctPmhhc19oZG1pX3NpbmssCj4gIAkJCQkgICBhZGp1c3RlZF9tb2RlKTsKPiAgCj4gLQln NHhfZW5hYmxlX2hkbWkoZW5jb2Rlcik7Cj4gKwlnNHhfZW5hYmxlX2hkbWkoZW5jb2RlciwgcGlw ZV9jb25maWcsIGNvbm5fc3RhdGUpOwo+ICAKPiAgCXZsdl93YWl0X3BvcnRfcmVhZHkoZGV2X3By aXYsIGRwb3J0LCAweDApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCB2bHZfaGRtaV9wcmVfcGxs X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgdmx2 X2hkbWlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJ CQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICsJCQkJICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlpbnRlbF9oZG1p X3ByZXBhcmUoZW5jb2Rlcik7Cj4gIAo+ICAJdmx2X3BoeV9wcmVfcGxsX2VuYWJsZShlbmNvZGVy KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJlX3BsbF9lbmFibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9wbGxf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiArCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJaW50ZWxfaGRtaV9wcmVwYXJlKGVuY29k ZXIpOwo+ICAKPiAgCWNodl9waHlfcHJlX3BsbF9lbmFibGUoZW5jb2Rlcik7Cj4gIH0KPiAgCj4g LXN0YXRpYyB2b2lkIGNodl9oZG1pX3Bvc3RfcGxsX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGNodl9oZG1pX3Bvc3RfcGxsX2Rpc2FibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gKwkJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gIHsKPiAgCWNodl9waHlfcG9zdF9wbGxfZGlzYWJs ZShlbmNvZGVyKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdmx2X2hkbWlfcG9zdF9kaXNhYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCB2bHZfaGRtaV9w b3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJCSAgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7Cj4gIAkvKiBSZXNldCBsYW5lcyB0 byBhdm9pZCBIRE1JIGZsaWNrZXIgKFZMViB3L2EpICovCj4gIAl2bHZfcGh5X3Jlc2V0X2xhbmVz KGVuY29kZXIpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBjaHZfaGRtaV9wb3N0X2Rpc2FibGUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGNodl9oZG1pX3Bv c3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICsJCQkJICBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiBAQCAtMTcxNCw3ICsxNzQ0LDkgQEAgc3RhdGljIHZv aWQgY2h2X2hkbWlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2 b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g K3N0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJ CQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJh c2UpOwo+ICAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSAmZHBvcnQtPmhkbWk7Cj4g QEAgLTE3MzQsNyArMTc2Niw3IEBAIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAkJCQkgICBpbnRlbF9jcnRjLT5jb25maWct Pmhhc19oZG1pX3NpbmssCj4gIAkJCQkgICBhZGp1c3RlZF9tb2RlKTsKPiAgCj4gLQlnNHhfZW5h YmxlX2hkbWkoZW5jb2Rlcik7Cj4gKwlnNHhfZW5hYmxlX2hkbWkoZW5jb2RlciwgcGlwZV9jb25m aWcsIGNvbm5fc3RhdGUpOwo+ICAKPiAgCXZsdl93YWl0X3BvcnRfcmVhZHkoZGV2X3ByaXYsIGRw b3J0LCAweDApOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gaW5kZXggNDk1NTA0 NzA0ODNlLi40Y2FlNGE4ZWE0OTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHZkcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4g QEAgLTEzNiw3ICsxMzYsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9sdmRzX2dldF9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jazsKPiAgfQo+ICAKPiAt c3RhdGljIHZvaWQgaW50ZWxfcHJlX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9wcmVfZW5hYmxlX2x2ZHMoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZywKPiArCQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp Cj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9sdmRzX2VuY29kZXIgKmx2ZHNfZW5jb2RlciA9IHRvX2x2 ZHNfZW5jb2RlcigmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+YmFzZS5kZXY7Cj4gQEAgLTIxMCw3ICsyMTIsOSBAQCBzdGF0aWMgdm9pZCBpbnRl bF9wcmVfZW5hYmxlX2x2ZHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIC8qKgo+ ICAgKiBTZXRzIHRoZSBwb3dlciBzdGF0ZSBmb3IgdGhlIHBhbmVsLgo+ICAgKi8KPiAtc3RhdGlj IHZvaWQgaW50ZWxfZW5hYmxlX2x2ZHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g K3N0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICsJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4g KwkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3Qg aW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIgPSB0b19sdmRzX2VuY29kZXIoJmVuY29k ZXItPmJhc2UpOwo+IEBAIC0yMzcsNyArMjQxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxl X2x2ZHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlpbnRlbF9wYW5lbF9lbmFi bGVfYmFja2xpZ2h0KGludGVsX2Nvbm5lY3Rvcik7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGlu dGVsX2Rpc2FibGVfbHZkcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGlj IHZvaWQgaW50ZWxfZGlzYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICsJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICsJ CQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gIAlzdHJ1 Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIgPSB0b19sdmRzX2VuY29kZXIoJmVu Y29kZXItPmJhc2UpOwo+IEBAIC0yNjAsNyArMjY2LDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2Rp c2FibGVfbHZkcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCVBPU1RJTkdfUkVB RChsdmRzX2VuY29kZXItPnJlZyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGdtY2hfZGlzYWJs ZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBnbWNo X2Rpc2FibGVfbHZkcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgICAg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICsJCQkgICAgICBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gKwo+ICB7Cj4gIAlzdHJ1 Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIgPSB0b19sdmRzX2VuY29kZXIoJmVu Y29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9y ID0KPiBAQCAtMjY4LDEwICsyNzcsMTIgQEAgc3RhdGljIHZvaWQgZ21jaF9kaXNhYmxlX2x2ZHMo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAo+ICAJaW50ZWxfcGFuZWxfZGlzYWJs ZV9iYWNrbGlnaHQoaW50ZWxfY29ubmVjdG9yKTsKPiAgCj4gLQlpbnRlbF9kaXNhYmxlX2x2ZHMo ZW5jb2Rlcik7Cj4gKwlpbnRlbF9kaXNhYmxlX2x2ZHMoZW5jb2Rlciwgb2xkX2NydGNfc3RhdGUs IG9sZF9jb25uX3N0YXRlKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgcGNoX2Rpc2FibGVfbHZk cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgcGNoX2Rpc2Fi bGVfbHZkcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gKwkJCSAgICAgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfbHZk c19lbmNvZGVyICpsdmRzX2VuY29kZXIgPSB0b19sdmRzX2VuY29kZXIoJmVuY29kZXItPmJhc2Up Owo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0KPiBAQCAtMjgw LDkgKzI5MSwxMSBAQCBzdGF0aWMgdm9pZCBwY2hfZGlzYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQo+ICAJaW50ZWxfcGFuZWxfZGlzYWJsZV9iYWNrbGlnaHQoaW50ZWxf Y29ubmVjdG9yKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgcGNoX3Bvc3RfZGlzYWJsZV9sdmRz KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBwY2hfcG9zdF9k aXNhYmxlX2x2ZHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJCSAgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7Cj4gLQlpbnRlbF9kaXNhYmxlX2x2 ZHMoZW5jb2Rlcik7Cj4gKwlpbnRlbF9kaXNhYmxlX2x2ZHMoZW5jb2Rlciwgb2xkX2NydGNfc3Rh dGUsIG9sZF9jb25uX3N0YXRlKTsKPiAgfQo+ICAKPiAgc3RhdGljIGVudW0gZHJtX21vZGVfc3Rh dHVzCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IGluZGV4IGUzNzhmMzUzNjVhMi4uNDhm NWRlYjZhNGNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8u Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IEBAIC0xMTkyLDcg KzExOTIsOSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9zZHZvX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiAgCj4gLXN0YXRp YyB2b2lkIGludGVsX3Nkdm9fcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW50ZWxfc2R2b19wcmVfZW5hYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICsJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiArCQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5f c3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5i YXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKPiBAQCAtMTQzNCw3ICsxNDM2LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19nZXRf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJICAgICBwaXBlX2NvbmZp Zy0+cGl4ZWxfbXVsdGlwbGllciwgZW5jb2Rlcl9waXhlbF9tdWx0aXBsaWVyKTsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9zZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3Nkdm8oc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X2NydGNfc3RhdGUsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2 byA9IHRvX3Nkdm8oZW5jb2Rlcik7Cj4gQEAgLTE0NzcsMTYgKzE0ODEsMjIgQEAgc3RhdGljIHZv aWQgaW50ZWxfZGlzYWJsZV9zZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJ fQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBwY2hfZGlzYWJsZV9zZHZvKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBwY2hfZGlzYWJsZV9zZHZvKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq b2xkX2Nvbm5fc3RhdGUpCj4gIHsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgcGNoX3Bvc3RfZGlz YWJsZV9zZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBw Y2hfcG9zdF9kaXNhYmxlX3Nkdm8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJ CQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkJCSAgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7Cj4gLQlpbnRlbF9k aXNhYmxlX3Nkdm8oZW5jb2Rlcik7Cj4gKwlpbnRlbF9kaXNhYmxlX3Nkdm8oZW5jb2Rlciwgb2xk X2NydGNfc3RhdGUsIG9sZF9jb25uX3N0YXRlKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50 ZWxfZW5hYmxlX3Nkdm8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2 b2lkIGludGVsX2VuYWJsZV9zZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJ CQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCSAgICAg IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3R2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5j Cj4gaW5kZXggNDkxMzZhZDU0NzNlLi40NDBjZTc5MzM1NzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3R2LmMKPiBAQCAtODM4LDcgKzgzOCw5IEBAIGludGVsX3R2X2dldF9od19zdGF0ZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgZW51bSBwaXBlICpwaXBlKQo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZAo+IC1pbnRlbF9lbmFibGVfdHYoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gK2ludGVsX2VuYWJsZV90dihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAr CQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKPiBAQCAtODUxLDcgKzg1Myw5IEBAIGludGVsX2VuYWJsZV90 dihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQK PiAtaW50ZWxfZGlzYWJsZV90dihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAraW50 ZWxfZGlzYWJsZV90dihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICsJCSBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKPiBAQCAtMTAxMCw3ICsxMDE0LDkgQEAgc3RhdGljIHZvaWQg c2V0X2NvbG9yX2NvbnZlcnNpb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAJCSAgIGNvbG9yX2NvbnZlcnNpb24tPmF2KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50 ZWxfdHZfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGlj IHZvaWQgaW50ZWxfdHZfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiArCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiArCQkJCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLS0gCj4gMi43LjQKPiAKPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0 dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZnds bC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK