From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Thulasimani, Sivakumar" Subject: Re: [PATCH 04/12] drm/i915: Pass around plane_state instead of fb+rotation Date: Thu, 5 May 2016 13:51:29 +0530 Message-ID: <572B0289.80600@intel.com> References: <1462290001-9246-1-git-send-email-ville.syrjala@linux.intel.com> <1462290001-9246-5-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id ECD3C6E95B for ; Thu, 5 May 2016 08:21:31 +0000 (UTC) In-Reply-To: <1462290001-9246-5-git-send-email-ville.syrjala@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: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org ClJldmlld2VkLWJ5OiBTaXZha3VtYXIgVGh1bGFzaW1hbmkgPHNpdmFrdW1hci50aHVsYXNpbWFu aUBpbnRlbC5jb20+CgpPbiA1LzMvMjAxNiA5OjA5IFBNLCB2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbSB3cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+Cj4gaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldCgpIGFuZCBpbnRlbF9h ZGRfZmJfb2Zmc2V0cygpIGdldCBwYXNzZWQgdGhlIGZiCj4gYW5kIHRoZSByb3RhdGlvbi4gQXMg Ym90aCBvZiB0aG9zZSBjb21lIGZyb20gdGhlIHBsYW5lIHN0YXRlIHdlIGNhbiBqdXN0Cj4gcGFz cyB0aGF0IGluIGluc3RlYWQuCj4KPiBGb3IgZXh0cmEgY29uc2l0ZW5jeSBwYXNzIHRoZSBwbGFu ZSBzdGF0ZSB0byBpbnRlbF9mYl94eV90b19saW5lYXIoKSBhcwo+IHdlbGwgZXZlbiB0aG91Z2gg aXQgb25seSByZWFsbHkgbmVlZHMgdGhlIGZiLgo+Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDM1ICsrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgOSAr KysrLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8IDIyICsr KysrKysrKysrLS0tLS0tLS0tLS0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygr KSwgMzEgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g aW5kZXggODdiNzgzYzU2NTMzLi5iOGNhNmJjMzU5NWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gQEAgLTIzMTQsOCArMjMxNCwxMCBAQCBzdGF0aWMgaW50IGludGVs X2ZiX3BpdGNoKGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUsCj4g ICAgKiB3aXRoIGdlbjIvMywgYW5kIDkwLzI3MCBkZWdyZWUgcm90YXRpb25zIGlzbid0IHN1cHBv cnRlZCBvbiBhbnkgb2YgdGhlbS4KPiAgICAqLwo+ICAgdTMyIGludGVsX2ZiX3h5X3RvX2xpbmVh cihpbnQgeCwgaW50IHksCj4gLQkJCSAgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs IGludCBwbGFuZSkKPiArCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRl LAo+ICsJCQkgIGludCBwbGFuZSkKPiAgIHsKPiArCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4gICAJdW5zaWduZWQgaW50IGNwcCA9IGRybV9mb3Jt YXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIHBsYW5lKTsKPiAgIAl1bnNpZ25lZCBpbnQg cGl0Y2ggPSBmYi0+cGl0Y2hlc1twbGFuZV07Cj4gICAKPiBAQCAtMjMyOCwxMSArMjMzMCwxMiBA QCB1MzIgaW50ZWxfZmJfeHlfdG9fbGluZWFyKGludCB4LCBpbnQgeSwKPiAgICAqIHNwZWNpZnkg dGhlIHN0YXJ0IG9mIHNjYW5vdXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBndHQgbWFwcGlu Zy4KPiAgICAqLwo+ICAgdm9pZCBpbnRlbF9hZGRfZmJfb2Zmc2V0cyhpbnQgKngsIGludCAqeSwK PiAtCQkJICBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IHBsYW5lLAo+IC0J CQkgIHVuc2lnbmVkIGludCByb3RhdGlvbikKPiArCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnN0YXRlLAo+ICsJCQkgIGludCBwbGFuZSkKPiAgIAo+ICAgewo+IC0JY29uc3Qg c3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVy KGZiKTsKPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIgPSB0b19p bnRlbF9mcmFtZWJ1ZmZlcihzdGF0ZS0+YmFzZS5mYik7Cj4gKwl1bnNpZ25lZCBpbnQgcm90YXRp b24gPSBzdGF0ZS0+YmFzZS5yb3RhdGlvbjsKPiAgIAo+ICAgCWlmIChpbnRlbF9yb3RhdGlvbl85 MF9vcl8yNzAocm90YXRpb24pKSB7Cj4gICAJCSp4ICs9IGludGVsX2ZiLT5yb3RhdGVkW3BsYW5l XS54Owo+IEBAIC0yNDM5LDEwICsyNDQyLDEyIEBAIHN0YXRpYyB1MzIgX2ludGVsX2NvbXB1dGVf dGlsZV9vZmZzZXQoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAg fQo+ICAgCj4gICB1MzIgaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldChpbnQgKngsIGludCAqeSwK PiAtCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBwbGFuZSwK PiAtCQkJICAgICAgdW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ICsJCQkgICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlLAo+ICsJCQkgICAgICBpbnQgcGxhbmUpCj4gICB7 Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGZi LT5kZXYpOwo+ICsJY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShzdGF0ZS0+YmFzZS5wbGFuZS0+ZGV2KTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4gKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBz dGF0ZS0+YmFzZS5yb3RhdGlvbjsKPiAgIAl1MzIgYWxpZ25tZW50ID0gaW50ZWxfc3VyZl9hbGln bm1lbnQoZGV2X3ByaXYsIGZiLT5tb2RpZmllcltwbGFuZV0pOwo+ICAgCWludCBwaXRjaCA9IGlu dGVsX2ZiX3BpdGNoKGZiLCBwbGFuZSwgcm90YXRpb24pOwo+ICAgCj4gQEAgLTI4NjcsMTEgKzI4 NzIsMTEgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpwcmltYXJ5LAo+ICAgCWlmIChJU19HNFgoZGV2KSkKPiAgIAkJZHNwY250ciB8PSBE SVNQUExBTkVfVFJJQ0tMRV9GRUVEX0RJU0FCTEU7Cj4gICAKPiAtCWludGVsX2FkZF9mYl9vZmZz ZXRzKCZ4LCAmeSwgZmIsIDAsIHJvdGF0aW9uKTsKPiArCWludGVsX2FkZF9mYl9vZmZzZXRzKCZ4 LCAmeSwgcGxhbmVfc3RhdGUsIDApOwo+ICAgCj4gICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2Vu ID49IDQpCj4gICAJCWludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0ID0KPiAtCQkJaW50ZWxfY29t cHV0ZV90aWxlX29mZnNldCgmeCwgJnksIGZiLCAwLCByb3RhdGlvbik7Cj4gKwkJCWludGVsX2Nv bXB1dGVfdGlsZV9vZmZzZXQoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gICAKPiAgIAlpZiAo cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICAgCQlkc3BjbnRyIHw9IERJU1BQ TEFORV9ST1RBVEVfMTgwOwo+IEBAIC0yODgwLDcgKzI4ODUsNyBAQCBzdGF0aWMgdm9pZCBpOXh4 X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksCj4gICAJCXkg Kz0gKGNydGNfc3RhdGUtPnBpcGVfc3JjX2ggLSAxKTsKPiAgIAl9Cj4gICAKPiAtCWxpbmVhcl9v ZmZzZXQgPSBpbnRlbF9mYl94eV90b19saW5lYXIoeCwgeSwgZmIsIDApOwo+ICsJbGluZWFyX29m ZnNldCA9IGludGVsX2ZiX3h5X3RvX2xpbmVhcih4LCB5LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gICAK PiAgIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0KQo+ICAgCQlpbnRlbF9jcnRjLT5kc3Bh ZGRyX29mZnNldCA9IGxpbmVhcl9vZmZzZXQ7Cj4gQEAgLTI5NzAsMTAgKzI5NzUsMTAgQEAgc3Rh dGljIHZvaWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cHJpbWFyeSwKPiAgIAlpZiAoIUlTX0hBU1dFTEwoZGV2KSAmJiAhSVNfQlJPQURXRUxMKGRldikp Cj4gICAJCWRzcGNudHIgfD0gRElTUFBMQU5FX1RSSUNLTEVfRkVFRF9ESVNBQkxFOwo+ICAgCj4g LQlpbnRlbF9hZGRfZmJfb2Zmc2V0cygmeCwgJnksIGZiLCAwLCByb3RhdGlvbik7Cj4gKwlpbnRl bF9hZGRfZmJfb2Zmc2V0cygmeCwgJnksIHBsYW5lX3N0YXRlLCAwKTsKPiAgIAo+ICAgCWludGVs X2NydGMtPmRzcGFkZHJfb2Zmc2V0ID0KPiAtCQlpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KCZ4 LCAmeSwgZmIsIDAsIHJvdGF0aW9uKTsKPiArCQlpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KCZ4 LCAmeSwgcGxhbmVfc3RhdGUsIDApOwo+ICAgCj4gICAJaWYgKHJvdGF0aW9uID09IEJJVChEUk1f Uk9UQVRFXzE4MCkpIHsKPiAgIAkJZHNwY250ciB8PSBESVNQUExBTkVfUk9UQVRFXzE4MDsKPiBA QCAtMjk4NCw3ICsyOTg5LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSwKPiAgIAkJfQo+ICAgCX0KPiAgIAo+IC0J bGluZWFyX29mZnNldCA9IGludGVsX2ZiX3h5X3RvX2xpbmVhcih4LCB5LCBmYiwgMCk7Cj4gKwls aW5lYXJfb2Zmc2V0ID0gaW50ZWxfZmJfeHlfdG9fbGluZWFyKHgsIHksIHBsYW5lX3N0YXRlLCAw KTsKPiAgIAo+ICAgCWludGVsX2NydGMtPmFkanVzdGVkX3ggPSB4Owo+ICAgCWludGVsX2NydGMt PmFkanVzdGVkX3kgPSB5Owo+IEBAIC0zMjExLDggKzMyMTYsOCBAQCBzdGF0aWMgdm9pZCBza3ls YWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCQlz cmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcik7Cj4gICAJfQo+ICAgCj4gLQlpbnRlbF9hZGRfZmJf b2Zmc2V0cygmc3JjX3gsICZzcmNfeSwgZmIsIDAsIHJvdGF0aW9uKTsKPiAtCXN1cmZfYWRkciA9 IGludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJnNyY194LCAmc3JjX3ksIGZiLCAwLCByb3RhdGlv bik7Cj4gKwlpbnRlbF9hZGRfZmJfb2Zmc2V0cygmc3JjX3gsICZzcmNfeSwgcGxhbmVfc3RhdGUs IDApOwo+ICsJc3VyZl9hZGRyID0gaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldCgmc3JjX3gsICZz cmNfeSwgcGxhbmVfc3RhdGUsIDApOwo+ICAgCj4gICAJLyogU2l6ZXMgYXJlIDAgYmFzZWQgKi8K PiAgIAlzcmNfdy0tOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNDJiMjFjNTRh NjQ2Li43NWU0ZDU5ZjFhYjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0x MTI2LDEwICsxMTI2LDEwIEBAIGludCB2bHZfZ2V0X2Nja19jbG9jayhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gICBleHRlcm4gY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5j cyBpbnRlbF9wbGFuZV9mdW5jczsKPiAgIHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5X2hvb2tzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gICB1bnNpZ25lZCBpbnQgaW50ZWxf ZmJfeHlfdG9fbGluZWFyKGludCB4LCBpbnQgeSwKPiAtCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUpOwo+ICsJCQkJICAgY29uc3Qgc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpzdGF0ZSwKPiArCQkJCSAgIGludCBwbGFuZSk7Cj4gICB2b2lkIGludGVs X2FkZF9mYl9vZmZzZXRzKGludCAqeCwgaW50ICp5LAo+IC0JCQkgIGNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUsCj4gLQkJCSAgdW5zaWduZWQgaW50IHJvdGF0aW9u KTsKPiArCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlLCBpbnQgcGxh bmUpOwo+ICAgdW5zaWduZWQgaW50IGludGVsX3JvdGF0aW9uX2luZm9fc2l6ZShjb25zdCBzdHJ1 Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90X2luZm8pOwo+ICAgYm9vbCBpbnRlbF9oYXNfcGVu ZGluZ19mYl91bnBpbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIHZvaWQgaW50ZWxfbWFy a19idXN5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IEBAIC0xMjQwLDggKzEyNDAsNyBAQCB2 b2lkIGFzc2VydF9waXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBw aXBlIHBpcGUsIGJvb2wgc3RhdGUpOwo+ICAgI2RlZmluZSBhc3NlcnRfcGlwZV9lbmFibGVkKGQs IHApIGFzc2VydF9waXBlKGQsIHAsIHRydWUpCj4gICAjZGVmaW5lIGFzc2VydF9waXBlX2Rpc2Fi bGVkKGQsIHApIGFzc2VydF9waXBlKGQsIHAsIGZhbHNlKQo+ICAgdTMyIGludGVsX2NvbXB1dGVf dGlsZV9vZmZzZXQoaW50ICp4LCBpbnQgKnksCj4gLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUsCj4gLQkJCSAgICAgIHVuc2lnbmVkIGludCByb3Rh dGlvbik7Cj4gKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUs IGludCBwbGFuZSk7Cj4gICB2b2lkIGludGVsX3ByZXBhcmVfcmVzZXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4gICB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPiAgIHZvaWQgaHN3X2VuYWJsZV9wYzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDIyYTJiYTBj MjFiMC4uYzdjZWI2ZTU2MzI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMK PiBAQCAtMjQxLDggKzI0MSw4IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq ZHJtX3BsYW5lLAo+ICAgCQlzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcik7Cj4gICAJfQo+ICAg Cj4gLQlpbnRlbF9hZGRfZmJfb2Zmc2V0cygmeCwgJnksIGZiLCAwLCByb3RhdGlvbik7Cj4gLQlz dXJmX2FkZHIgPSBpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KCZ4LCAmeSwgZmIsIDAsIHJvdGF0 aW9uKTsKPiArCWludGVsX2FkZF9mYl9vZmZzZXRzKCZ4LCAmeSwgcGxhbmVfc3RhdGUsIDApOwo+ ICsJc3VyZl9hZGRyID0gaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldCgmeCwgJnksIHBsYW5lX3N0 YXRlLCAwKTsKPiAgIAo+ICAgCS8qIFNpemVzIGFyZSAwIGJhc2VkICovCj4gICAJc3JjX3ctLTsK PiBAQCAtNDE4LDggKzQxOCw4IEBAIHZsdl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq ZHBsYW5lLAo+ICAgCWNydGNfdy0tOwo+ICAgCWNydGNfaC0tOwo+ICAgCj4gLQlpbnRlbF9hZGRf ZmJfb2Zmc2V0cygmeCwgJnksIGZiLCAwLCByb3RhdGlvbik7Cj4gLQlzcHJzdXJmX29mZnNldCA9 IGludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJngsICZ5LCBmYiwgMCwgcm90YXRpb24pOwo+ICsJ aW50ZWxfYWRkX2ZiX29mZnNldHMoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gKwlzcHJzdXJm X29mZnNldCA9IGludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJngsICZ5LCBwbGFuZV9zdGF0ZSwg MCk7Cj4gICAKPiAgIAlpZiAocm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICAg CQlzcHJjdGwgfD0gU1BfUk9UQVRFXzE4MDsKPiBAQCAtNDI4LDcgKzQyOCw3IEBAIHZsdl91cGRh dGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLAo+ICAgCQl5ICs9IHNyY19oOwo+ICAg CX0KPiAgIAo+IC0JbGluZWFyX29mZnNldCA9IGludGVsX2ZiX3h5X3RvX2xpbmVhcih4LCB5LCBm YiwgMCk7Cj4gKwlsaW5lYXJfb2Zmc2V0ID0gaW50ZWxfZmJfeHlfdG9fbGluZWFyKHgsIHksIHBs YW5lX3N0YXRlLCAwKTsKPiAgIAo+ICAgCWlmIChrZXktPmZsYWdzKSB7Cj4gICAJCUk5MTVfV1JJ VEUoU1BLRVlNSU5WQUwocGlwZSwgcGxhbmUpLCBrZXktPm1pbl92YWx1ZSk7Cj4gQEAgLTU0OSw4 ICs1NDksOCBAQCBpdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAg CWlmIChjcnRjX3cgIT0gc3JjX3cgfHwgY3J0Y19oICE9IHNyY19oKQo+ICAgCQlzcHJzY2FsZSA9 IFNQUklURV9TQ0FMRV9FTkFCTEUgfCAoc3JjX3cgPDwgMTYpIHwgc3JjX2g7Cj4gICAKPiAtCWlu dGVsX2FkZF9mYl9vZmZzZXRzKCZ4LCAmeSwgZmIsIDAsIHJvdGF0aW9uKTsKPiAtCXNwcnN1cmZf b2Zmc2V0ID0gaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldCgmeCwgJnksIGZiLCAwLCByb3RhdGlv bik7Cj4gKwlpbnRlbF9hZGRfZmJfb2Zmc2V0cygmeCwgJnksIHBsYW5lX3N0YXRlLCAwKTsKPiAr CXNwcnN1cmZfb2Zmc2V0ID0gaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldCgmeCwgJnksIHBsYW5l X3N0YXRlLCAwKTsKPiAgIAo+ICAgCWlmIChyb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODAp KSB7Cj4gICAJCXNwcmN0bCB8PSBTUFJJVEVfUk9UQVRFXzE4MDsKPiBAQCAtNTYyLDcgKzU2Miw3 IEBAIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJCX0KPiAg IAl9Cj4gICAKPiAtCWxpbmVhcl9vZmZzZXQgPSBpbnRlbF9mYl94eV90b19saW5lYXIoeCwgeSwg ZmIsIDApOwo+ICsJbGluZWFyX29mZnNldCA9IGludGVsX2ZiX3h5X3RvX2xpbmVhcih4LCB5LCBw bGFuZV9zdGF0ZSwgMCk7Cj4gICAKPiAgIAlpZiAoa2V5LT5mbGFncykgewo+ICAgCQlJOTE1X1dS SVRFKFNQUktFWVZBTChwaXBlKSwga2V5LT5taW5fdmFsdWUpOwo+IEBAIC02ODQsOCArNjg0LDgg QEAgaWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAlpZiAoY3J0 Y193ICE9IHNyY193IHx8IGNydGNfaCAhPSBzcmNfaCkKPiAgIAkJZHZzc2NhbGUgPSBEVlNfU0NB TEVfRU5BQkxFIHwgKHNyY193IDw8IDE2KSB8IHNyY19oOwo+ICAgCj4gLQlpbnRlbF9hZGRfZmJf b2Zmc2V0cygmeCwgJnksIGZiLCAwLCByb3RhdGlvbik7Cj4gLQlkdnNzdXJmX29mZnNldCA9IGlu dGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJngsICZ5LCBmYiwgMCwgcm90YXRpb24pOwo+ICsJaW50 ZWxfYWRkX2ZiX29mZnNldHMoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gKwlkdnNzdXJmX29m ZnNldCA9IGludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMCk7 Cj4gICAKPiAgIAlpZiAocm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICAgCQlk dnNjbnRyIHw9IERWU19ST1RBVEVfMTgwOwo+IEBAIC02OTQsNyArNjk0LDcgQEAgaWxrX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAkJeSArPSBzcmNfaDsKPiAgIAl9 Cj4gICAKPiAtCWxpbmVhcl9vZmZzZXQgPSBpbnRlbF9mYl94eV90b19saW5lYXIoeCwgeSwgZmIs IDApOwo+ICsJbGluZWFyX29mZnNldCA9IGludGVsX2ZiX3h5X3RvX2xpbmVhcih4LCB5LCBwbGFu ZV9zdGF0ZSwgMCk7Cj4gICAKPiAgIAlpZiAoa2V5LT5mbGFncykgewo+ICAgCQlJOTE1X1dSSVRF KERWU0tFWVZBTChwaXBlKSwga2V5LT5taW5fdmFsdWUpOwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==