From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: Re: [PATCH 6/7] drm/i915: Switch plane handling to atomic helpers (v5) Date: Fri, 12 Dec 2014 14:53:40 +0200 Message-ID: <548AE554.9010706@gmail.com> References: <1418154823-10819-1-git-send-email-matthew.d.roper@intel.com> <1418154823-10819-7-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id A72BF6E858 for ; Fri, 12 Dec 2014 04:53:38 -0800 (PST) In-Reply-To: <1418154823-10819-7-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMTIvMDkvMjAxNCAwOTo1MyBQTSwgTWF0dCBSb3BlciB3cm90ZToKPiBOb3cgdGhhdCB3ZSBo YXZlIGhvb2tzIHRvIGVuYWJsZSB0aGUgYXRvbWljIHBsYW5lIGhlbHBlcnMsIHdlIGNhbiB1c2UK PiB0aGUgcGxhbmUgaGVscGVycyBmb3Igb3VyIC51cGRhdGVfcGxhbmUoKSBhbmQgLmRpc2FibGVf cGxhbmUoKQo+IGVudHJ5cG9pbnRzLgo+Cj4gTm90ZSB0aGF0IHdlIHN0aWxsIG5lZWQgdG8gbWFr ZSBhIGZldyBzbWFsbCBiZWhhdmlvcmFsIGNoYW5nZXMgdG8gdGhlCj4gZHJpdmVyIGVudHJ5cG9p bnRzIGhlcmUgYXMgd2UgbWFrZSB0aGUgdHJhbnNpdGlvbiwgZHVlIHRvIGRpZmZlcmVuY2VzCj4g YmV0d2VlbiBob3cgdGhlIGF0b21pYyBoZWxwZXJzIHNldCB0aGluZ3MgdXAgZm9yIHVzIHZzIGhv dyBvdXIgaW50ZXJuYWwKPiBmdW5jdGlvbnMgd2VyZSBzZXR0aW5nIHRoaW5ncyB1cC4KPgo+IHYy OiBGaXggY29tbWl0IG1lc3NhZ2UgdHlwbyAoQm9iKQo+Cj4gdjM6IFJlYmFzZWQgb24gdG9wIG9m IEd1c3Rhdm8gUGFkb3ZhbidzIHBhdGNoZXMgdG8ga2lsbCBvZmYKPiAgICAgIGludGVsX2NydGNf Y3Vyc29yX3NldF9vYmooKSBhbmQgaW50ZWxfcGlwZV9zZXRfYmFzZSgpLgo+Cj4gdjQ6IFJlYmFz ZSBhZ2FpbiBvbiBsYXRlc3QgZGlzcGxheSByZWZhY3RvciBzZXJpZXMuICBOb3cgdGhhdCBwcmV2 aW91cwo+ICAgICAgcGF0Y2hlcyBoYXZlIHNtb290aGVkIHRoZSByb3VnaCBlZGdlcyBvZiB0aGUg ZXhpc3RpbmcgZGlzcGxheSBjb2RlLAo+ICAgICAgdGhlIHRyYW5zaXRpb24gaGVyZSBpcyBtdWNo IGxlc3MgcGFpbmZ1bC4KPgo+IHY1OiBQbGFuZSBoZWxwZXJzIHdpbGwgcmUtcHJlcGFyZSB0aGUg c2FtZSBmYiBmb3IgYSBwbGFuZS4gIERyb3AgdGhlCj4gICAgICBXQVJOIG9uIHRoaXMgY29uZGl0 aW9uLgoKSSB0aGluayBpdCB3b3VsZCBtYWtlIHNlbnNlIHRvIHNxdWFzaCB0aGlzIHBhdGNoIHdp dGggdGhlIHByZXZpb3VzIG9uZS4gClRoYXQgd2F5IGl0IGJlY29tZXMgY2xlYXJlciB3aGVyZSB0 aGUgaW50ZWxfdXBkYXRlX3BsYW5lKCkgZ29lcy4gQWxzbywgCnRoZSBhdG9taWMudHJhY2tfZmIg Y3J0YyBmaWVsZCBpcyBhZGRlZCBpbiB0aGUgcHJldmlvdXMgcGF0Y2ggYnV0IG9ubHkgCnVzZWQg aGVyZS4KCkkgd291bGQgYWxzbyBzcGxpdCB0aGUgY2hhbmdlIGZyb20gc3RhdGUub3JpZ197ZHN0 LHNyY30gaW50byBhIHNlcGFyYXRlIApwYXRjaCwgYnV0IEkgZ3Vlc3MgdGhhdCdzIG5vdCByZWFs bHkgbmVjZXNzYXJ5LgoKQ2hlZXJzLApBbmRlcgoKPiBUZXN0Y2FzZTogaWd0L2ttc19wbGFuZQo+ IFRlc3RjYXNlOiBpZ3Qva21zX3VuaXZlcnNhbF9wbGFuZQo+IFRlc3RjYXNlOiBpZ3Qva21zX2N1 cnNvcl9jcmMKPiBTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50 ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwg MjIyICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDIgLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMgIHwgIDM4ICsrKy0tLQo+ICAgMyBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNl cnRpb25zKCspLCAxNjQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gaW5kZXggZWE0NzkyMy4uMmY4MDIzNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBAQCAtMTE2NzgsNyArMTE2NzgsNyBAQCBpbnRlbF9wcmVwYXJlX3Bs YW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCXVuc2lnbmVkIGZyb250YnVmZmVy X2JpdHMgPSAwOwo+ICAgCWludCByZXQgPSAwOwo+Cj4gLQlpZiAoV0FSTl9PTihmYiA9PSBwbGFu ZS0+ZmIgfHwgIW9iaikpCj4gKwlpZiAoIW9iaikKPiAgIAkJcmV0dXJuIDA7Cj4KPiAgIAlzd2l0 Y2ggKHBsYW5lLT50eXBlKSB7Cj4gQEAgLTExNzQ1LDcgKzExNzQ1LDcgQEAgaW50ZWxfY2hlY2tf cHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0 YXRlLT5iYXNlLmNydGM7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiAgIAlz dHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ ICAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4gICAJc3Ry dWN0IGRybV9yZWN0ICpkZXN0ID0gJnN0YXRlLT5kc3Q7Cj4gQEAgLTExNzUzLDYgKzExNzUzLDkg QEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAg IAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAgPSAmc3RhdGUtPmNsaXA7Cj4gICAJaW50IHJl dDsKPgo+ICsJY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7Cj4gKwlpbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiArCj4gICAJcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9j aGVja191cGRhdGUocGxhbmUsIGNydGMsIGZiLAo+ICAgCQkJCQkgICAgc3JjLCBkZXN0LCBjbGlw LAo+ICAgCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+IEBAIC0xMTgxMiwy MyArMTE4MTUsMjYgQEAgaW50ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCj4gICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+YmFzZS5m YjsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiAgIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsJc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGM7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9w bGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiAgIAlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9 ICZzdGF0ZS0+c3JjOwo+Cj4gKwljcnRjID0gY3J0YyA/IGNydGMgOiBwbGFuZS0+Y3J0YzsKPiAr CWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsKPiAgIAlwbGFuZS0+ZmIgPSBm YjsKPiAgIAljcnRjLT54ID0gc3JjLT54MSA+PiAxNjsKPiAgIAljcnRjLT55ID0gc3JjLT55MSA+ PiAxNjsKPgo+IC0JaW50ZWxfcGxhbmUtPmNydGNfeCA9IHN0YXRlLT5vcmlnX2RzdC54MTsKPiAt CWludGVsX3BsYW5lLT5jcnRjX3kgPSBzdGF0ZS0+b3JpZ19kc3QueTE7Cj4gLQlpbnRlbF9wbGFu ZS0+Y3J0Y193ID0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5vcmlnX2RzdCk7Cj4gLQlpbnRlbF9w bGFuZS0+Y3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+b3JpZ19kc3QpOwo+IC0JaW50 ZWxfcGxhbmUtPnNyY194ID0gc3RhdGUtPm9yaWdfc3JjLngxOwo+IC0JaW50ZWxfcGxhbmUtPnNy Y195ID0gc3RhdGUtPm9yaWdfc3JjLnkxOwo+IC0JaW50ZWxfcGxhbmUtPnNyY193ID0gZHJtX3Jl Y3Rfd2lkdGgoJnN0YXRlLT5vcmlnX3NyYyk7Cj4gLQlpbnRlbF9wbGFuZS0+c3JjX2ggPSBkcm1f cmVjdF9oZWlnaHQoJnN0YXRlLT5vcmlnX3NyYyk7Cj4gKwlpbnRlbF9wbGFuZS0+Y3J0Y194ID0g c3RhdGUtPmJhc2UuY3J0Y194Owo+ICsJaW50ZWxfcGxhbmUtPmNydGNfeSA9IHN0YXRlLT5iYXNl LmNydGNfeTsKPiArCWludGVsX3BsYW5lLT5jcnRjX3cgPSBzdGF0ZS0+YmFzZS5jcnRjX3c7Cj4g KwlpbnRlbF9wbGFuZS0+Y3J0Y19oID0gc3RhdGUtPmJhc2UuY3J0Y19oOwo+ICsJaW50ZWxfcGxh bmUtPnNyY194ID0gc3RhdGUtPmJhc2Uuc3JjX3g7Cj4gKwlpbnRlbF9wbGFuZS0+c3JjX3kgPSBz dGF0ZS0+YmFzZS5zcmNfeTsKPiArCWludGVsX3BsYW5lLT5zcmNfdyA9IHN0YXRlLT5iYXNlLnNy Y193Owo+ICsJaW50ZWxfcGxhbmUtPnNyY19oID0gc3RhdGUtPmJhc2Uuc3JjX2g7Cj4gICAJaW50 ZWxfcGxhbmUtPm9iaiA9IG9iajsKPgo+ICAgCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpIHsKPiBA QCAtMTE4NTcsNiArMTE4NjMsMzIgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21t aXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjLT5kZXY7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOwo+ICsJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKPiAr CXN0cnVjdCBkcm1fcGxhbmUgKnA7Cj4gKwl1bnNpZ25lZCBmYl9iaXRzID0gMDsKPiArCj4gKwkv KiBUcmFjayBmYidzIGZvciBhbnkgcGxhbmVzIGJlaW5nIGRpc2FibGVkICovCj4gKwlsaXN0X2Zv cl9lYWNoX2VudHJ5KHAsICZkZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QsIGhlYWQpIHsKPiAr CQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHApOwo+ICsKPiArCQlpZiAoaW50ZWxfY3J0 Yy0+YXRvbWljLnRyYWNrX2ZicyAmICgxIDw8IGRybV9wbGFuZV9pbmRleChwKSkpIHsKPiArCQkJ c3dpdGNoIChwLT50eXBlKSB7Cj4gKwkJCWNhc2UgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWToKPiAr CQkJCWZiX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKGludGVsX3BsYW5lLT5waXBl KTsKPiArCQkJCWJyZWFrOwo+ICsJCQljYXNlIERSTV9QTEFORV9UWVBFX0NVUlNPUjoKPiArCQkJ CWZiX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IoaW50ZWxfcGxhbmUtPnBpcGUpOwo+ ICsJCQkJYnJlYWs7Cj4gKwkJCWNhc2UgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWToKPiArCQkJCWZi X2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9TUFJJVEUoaW50ZWxfcGxhbmUtPnBpcGUpOwo+ICsJ CQkJYnJlYWs7Cj4gKwkJCX0KPiArCj4gKwkJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4 KTsKPiArCQkJaTkxNV9nZW1fdHJhY2tfZmIoaW50ZWxfZmJfb2JqKHAtPmZiKSwgTlVMTCwgZmJf Yml0cyk7Cj4gKwkJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJCX0KPiAr CX0KPgo+ICAgCWlmIChpbnRlbF9jcnRjLT5hdG9taWMuZGlzYWJsZV9mYmMpCj4gICAJCWludGVs X2Rpc2FibGVfZmJjKGRldik7Cj4gQEAgLTExOTAwLDExMSArMTE5MzIsNiBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9maW5pc2hfY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAgCW1l bXNldCgmaW50ZWxfY3J0Yy0+YXRvbWljLCAwLCBzaXplb2YoaW50ZWxfY3J0Yy0+YXRvbWljKSk7 Cj4gICB9Cj4KPiAtaW50Cj4gLWludGVsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IC0JCSAgIHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiLCBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAo+IC0JCSAgIHVuc2lnbmVkIGludCBjcnRj X3csIHVuc2lnbmVkIGludCBjcnRjX2gsCj4gLQkJICAgdWludDMyX3Qgc3JjX3gsIHVpbnQzMl90 IHNyY195LAo+IC0JCSAgIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKPiAtewo+IC0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpvbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg c3RhdGUgPSB7eyAwIH19Owo+IC0Jc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lKTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjKTsKPiAtCWludCByZXQ7Cj4gLQo+IC0Jc3RhdGUuYmFzZS5jcnRj ID0gY3J0YyA/IGNydGMgOiBwbGFuZS0+Y3J0YzsKPiAtCXN0YXRlLmJhc2UuZmIgPSBmYjsKPiAt Cj4gLQkvKiBzYW1wbGUgY29vcmRpbmF0ZXMgaW4gMTYuMTYgZml4ZWQgcG9pbnQgKi8KPiAtCXN0 YXRlLnNyYy54MSA9IHNyY194Owo+IC0Jc3RhdGUuc3JjLngyID0gc3JjX3ggKyBzcmNfdzsKPiAt CXN0YXRlLnNyYy55MSA9IHNyY195Owo+IC0Jc3RhdGUuc3JjLnkyID0gc3JjX3kgKyBzcmNfaDsK PiAtCj4gLQkvKiBpbnRlZ2VyIHBpeGVscyAqLwo+IC0Jc3RhdGUuZHN0LngxID0gY3J0Y194Owo+ IC0Jc3RhdGUuZHN0LngyID0gY3J0Y194ICsgY3J0Y193Owo+IC0Jc3RhdGUuZHN0LnkxID0gY3J0 Y195Owo+IC0Jc3RhdGUuZHN0LnkyID0gY3J0Y195ICsgY3J0Y19oOwo+IC0KPiAtCXN0YXRlLmNs aXAueDEgPSAwOwo+IC0Jc3RhdGUuY2xpcC55MSA9IDA7Cj4gLQlzdGF0ZS5jbGlwLngyID0gaW50 ZWxfY3J0Yy0+YWN0aXZlID8gaW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX3cgOiAwOwo+IC0J c3RhdGUuY2xpcC55MiA9IGludGVsX2NydGMtPmFjdGl2ZSA/IGludGVsX2NydGMtPmNvbmZpZy5w aXBlX3NyY19oIDogMDsKPiAtCj4gLQlzdGF0ZS5vcmlnX3NyYyA9IHN0YXRlLnNyYzsKPiAtCXN0 YXRlLm9yaWdfZHN0ID0gc3RhdGUuZHN0Owo+IC0KPiAtCXJldCA9IGludGVsX3BsYW5lLT5jaGVj a19wbGFuZShwbGFuZSwgJnN0YXRlKTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJldDsKPiAt Cj4gLQlpZiAoZmIgIT0gb2xkX2ZiICYmIGZiKSB7Cj4gLQkJcmV0ID0gaW50ZWxfcHJlcGFyZV9w bGFuZV9mYihwbGFuZSwgZmIpOwo+IC0JCWlmIChyZXQpCj4gLQkJCXJldHVybiByZXQ7Cj4gLQl9 Cj4gLQo+IC0JaWYgKCFzdGF0ZS5iYXNlLmZiKSB7Cj4gLQkJdW5zaWduZWQgZmJfYml0cyA9IDA7 Cj4gLQo+IC0JCXN3aXRjaCAocGxhbmUtPnR5cGUpIHsKPiAtCQljYXNlIERSTV9QTEFORV9UWVBF X1BSSU1BUlk6Cj4gLQkJCWZiX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKGludGVs X3BsYW5lLT5waXBlKTsKPiAtCQkJYnJlYWs7Cj4gLQkJY2FzZSBEUk1fUExBTkVfVFlQRV9DVVJT T1I6Cj4gLQkJCWZiX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IoaW50ZWxfcGxhbmUt PnBpcGUpOwo+IC0JCQlicmVhazsKPiAtCQljYXNlIERSTV9QTEFORV9UWVBFX09WRVJMQVk6Cj4g LQkJCWZiX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9TUFJJVEUoaW50ZWxfcGxhbmUtPnBpcGUp Owo+IC0JCQlicmVhazsKPiAtCQl9Cj4gLQo+IC0JCS8qCj4gLQkJICogJ3ByZXBhcmUnIGlzIG5l dmVyIGNhbGxlZCB3aGVuIHBsYW5lIGlzIGJlaW5nIGRpc2FibGVkLCBzbwo+IC0JCSAqIHdlIG5l ZWQgdG8gaGFuZGxlIGZyb250YnVmZmVyIHRyYWNraW5nIGhlcmUKPiAtCQkgKi8KPiAtCQltdXRl eF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gLQkJaTkxNV9nZW1fdHJhY2tfZmIoaW50ZWxf ZmJfb2JqKHBsYW5lLT5mYiksIE5VTEwsIGZiX2JpdHMpOwo+IC0JCW11dGV4X3VubG9jaygmZGV2 LT5zdHJ1Y3RfbXV0ZXgpOwo+IC0JfQo+IC0KPiAtCWludGVsX2JlZ2luX2NydGNfY29tbWl0KGNy dGMpOwo+IC0JaW50ZWxfcGxhbmUtPmNvbW1pdF9wbGFuZShwbGFuZSwgJnN0YXRlKTsKPiAtCWlu dGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChjcnRjKTsKPiAtCj4gLQlpZiAoZmIgIT0gb2xkX2ZiICYm IG9sZF9mYikgewo+IC0JCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpCj4gLQkJCWludGVsX3dhaXRf Zm9yX3ZibGFuayhkZXYsIGludGVsX2NydGMtPnBpcGUpOwo+IC0JCWludGVsX2NsZWFudXBfcGxh bmVfZmIocGxhbmUsIG9sZF9mYik7Cj4gLQl9Cj4gLQo+IC0JcGxhbmUtPmZiID0gZmI7Cj4gLQo+ IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLS8qKgo+IC0gKiBpbnRlbF9kaXNhYmxlX3BsYW5lIC0g ZGlzYWJsZSBhIHBsYW5lCj4gLSAqIEBwbGFuZTogcGxhbmUgdG8gZGlzYWJsZQo+IC0gKgo+IC0g KiBHZW5lcmFsIGRpc2FibGUgaGFuZGxlciBmb3IgYWxsIHBsYW5lIHR5cGVzLgo+IC0gKi8KPiAt aW50Cj4gLWludGVsX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gLXsK PiAtCWlmICghcGxhbmUtPmZiKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCWlmIChXQVJOX09OKCFw bGFuZS0+Y3J0YykpCj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQo+IC0JcmV0dXJuIHBsYW5lLT5m dW5jcy0+dXBkYXRlX3BsYW5lKHBsYW5lLCBwbGFuZS0+Y3J0YywgTlVMTCwKPiAtCQkJCQkgIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDApOwo+IC19Cj4gLQo+ICAgLyogQ29tbW9uIGRlc3RydWN0aW9u IGZ1bmN0aW9uIGZvciBib3RoIHByaW1hcnkgYW5kIGN1cnNvciBwbGFuZXMgKi8KPiAgIHZvaWQg aW50ZWxfcGxhbmVfZGVzdHJveShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiAgIHsKPiBAQCAt MTIwMTUsOCArMTE5NDIsOCBAQCB2b2lkIGludGVsX3BsYW5lX2Rlc3Ryb3koc3RydWN0IGRybV9w bGFuZSAqcGxhbmUpCj4gICB9Cj4KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1 bmNzIGludGVsX3ByaW1hcnlfcGxhbmVfZnVuY3MgPSB7Cj4gLQkudXBkYXRlX3BsYW5lID0gaW50 ZWxfdXBkYXRlX3BsYW5lLAo+IC0JLmRpc2FibGVfcGxhbmUgPSBpbnRlbF9kaXNhYmxlX3BsYW5l LAo+ICsJLnVwZGF0ZV9wbGFuZSA9IGRybV9wbGFuZV9oZWxwZXJfdXBkYXRlLAo+ICsJLmRpc2Fi bGVfcGxhbmUgPSBkcm1fcGxhbmVfaGVscGVyX2Rpc2FibGUsCj4gICAJLmRlc3Ryb3kgPSBpbnRl bF9wbGFuZV9kZXN0cm95LAo+ICAgCS5zZXRfcHJvcGVydHkgPSBpbnRlbF9wbGFuZV9zZXRfcHJv cGVydHksCj4gICAJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBpbnRlbF9wbGFuZV9kdXBsaWNh dGVfc3RhdGUsCj4gQEAgLTEyMDgzLDE3ICsxMjAxMCwxOSBAQCBpbnRlbF9jaGVja19jdXJzb3Jf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJCQkgc3RydWN0IGludGVsX3BsYW5l X3N0YXRlICpzdGF0ZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+ YmFzZS5jcnRjOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiArCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owo+ICAgCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4gICAJc3RydWN0IGRybV9yZWN0ICpkZXN0ID0g JnN0YXRlLT5kc3Q7Cj4gICAJc3RydWN0IGRybV9yZWN0ICpzcmMgPSAmc3RhdGUtPnNyYzsKPiAg IAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAgPSAmc3RhdGUtPmNsaXA7Cj4gICAJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gLQlpbnQgY3J0 Y193LCBjcnRjX2g7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiAgIAl1bnNp Z25lZCBzdHJpZGU7Cj4gICAJaW50IHJldDsKPgo+ICsJY3J0YyA9IGNydGMgPyBjcnRjIDogcGxh bmUtPmNydGM7Cj4gKwlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiArCj4gICAJ cmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRhdGUocGxhbmUsIGNydGMsIGZiLAo+ICAg CQkJCQkgICAgc3JjLCBkZXN0LCBjbGlwLAo+ICAgCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9O T19TQ0FMSU5HLAo+IEBAIC0xMjEwOCwxNSArMTIwMzcsMTQgQEAgaW50ZWxfY2hlY2tfY3Vyc29y X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCQlnb3RvIGZpbmlzaDsKPgo+ICAg CS8qIENoZWNrIGZvciB3aGljaCBjdXJzb3IgdHlwZXMgd2Ugc3VwcG9ydCAqLwo+IC0JY3J0Y193 ID0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5vcmlnX2RzdCk7Cj4gLQljcnRjX2ggPSBkcm1fcmVj dF9oZWlnaHQoJnN0YXRlLT5vcmlnX2RzdCk7Cj4gLQlpZiAoIWN1cnNvcl9zaXplX29rKGRldiwg Y3J0Y193LCBjcnRjX2gpKSB7Cj4gLQkJRFJNX0RFQlVHKCJDdXJzb3IgZGltZW5zaW9uIG5vdCBz dXBwb3J0ZWRcbiIpOwo+ICsJaWYgKCFjdXJzb3Jfc2l6ZV9vayhkZXYsIHN0YXRlLT5iYXNlLmNy dGNfdywgc3RhdGUtPmJhc2UuY3J0Y19oKSkgewo+ICsJCURSTV9ERUJVRygiQ3Vyc29yIGRpbWVu c2lvbiAlZHglZCBub3Qgc3VwcG9ydGVkXG4iLAo+ICsJCQkgIHN0YXRlLT5iYXNlLmNydGNfdywg c3RhdGUtPmJhc2UuY3J0Y19oKTsKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gICAJfQo+Cj4gLQlz dHJpZGUgPSByb3VuZHVwX3Bvd19vZl90d28oY3J0Y193KSAqIDQ7Cj4gLQlpZiAob2JqLT5iYXNl LnNpemUgPCBzdHJpZGUgKiBjcnRjX2gpIHsKPiArCXN0cmlkZSA9IHJvdW5kdXBfcG93X29mX3R3 byhzdGF0ZS0+YmFzZS5jcnRjX3cpICogNDsKPiArCWlmIChvYmotPmJhc2Uuc2l6ZSA8IHN0cmlk ZSAqIHN0YXRlLT5iYXNlLmNydGNfaCkgewo+ICAgCQlEUk1fREVCVUdfS01TKCJidWZmZXIgaXMg dG9vIHNtYWxsXG4iKTsKPiAgIAkJcmV0dXJuIC1FTk9NRU07Cj4gICAJfQo+IEBAIC0xMjEzNCw4 ICsxMjA2Miw3IEBAIGludGVsX2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPgo+ICAgZmluaXNoOgo+ICAgCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpIHsKPiAtCQlp ZiAoaW50ZWxfY3J0Yy0+Y3Vyc29yX3dpZHRoICE9Cj4gLQkJICAgIGRybV9yZWN0X3dpZHRoKCZz dGF0ZS0+b3JpZ19kc3QpKQo+ICsJCWlmIChpbnRlbF9jcnRjLT5jdXJzb3Jfd2lkdGggIT0gc3Rh dGUtPmJhc2UuY3J0Y193KQo+ICAgCQkJaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV93bSA9IHRy dWU7Cj4KPiAgIAkJaW50ZWxfY3J0Yy0+YXRvbWljLmZiX2JpdHMgfD0KPiBAQCAtMTIxNTAsMjQg KzEyMDc3LDI3IEBAIGludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4gICAJCQkgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gICB7Cj4g ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0YzsKPiAtCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g cGxhbmUtPmRldjsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ICAgCXN0cnVj dCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gICAJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihzdGF0ZS0+YmFz ZS5mYik7Cj4gICAJdWludDMyX3QgYWRkcjsKPgo+ICsJY3J0YyA9IGNydGMgPyBjcnRjIDogcGxh bmUtPmNydGM7Cj4gKwlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiArCj4gICAJ cGxhbmUtPmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4gLQljcnRjLT5jdXJzb3JfeCA9IHN0YXRlLT5v cmlnX2RzdC54MTsKPiAtCWNydGMtPmN1cnNvcl95ID0gc3RhdGUtPm9yaWdfZHN0LnkxOwo+IC0K PiAtCWludGVsX3BsYW5lLT5jcnRjX3ggPSBzdGF0ZS0+b3JpZ19kc3QueDE7Cj4gLQlpbnRlbF9w bGFuZS0+Y3J0Y195ID0gc3RhdGUtPm9yaWdfZHN0LnkxOwo+IC0JaW50ZWxfcGxhbmUtPmNydGNf dyA9IGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+b3JpZ19kc3QpOwo+IC0JaW50ZWxfcGxhbmUtPmNy dGNfaCA9IGRybV9yZWN0X2hlaWdodCgmc3RhdGUtPm9yaWdfZHN0KTsKPiAtCWludGVsX3BsYW5l LT5zcmNfeCA9IHN0YXRlLT5vcmlnX3NyYy54MTsKPiAtCWludGVsX3BsYW5lLT5zcmNfeSA9IHN0 YXRlLT5vcmlnX3NyYy55MTsKPiAtCWludGVsX3BsYW5lLT5zcmNfdyA9IGRybV9yZWN0X3dpZHRo KCZzdGF0ZS0+b3JpZ19zcmMpOwo+IC0JaW50ZWxfcGxhbmUtPnNyY19oID0gZHJtX3JlY3RfaGVp Z2h0KCZzdGF0ZS0+b3JpZ19zcmMpOwo+ICsJY3J0Yy0+Y3Vyc29yX3ggPSBzdGF0ZS0+YmFzZS5j cnRjX3g7Cj4gKwljcnRjLT5jdXJzb3JfeSA9IHN0YXRlLT5iYXNlLmNydGNfeTsKPiArCj4gKwlp bnRlbF9wbGFuZS0+Y3J0Y194ID0gc3RhdGUtPmJhc2UuY3J0Y194Owo+ICsJaW50ZWxfcGxhbmUt PmNydGNfeSA9IHN0YXRlLT5iYXNlLmNydGNfeTsKPiArCWludGVsX3BsYW5lLT5jcnRjX3cgPSBz dGF0ZS0+YmFzZS5jcnRjX3c7Cj4gKwlpbnRlbF9wbGFuZS0+Y3J0Y19oID0gc3RhdGUtPmJhc2Uu Y3J0Y19oOwo+ICsJaW50ZWxfcGxhbmUtPnNyY194ID0gc3RhdGUtPmJhc2Uuc3JjX3g7Cj4gKwlp bnRlbF9wbGFuZS0+c3JjX3kgPSBzdGF0ZS0+YmFzZS5zcmNfeTsKPiArCWludGVsX3BsYW5lLT5z cmNfdyA9IHN0YXRlLT5iYXNlLnNyY193Owo+ICsJaW50ZWxfcGxhbmUtPnNyY19oID0gc3RhdGUt PmJhc2Uuc3JjX2g7Cj4gICAJaW50ZWxfcGxhbmUtPm9iaiA9IG9iajsKPgo+ICAgCWlmIChpbnRl bF9jcnRjLT5jdXJzb3JfYm8gPT0gb2JqKQo+IEBAIC0xMjE4MywxNiArMTIxMTMsMTYgQEAgaW50 ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAlpbnRl bF9jcnRjLT5jdXJzb3JfYWRkciA9IGFkZHI7Cj4gICAJaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvID0g b2JqOwo+ICAgdXBkYXRlOgo+IC0JaW50ZWxfY3J0Yy0+Y3Vyc29yX3dpZHRoID0gZHJtX3JlY3Rf d2lkdGgoJnN0YXRlLT5vcmlnX2RzdCk7Cj4gLQlpbnRlbF9jcnRjLT5jdXJzb3JfaGVpZ2h0ID0g ZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+b3JpZ19kc3QpOwo+ICsJaW50ZWxfY3J0Yy0+Y3Vyc29y X3dpZHRoID0gc3RhdGUtPmJhc2UuY3J0Y193Owo+ICsJaW50ZWxfY3J0Yy0+Y3Vyc29yX2hlaWdo dCA9IHN0YXRlLT5iYXNlLmNydGNfaDsKPgo+ICAgCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpCj4g ICAJCWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihjcnRjLCBzdGF0ZS0+dmlzaWJsZSk7Cj4gICB9 Cj4KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX2N1cnNvcl9w bGFuZV9mdW5jcyA9IHsKPiAtCS51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRhdGVfcGxhbmUsCj4g LQkuZGlzYWJsZV9wbGFuZSA9IGludGVsX2Rpc2FibGVfcGxhbmUsCj4gKwkudXBkYXRlX3BsYW5l ID0gZHJtX3BsYW5lX2hlbHBlcl91cGRhdGUsCj4gKwkuZGlzYWJsZV9wbGFuZSA9IGRybV9wbGFu ZV9oZWxwZXJfZGlzYWJsZSwKPiAgIAkuZGVzdHJveSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ksCj4g ICAJLnNldF9wcm9wZXJ0eSA9IGludGVsX3BsYW5lX3NldF9wcm9wZXJ0eSwKPiAgIAkuYXRvbWlj X2R1cGxpY2F0ZV9zdGF0ZSA9IGludGVsX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSwKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGFiYjgwZTEuLmQ4YTZkNmMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0yNDgsOCArMjQ4LDYgQEAgc3RydWN0IGludGVsX3BsYW5l X3N0YXRlIHsKPiAgIAlzdHJ1Y3QgZHJtX3JlY3Qgc3JjOwo+ICAgCXN0cnVjdCBkcm1fcmVjdCBk c3Q7Cj4gICAJc3RydWN0IGRybV9yZWN0IGNsaXA7Cj4gLQlzdHJ1Y3QgZHJtX3JlY3Qgb3JpZ19z cmM7Cj4gLQlzdHJ1Y3QgZHJtX3JlY3Qgb3JpZ19kc3Q7Cj4gICAJYm9vbCB2aXNpYmxlOwo+Cj4g ICAJLyoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDk0NmZmMTAuLjdi N2FjYjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC0xMDY0LDEy ICsxMDY0LDEzIEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPiAgIAl1aW50MzJfdCBzcmNfeCwgc3JjX3ksIHNyY193LCBzcmNfaDsKPiAgIAlzdHJ1 Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0ZS0+c3JjOwo+ICAgCXN0cnVjdCBkcm1fcmVjdCAqZHN0 ID0gJnN0YXRlLT5kc3Q7Cj4gLQlzdHJ1Y3QgZHJtX3JlY3QgKm9yaWdfc3JjID0gJnN0YXRlLT5v cmlnX3NyYzsKPiAgIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAgPSAmc3RhdGUtPmNsaXA7 Cj4gICAJaW50IGhzY2FsZSwgdnNjYWxlOwo+ICAgCWludCBtYXhfc2NhbGUsIG1pbl9zY2FsZTsK PiAgIAlpbnQgcGl4ZWxfc2l6ZTsKPgo+ICsJaW50ZWxfY3J0YyA9IGludGVsX2NydGMgPyBpbnRl bF9jcnRjIDogdG9faW50ZWxfY3J0YyhwbGFuZS0+Y3J0Yyk7Cj4gKwo+ICAgCWlmICghZmIpIHsK PiAgIAkJc3RhdGUtPnZpc2libGUgPSBmYWxzZTsKPiAgIAkJZ290byBmaW5pc2g7Cj4gQEAgLTEx NTAsMTAgKzExNTEsMTAgQEAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICAgCQkJCSAgICBpbnRlbF9wbGFuZS0+cm90YXRpb24pOwo+Cj4gICAJCS8q IHNhbml0eSBjaGVjayB0byBtYWtlIHN1cmUgdGhlIHNyYyB2aWV3cG9ydCB3YXNuJ3QgZW5sYXJn ZWQgKi8KPiAtCQlXQVJOX09OKHNyYy0+eDEgPCAoaW50KSBvcmlnX3NyYy0+eDEgfHwKPiAtCQkJ c3JjLT55MSA8IChpbnQpIG9yaWdfc3JjLT55MSB8fAo+IC0JCQlzcmMtPngyID4gKGludCkgb3Jp Z19zcmMtPngyIHx8Cj4gLQkJCXNyYy0+eTIgPiAoaW50KSBvcmlnX3NyYy0+eTIpOwo+ICsJCVdB Uk5fT04oc3JjLT54MSA8IChpbnQpIHN0YXRlLT5iYXNlLnNyY194IHx8Cj4gKwkJCXNyYy0+eTEg PCAoaW50KSBzdGF0ZS0+YmFzZS5zcmNfeSB8fAo+ICsJCQlzcmMtPngyID4gKGludCkgc3RhdGUt PmJhc2Uuc3JjX3ggKyBzdGF0ZS0+YmFzZS5zcmNfdyB8fAo+ICsJCQlzcmMtPnkyID4gKGludCkg c3RhdGUtPmJhc2Uuc3JjX3kgKyBzdGF0ZS0+YmFzZS5zcmNfaCk7Cj4KPiAgIAkJLyoKPiAgIAkJ ICogSGFyZHdhcmUgZG9lc24ndCBoYW5kbGUgc3VicGl4ZWwgY29vcmRpbmF0ZXMuCj4gQEAgLTEy NTAsNyArMTI1MSw3IEBAIGludGVsX2NvbW1pdF9zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCj4gICAJCQkgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gICB7 Cj4gICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0YzsKPiAtCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiArCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ICAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxf cGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPSBzdGF0ZS0+YmFzZS5mYjsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKPiBAQCAtMTI1OCwxNCArMTI1OSwxOSBAQCBpbnRlbF9j b21taXRfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCXVuc2lnbmVk IGludCBjcnRjX3csIGNydGNfaDsKPiAgIAl1aW50MzJfdCBzcmNfeCwgc3JjX3ksIHNyY193LCBz cmNfaDsKPgo+IC0JaW50ZWxfcGxhbmUtPmNydGNfeCA9IHN0YXRlLT5vcmlnX2RzdC54MTsKPiAt CWludGVsX3BsYW5lLT5jcnRjX3kgPSBzdGF0ZS0+b3JpZ19kc3QueTE7Cj4gLQlpbnRlbF9wbGFu ZS0+Y3J0Y193ID0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5vcmlnX2RzdCk7Cj4gLQlpbnRlbF9w bGFuZS0+Y3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+b3JpZ19kc3QpOwo+IC0JaW50 ZWxfcGxhbmUtPnNyY194ID0gc3RhdGUtPm9yaWdfc3JjLngxOwo+IC0JaW50ZWxfcGxhbmUtPnNy Y195ID0gc3RhdGUtPm9yaWdfc3JjLnkxOwo+IC0JaW50ZWxfcGxhbmUtPnNyY193ID0gZHJtX3Jl Y3Rfd2lkdGgoJnN0YXRlLT5vcmlnX3NyYyk7Cj4gLQlpbnRlbF9wbGFuZS0+c3JjX2ggPSBkcm1f cmVjdF9oZWlnaHQoJnN0YXRlLT5vcmlnX3NyYyk7Cj4gKwlpbnRlbF9wbGFuZS0+Y3J0Y194ID0g c3RhdGUtPmJhc2UuY3J0Y194Owo+ICsJaW50ZWxfcGxhbmUtPmNydGNfeSA9IHN0YXRlLT5iYXNl LmNydGNfeTsKPiArCWludGVsX3BsYW5lLT5jcnRjX3cgPSBzdGF0ZS0+YmFzZS5jcnRjX3c7Cj4g KwlpbnRlbF9wbGFuZS0+Y3J0Y19oID0gc3RhdGUtPmJhc2UuY3J0Y19oOwo+ICsJaW50ZWxfcGxh bmUtPnNyY194ID0gc3RhdGUtPmJhc2Uuc3JjX3g7Cj4gKwlpbnRlbF9wbGFuZS0+c3JjX3kgPSBz dGF0ZS0+YmFzZS5zcmNfeTsKPiArCWludGVsX3BsYW5lLT5zcmNfdyA9IHN0YXRlLT5iYXNlLnNy Y193Owo+ICsJaW50ZWxfcGxhbmUtPnNyY19oID0gc3RhdGUtPmJhc2Uuc3JjX2g7Cj4gKwo+ICsJ Y3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7Cj4gKwlpbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjKTsKPiArCj4gKwlwbGFuZS0+ZmIgPSBzdGF0ZS0+YmFzZS5mYjsKPiAgIAlp bnRlbF9wbGFuZS0+b2JqID0gb2JqOwo+Cj4gICAJaWYgKGludGVsX2NydGMtPmFjdGl2ZSkgewo+ IEBAIC0xMzg5LDggKzEzOTUsOCBAQCBpbnQgaW50ZWxfcGxhbmVfcmVzdG9yZShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSkKPiAgIH0KPgo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVf ZnVuY3MgaW50ZWxfcGxhbmVfZnVuY3MgPSB7Cj4gLQkudXBkYXRlX3BsYW5lID0gaW50ZWxfdXBk YXRlX3BsYW5lLAo+IC0JLmRpc2FibGVfcGxhbmUgPSBpbnRlbF9kaXNhYmxlX3BsYW5lLAo+ICsJ LnVwZGF0ZV9wbGFuZSA9IGRybV9wbGFuZV9oZWxwZXJfdXBkYXRlLAo+ICsJLmRpc2FibGVfcGxh bmUgPSBkcm1fcGxhbmVfaGVscGVyX2Rpc2FibGUsCj4gICAJLmRlc3Ryb3kgPSBpbnRlbF9wbGFu ZV9kZXN0cm95LAo+ICAgCS5zZXRfcHJvcGVydHkgPSBpbnRlbF9wbGFuZV9zZXRfcHJvcGVydHks Cj4gICAJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBpbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3Rh dGUsCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==