From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 17/18] drm/i915: Pass around plane_state instead of fb+rotation Date: Mon, 25 Jan 2016 18:55:48 +0100 Message-ID: <20160125175548.GL11240@phenom.ffwll.local> References: <1453316739-13296-1-git-send-email-ville.syrjala@linux.intel.com> <1453316739-13296-18-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f45.google.com (mail-wm0-f45.google.com [74.125.82.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id DEE7B6E4EE for ; Mon, 25 Jan 2016 09:55:40 -0800 (PST) Received: by mail-wm0-f45.google.com with SMTP id b14so92943511wmb.1 for ; Mon, 25 Jan 2016 09:55:40 -0800 (PST) Content-Disposition: inline In-Reply-To: <1453316739-13296-18-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMjAsIDIwMTYgYXQgMDk6MDU6MzhQTSArMDIwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KCkgYW5k IGludGVsX2FkZF9mYl9vZmZzZXRzKCkgZ2V0IHBhc3NlZCB0aGUgZmIKPiBhbmQgdGhlIHJvdGF0 aW9uLiBBcyBib3RoIG9mIHRob3NlIGNvbWUgZnJvbSB0aGUgcGxhbmUgc3RhdGUgd2UgY2FuIGp1 c3QKPiBwYXNzIHRoYXQgaW4gaW5zdGVhZC4KPiAKPiBGb3IgZXh0cmEgY29uc2l0ZW5jeSBwYXNz IHRoZSBwbGFuZSBzdGF0ZSB0byBpbnRlbF9mYl94eV90b19saW5lYXIoKSBhcwo+IHdlbGwgZXZl biB0aG91Z2ggaXQgb25seSByZWFsbHkgbmVlZHMgdGhlIGZiLgo+IAo+IFNpZ25lZC1vZmYtYnk6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpSZXZpZXdl ZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDM1ICsrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAg ICB8ICA5ICsrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAg fCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0tCj4gIDMgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0 aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+IGluZGV4IGViOGNlOGE5OTI5MS4uMmU2Y2JmNjViMjY1IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0yNDQyLDggKzI0NDIsMTAgQEAgc3RhdGljIHZv aWQgaW50ZWxfdW5waW5fZmJfb2JqKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCB1bnNpZ25l ZCBpbnQgcm90YXRpb24KPiAgICogd2l0aCBnZW4yLzMsIGFuZCA5MC8yNzAgZGVncmVlIHJvdGF0 aW9ucyBpc24ndCBzdXBwb3J0ZWQgb24gYW55IG9mIHRoZW0uCj4gICAqLwo+ICB1bnNpZ25lZCBp bnQgaW50ZWxfZmJfeHlfdG9fbGluZWFyKGludCB4LCBpbnQgeSwKPiAtCQkJCSAgIGNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUpCj4gKwkJCQkgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlLAo+ICsJCQkJICAgaW50IHBsYW5lKQo+ICB7Cj4g Kwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwo+ICAJ dW5zaWduZWQgaW50IGNwcCA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQs IHBsYW5lKTsKPiAgCXVuc2lnbmVkIGludCBwaXRjaCA9IGZiLT5waXRjaGVzW3BsYW5lXTsKPiAg Cj4gQEAgLTI0NTYsMTEgKzI0NTgsMTIgQEAgdW5zaWduZWQgaW50IGludGVsX2ZiX3h5X3RvX2xp bmVhcihpbnQgeCwgaW50IHksCj4gICAqIHNwZWNpZnkgdGhlIHN0YXJ0IG9mIHNjYW5vdXQgZnJv bSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBndHQgbWFwcGluZy4KPiAgICovCj4gIHZvaWQgaW50ZWxf YWRkX2ZiX29mZnNldHMoaW50ICp4LCBpbnQgKnksCj4gLQkJCSAgY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsIGludCBwbGFuZSwKPiAtCQkJICB1bnNpZ25lZCBpbnQgcm90YXRpb24p Cj4gKwkJCSAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSwKPiArCQkJICBp bnQgcGxhbmUpCj4gIAo+ICB7Cj4gLQljb25zdCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmlu dGVsX2ZiID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIpOwo+ICsJY29uc3Qgc3RydWN0IGludGVs X2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKHN0YXRlLT5iYXNl LmZiKTsKPiArCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHN0YXRlLT5iYXNlLnJvdGF0aW9uOwo+ ICAKPiAgCWlmIChpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAocm90YXRpb24pKSB7Cj4gIAkJKngg Kz0gaW50ZWxfZmItPnJvdGF0ZWRbcGxhbmVdLng7Cj4gQEAgLTI1NjEsMTAgKzI1NjQsMTIgQEAg c3RhdGljIHUzMiBfaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldChjb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIH0KPiAgCj4gIHVuc2lnbmVkIGludCBpbnRlbF9jb21w dXRlX3RpbGVfb2Zmc2V0KGludCAqeCwgaW50ICp5LAo+IC0JCQkJICAgICAgIGNvbnN0IHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUsCj4gLQkJCQkgICAgICAgdW5zaWduZWQg aW50IHJvdGF0aW9uKQo+ICsJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqc3RhdGUsCj4gKwkJCQkgICAgICAgaW50IHBsYW5lKQo+ICB7Cj4gLQljb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGZiLT5kZXYpOwo+ICsJY29uc3Qg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5w bGFuZS0+ZGV2KTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUt PmJhc2UuZmI7Cj4gKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBzdGF0ZS0+YmFzZS5yb3RhdGlv bjsKPiAgCXVuc2lnbmVkIGludCBhbGlnbm1lbnQgPSBpbnRlbF9zdXJmX2FsaWdubWVudChkZXZf cHJpdiwgZmItPm1vZGlmaWVyW3BsYW5lXSk7Cj4gIAl1bnNpZ25lZCBpbnQgcGl0Y2g7Cj4gIAo+ IEBAIC0yOTg5LDExICsyOTk0LDExIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSwKPiAgCWlmIChJU19HNFgoZGV2KSkKPiAg CQlkc3BjbnRyIHw9IERJU1BQTEFORV9UUklDS0xFX0ZFRURfRElTQUJMRTsKPiAgCj4gLQlpbnRl bF9hZGRfZmJfb2Zmc2V0cygmeCwgJnksIGZiLCAwLCByb3RhdGlvbik7Cj4gKwlpbnRlbF9hZGRf ZmJfb2Zmc2V0cygmeCwgJnksIHBsYW5lX3N0YXRlLCAwKTsKPiAgCj4gIAlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPj0gNCkKPiAgCQlpbnRlbF9jcnRjLT5kc3BhZGRyX29mZnNldCA9Cj4gLQkJ CWludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJngsICZ5LCBmYiwgMCwgcm90YXRpb24pOwo+ICsJ CQlpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KCZ4LCAmeSwgcGxhbmVfc3RhdGUsIDApOwo+ICAK PiAgCWlmIChyb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gIAkJZHNwY250ciB8 PSBESVNQUExBTkVfUk9UQVRFXzE4MDsKPiBAQCAtMzAwMiw3ICszMDA3LDcgQEAgc3RhdGljIHZv aWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAo+ ICAJCXkgKz0gKGNydGNfc3RhdGUtPnBpcGVfc3JjX2ggLSAxKTsKPiAgCX0KPiAgCj4gLQlsaW5l YXJfb2Zmc2V0ID0gaW50ZWxfZmJfeHlfdG9fbGluZWFyKHgsIHksIGZiLCAwKTsKPiArCWxpbmVh cl9vZmZzZXQgPSBpbnRlbF9mYl94eV90b19saW5lYXIoeCwgeSwgcGxhbmVfc3RhdGUsIDApOwo+ ICAKPiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDQpCj4gIAkJaW50ZWxfY3J0Yy0+ZHNw YWRkcl9vZmZzZXQgPSBsaW5lYXJfb2Zmc2V0Owo+IEBAIC0zMDkyLDEwICszMDk3LDEwIEBAIHN0 YXRpYyB2b2lkIGlyb25sYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnByaW1hcnksCj4gIAlpZiAoIUlTX0hBU1dFTEwoZGV2KSAmJiAhSVNfQlJPQURXRUxMKGRldikp Cj4gIAkJZHNwY250ciB8PSBESVNQUExBTkVfVFJJQ0tMRV9GRUVEX0RJU0FCTEU7Cj4gIAo+IC0J aW50ZWxfYWRkX2ZiX29mZnNldHMoJngsICZ5LCBmYiwgMCwgcm90YXRpb24pOwo+ICsJaW50ZWxf YWRkX2ZiX29mZnNldHMoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gIAo+ICAJaW50ZWxfY3J0 Yy0+ZHNwYWRkcl9vZmZzZXQgPQo+IC0JCWludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJngsICZ5 LCBmYiwgMCwgcm90YXRpb24pOwo+ICsJCWludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJngsICZ5 LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gIAo+ICAJaWYgKHJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRF XzE4MCkpIHsKPiAgCQlkc3BjbnRyIHw9IERJU1BQTEFORV9ST1RBVEVfMTgwOwo+IEBAIC0zMTA2 LDcgKzMxMTEsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShz dHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAo+ICAJCX0KPiAgCX0KPiAgCj4gLQlsaW5lYXJfb2Zm c2V0ID0gaW50ZWxfZmJfeHlfdG9fbGluZWFyKHgsIHksIGZiLCAwKTsKPiArCWxpbmVhcl9vZmZz ZXQgPSBpbnRlbF9mYl94eV90b19saW5lYXIoeCwgeSwgcGxhbmVfc3RhdGUsIDApOwo+ICAKPiAg CWludGVsX2NydGMtPmFkanVzdGVkX3ggPSB4Owo+ICAJaW50ZWxfY3J0Yy0+YWRqdXN0ZWRfeSA9 IHk7Cj4gQEAgLTMzMTQsOCArMzMxOSw4IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3By aW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJCQkJCSAgZmItPnBpeGVs X2Zvcm1hdCk7Cj4gIAl9Cj4gIAo+IC0JaW50ZWxfYWRkX2ZiX29mZnNldHMoJnNyY194LCAmc3Jj X3ksIGZiLCAwLCByb3RhdGlvbik7Cj4gLQlzdXJmX2FkZHIgPSBpbnRlbF9jb21wdXRlX3RpbGVf b2Zmc2V0KCZzcmNfeCwgJnNyY195LCBmYiwgMCwgcm90YXRpb24pOwo+ICsJaW50ZWxfYWRkX2Zi X29mZnNldHMoJnNyY194LCAmc3JjX3ksIHBsYW5lX3N0YXRlLCAwKTsKPiArCXN1cmZfYWRkciA9 IGludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJnNyY194LCAmc3JjX3ksIHBsYW5lX3N0YXRlLCAw KTsKPiAgCj4gIAkvKiBTaXplcyBhcmUgMCBiYXNlZCAqLwo+ICAJc3JjX3ctLTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGUzZGUxZmMzYjA0ZC4uMDljZmMwZWVhNWE0IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTA3MSwxMCArMTA3MSwxMCBAQCB2b2lk IGk5MTVfYXVkaW9fY29tcG9uZW50X2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPiAgLyogaW50ZWxfZGlzcGxheS5jICovCj4gIGV4dGVybiBjb25zdCBzdHJ1Y3Qg ZHJtX3BsYW5lX2Z1bmNzIGludGVsX3BsYW5lX2Z1bmNzOwo+ICB1bnNpZ25lZCBpbnQgaW50ZWxf ZmJfeHlfdG9fbGluZWFyKGludCB4LCBpbnQgeSwKPiAtCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUpOwo+ICsJCQkJICAgY29uc3Qgc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpzdGF0ZSwKPiArCQkJCSAgIGludCBwbGFuZSk7Cj4gIHZvaWQgaW50ZWxf YWRkX2ZiX29mZnNldHMoaW50ICp4LCBpbnQgKnksCj4gLQkJCSAgY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsIGludCBwbGFuZSwKPiAtCQkJICB1bnNpZ25lZCBpbnQgcm90YXRpb24p Owo+ICsJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUsIGludCBwbGFu ZSk7Cj4gIHVuc2lnbmVkIGludCBpbnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoY29uc3Qgc3RydWN0 IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvKTsKPiAgYm9vbCBpbnRlbF9oYXNfcGVuZGlu Z19mYl91bnBpbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgaW50IGludGVsX3BjaF9yYXdj bGsoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gQEAgLTExODksOCArMTE4OSw3IEBAIHZvaWQg YXNzZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUg cGlwZSwgYm9vbCBzdGF0ZSk7Cj4gICNkZWZpbmUgYXNzZXJ0X3BpcGVfZW5hYmxlZChkLCBwKSBh c3NlcnRfcGlwZShkLCBwLCB0cnVlKQo+ICAjZGVmaW5lIGFzc2VydF9waXBlX2Rpc2FibGVkKGQs IHApIGFzc2VydF9waXBlKGQsIHAsIGZhbHNlKQo+ICB1MzIgaW50ZWxfY29tcHV0ZV90aWxlX29m ZnNldChpbnQgKngsIGludCAqeSwKPiAtCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIsIGludCBwbGFuZSwKPiAtCQkJICAgICAgdW5zaWduZWQgaW50IHJvdGF0aW9uKTsK PiArCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSwgaW50IHBs YW5lKTsKPiAgdm9pZCBpbnRlbF9wcmVwYXJlX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owo+ICB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAg dm9pZCBoc3dfZW5hYmxlX3BjOChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gaW5kZXggMzFiZTI0ZjI3MjA3Li5hZDUz M2NjMmI1ZjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC0yNDks OCArMjQ5LDggQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUs Cj4gIAkJCQkJCSAgZmItPnBpeGVsX2Zvcm1hdCk7Cj4gIAl9Cj4gIAo+IC0JaW50ZWxfYWRkX2Zi X29mZnNldHMoJngsICZ5LCBmYiwgMCwgcm90YXRpb24pOwo+IC0Jc3VyZl9hZGRyID0gaW50ZWxf Y29tcHV0ZV90aWxlX29mZnNldCgmeCwgJnksIGZiLCAwLCByb3RhdGlvbik7Cj4gKwlpbnRlbF9h ZGRfZmJfb2Zmc2V0cygmeCwgJnksIHBsYW5lX3N0YXRlLCAwKTsKPiArCXN1cmZfYWRkciA9IGlu dGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gIAo+ICAJ LyogU2l6ZXMgYXJlIDAgYmFzZWQgKi8KPiAgCXNyY193LS07Cj4gQEAgLTQyNiw4ICs0MjYsOCBA QCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwKPiAgCWNydGNfdy0t Owo+ICAJY3J0Y19oLS07Cj4gIAo+IC0JaW50ZWxfYWRkX2ZiX29mZnNldHMoJngsICZ5LCBmYiwg MCwgcm90YXRpb24pOwo+IC0Jc3Byc3VyZl9vZmZzZXQgPSBpbnRlbF9jb21wdXRlX3RpbGVfb2Zm c2V0KCZ4LCAmeSwgZmIsIDAsIHJvdGF0aW9uKTsKPiArCWludGVsX2FkZF9mYl9vZmZzZXRzKCZ4 LCAmeSwgcGxhbmVfc3RhdGUsIDApOwo+ICsJc3Byc3VyZl9vZmZzZXQgPSBpbnRlbF9jb21wdXRl X3RpbGVfb2Zmc2V0KCZ4LCAmeSwgcGxhbmVfc3RhdGUsIDApOwo+ICAKPiAgCWlmIChyb3RhdGlv biA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gIAkJc3ByY3RsIHw9IFNQX1JPVEFURV8xODA7 Cj4gQEAgLTQzNiw3ICs0MzYsNyBAQCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KmRwbGFuZSwKPiAgCQl5ICs9IHNyY19oOwo+ICAJfQo+ICAKPiAtCWxpbmVhcl9vZmZzZXQgPSBp bnRlbF9mYl94eV90b19saW5lYXIoeCwgeSwgZmIsIDApOwo+ICsJbGluZWFyX29mZnNldCA9IGlu dGVsX2ZiX3h5X3RvX2xpbmVhcih4LCB5LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gIAo+ICAJaWYgKGtl eS0+ZmxhZ3MpIHsKPiAgCQlJOTE1X1dSSVRFKFNQS0VZTUlOVkFMKHBpcGUsIHBsYW5lKSwga2V5 LT5taW5fdmFsdWUpOwo+IEBAIC01NTcsOCArNTU3LDggQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCWlmIChjcnRjX3cgIT0gc3JjX3cgfHwgY3J0Y19oICE9 IHNyY19oKQo+ICAJCXNwcnNjYWxlID0gU1BSSVRFX1NDQUxFX0VOQUJMRSB8IChzcmNfdyA8PCAx NikgfCBzcmNfaDsKPiAgCj4gLQlpbnRlbF9hZGRfZmJfb2Zmc2V0cygmeCwgJnksIGZiLCAwLCBy b3RhdGlvbik7Cj4gLQlzcHJzdXJmX29mZnNldCA9IGludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQo JngsICZ5LCBmYiwgMCwgcm90YXRpb24pOwo+ICsJaW50ZWxfYWRkX2ZiX29mZnNldHMoJngsICZ5 LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gKwlzcHJzdXJmX29mZnNldCA9IGludGVsX2NvbXB1dGVfdGls ZV9vZmZzZXQoJngsICZ5LCBwbGFuZV9zdGF0ZSwgMCk7Cj4gIAo+ICAJaWYgKHJvdGF0aW9uID09 IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKPiAgCQlzcHJjdGwgfD0gU1BSSVRFX1JPVEFURV8xODA7 Cj4gQEAgLTU3MCw3ICs1NzAsNyBAQCBpdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+ICAJCX0KPiAgCX0KPiAgCj4gLQlsaW5lYXJfb2Zmc2V0ID0gaW50ZWxfZmJfeHlf dG9fbGluZWFyKHgsIHksIGZiLCAwKTsKPiArCWxpbmVhcl9vZmZzZXQgPSBpbnRlbF9mYl94eV90 b19saW5lYXIoeCwgeSwgcGxhbmVfc3RhdGUsIDApOwo+ICAKPiAgCWlmIChrZXktPmZsYWdzKSB7 Cj4gIAkJSTkxNV9XUklURShTUFJLRVlWQUwocGlwZSksIGtleS0+bWluX3ZhbHVlKTsKPiBAQCAt NjkyLDggKzY5Miw4IEBAIGlsa191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4gIAlpZiAoY3J0Y193ICE9IHNyY193IHx8IGNydGNfaCAhPSBzcmNfaCkKPiAgCQlkdnNzY2Fs ZSA9IERWU19TQ0FMRV9FTkFCTEUgfCAoc3JjX3cgPDwgMTYpIHwgc3JjX2g7Cj4gIAo+IC0JaW50 ZWxfYWRkX2ZiX29mZnNldHMoJngsICZ5LCBmYiwgMCwgcm90YXRpb24pOwo+IC0JZHZzc3VyZl9v ZmZzZXQgPSBpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KCZ4LCAmeSwgZmIsIDAsIHJvdGF0aW9u KTsKPiArCWludGVsX2FkZF9mYl9vZmZzZXRzKCZ4LCAmeSwgcGxhbmVfc3RhdGUsIDApOwo+ICsJ ZHZzc3VyZl9vZmZzZXQgPSBpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KCZ4LCAmeSwgcGxhbmVf c3RhdGUsIDApOwo+ICAKPiAgCWlmIChyb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7 Cj4gIAkJZHZzY250ciB8PSBEVlNfUk9UQVRFXzE4MDsKPiBAQCAtNzAyLDcgKzcwMiw3IEBAIGls a191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJeSArPSBzcmNfaDsK PiAgCX0KPiAgCj4gLQlsaW5lYXJfb2Zmc2V0ID0gaW50ZWxfZmJfeHlfdG9fbGluZWFyKHgsIHks IGZiLCAwKTsKPiArCWxpbmVhcl9vZmZzZXQgPSBpbnRlbF9mYl94eV90b19saW5lYXIoeCwgeSwg cGxhbmVfc3RhdGUsIDApOwo+ICAKPiAgCWlmIChrZXktPmZsYWdzKSB7Cj4gIAkJSTkxNV9XUklU RShEVlNLRVlWQUwocGlwZSksIGtleS0+bWluX3ZhbHVlKTsKPiAtLSAKPiAyLjQuMTAKPiAKPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdm eCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRh bmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9i bG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==