From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: [RFC v4 03/25] drm/fb-helper: No need to cache rotation and sw_rotations Date: Fri, 13 Apr 2018 19:07:25 +0200 Message-ID: <05d2bee0-2eb9-7ed0-3cb9-149161cf5204@redhat.com> References: <20180413165354.8331-1-noralf@tronnes.org> <20180413165354.8331-4-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-f196.google.com (mail-wr0-f196.google.com [209.85.128.196]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9B57F6EB51 for ; Fri, 13 Apr 2018 17:07:28 +0000 (UTC) Received: by mail-wr0-f196.google.com with SMTP id z73so9882167wrb.0 for ; Fri, 13 Apr 2018 10:07:28 -0700 (PDT) In-Reply-To: <20180413165354.8331-4-noralf@tronnes.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= , dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, mstaudt@suse.de List-Id: dri-devel@lists.freedesktop.org SGkgTm9yYWxmLAoKMSBjb21tZW50IGlubGluZS4KCk9uIDEzLTA0LTE4IDE4OjUzLCBOb3JhbGYg VHLDuG5uZXMgd3JvdGU6Cj4gR2V0dGluZyByb3RhdGlvbiBpbmZvIGlzIGNoZWFwIHNvIHdlIGNh biBkbyBpdCBvbiBkZW1hbmQuCj4gCj4gVGhpcyBpcyBkb25lIGluIHByZXBhcmF0aW9uIGZvciB0 aGUgcmVtb3ZhbCBvZiBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jcnRjLgo+IAo+IENjOiBIYW5zIGRl IEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4 bm5lcyA8bm9yYWxmQHRyb25uZXMub3JnPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9m Yl9oZWxwZXIuYyB8IDEzMSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4gICBpbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmggICAgIHwgICA4IC0tLQo+ICAgMiBmaWxl cyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZmJfaGVscGVyLmMKPiBpbmRleCAwNjQ2YjEwODAzMGIuLmU0OGFjZTJkNTVmNSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+IEBAIC0zNjEsNiArMzYxLDQ4IEBAIGludCBkcm1fZmJf aGVscGVyX2RlYnVnX2xlYXZlKHN0cnVjdCBmYl9pbmZvICppbmZvKQo+ICAgfQo+ICAgRVhQT1JU X1NZTUJPTChkcm1fZmJfaGVscGVyX2RlYnVnX2xlYXZlKTsKPiAgIAo+ICsvKiBDaGVjayBpZiB0 aGUgcGxhbmUgY2FuIGh3IHJvdGF0ZSB0byBtYXRjaCBwYW5lbCBvcmllbnRhdGlvbiAqLwo+ICtz dGF0aWMgYm9vbCBkcm1fZmJfaGVscGVyX3BhbmVsX3JvdGF0aW9uKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCj4gKwkJCQkJIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJCQkJ CSB1bnNpZ25lZCBpbnQgKnJvdGF0aW9uKQo+ICt7Cj4gKwl1aW50NjRfdCB2YWxpZF9tYXNrID0g MDsKPiArCXVuc2lnbmVkIGludCBpOwo+ICsKPiArCWlmICghY29ubmVjdG9yKQo+ICsJCXJldHVy biBmYWxzZTsKPiArCj4gKwlzd2l0Y2ggKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnBhbmVsX29y aWVudGF0aW9uKSB7Cj4gKwljYXNlIERSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX0JPVFRPTV9V UDoKPiArCQkqcm90YXRpb24gPSBEUk1fTU9ERV9ST1RBVEVfMTgwOwo+ICsJCWJyZWFrOwo+ICsJ Y2FzZSBEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl9MRUZUX1VQOgo+ICsJCSpyb3RhdGlvbiA9 IERSTV9NT0RFX1JPVEFURV85MDsKPiArCQlicmVhazsKPiArCWNhc2UgRFJNX01PREVfUEFORUxf T1JJRU5UQVRJT05fUklHSFRfVVA6Cj4gKwkJKnJvdGF0aW9uID0gRFJNX01PREVfUk9UQVRFXzI3 MDsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJKnJvdGF0aW9uID0gRFJNX01PREVfUk9U QVRFXzA7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIFRPRE86IHN1cHBvcnQgOTAgLyAyNzAgZGVn cmVlIGhhcmR3YXJlIHJvdGF0aW9uLAo+ICsJICogZGVwZW5kaW5nIG9uIHRoZSBoYXJkd2FyZSB0 aGlzIG1heSByZXF1aXJlIHRoZSBmcmFtZWJ1ZmZlcgo+ICsJICogdG8gYmUgaW4gYSBzcGVjaWZp YyB0aWxpbmcgZm9ybWF0Lgo+ICsJICovCj4gKwlpZiAoKnJvdGF0aW9uICE9IERSTV9NT0RFX1JP VEFURV8xODAgfHwgIXBsYW5lLT5yb3RhdGlvbl9wcm9wZXJ0eSkKPiArCQlyZXR1cm4gZmFsc2U7 Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IHBsYW5lLT5yb3RhdGlvbl9wcm9wZXJ0eS0+bnVtX3Zh bHVlczsgaSsrKQo+ICsJCXZhbGlkX21hc2sgfD0gKDFVTEwgPDwgcGxhbmUtPnJvdGF0aW9uX3By b3BlcnR5LT52YWx1ZXNbaV0pOwo+ICsKPiArCWlmICghKCpyb3RhdGlvbiAmIHZhbGlkX21hc2sp KQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiAgIHN0 YXRpYyBpbnQgcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAq ZmJfaGVscGVyLCBib29sIGFjdGl2ZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZmJfaGVscGVyLT5kZXY7Cj4gQEAgLTQwNiwxMCArNDQ4LDEzIEBAIHN0YXRpYyBpbnQgcmVz dG9yZV9mYmRldl9tb2RlX2F0b21pYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBi b29sIGFjdGl2Cj4gICAJZm9yIChpID0gMDsgaSA8IGZiX2hlbHBlci0+Y3J0Y19jb3VudDsgaSsr KSB7Cj4gICAJCXN0cnVjdCBkcm1fbW9kZV9zZXQgKm1vZGVfc2V0ID0gJmZiX2hlbHBlci0+Y3J0 Y19pbmZvW2ldLm1vZGVfc2V0Owo+ICAgCQlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gbW9k ZV9zZXQtPmNydGMtPnByaW1hcnk7Cj4gKwkJdW5zaWduZWQgaW50IHJvdGF0aW9uOwo+ICAgCj4g LQkJLyogQ2Fubm90IGZhaWwgYXMgd2UndmUgYWxyZWFkeSBnb3R0ZW4gdGhlIHBsYW5lIHN0YXRl IGFib3ZlICovCj4gLQkJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfcGxhbmVfc3Rh dGUoc3RhdGUsIHByaW1hcnkpOwo+IC0JCXBsYW5lX3N0YXRlLT5yb3RhdGlvbiA9IGZiX2hlbHBl ci0+Y3J0Y19pbmZvW2ldLnJvdGF0aW9uOwo+ICsJCWlmIChkcm1fZmJfaGVscGVyX3BhbmVsX3Jv dGF0aW9uKG1vZGVfc2V0LT5jb25uZWN0b3JzWzBdLCBwcmltYXJ5LCAmcm90YXRpb24pKSB7Cj4g KwkJCS8qIENhbm5vdCBmYWlsIGFzIHdlJ3ZlIGFscmVhZHkgZ290dGVuIHRoZSBwbGFuZSBzdGF0 ZSBhYm92ZSAqLwo+ICsJCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19wbGFuZV9z dGF0ZShzdGF0ZSwgcHJpbWFyeSk7Cj4gKwkJCXBsYW5lX3N0YXRlLT5yb3RhdGlvbiA9IHJvdGF0 aW9uOwo+ICsJCX0KCldlIHdhbnQgcGxhbmVfc3RhdGUtPnJvdGF0aW9uIHRvIGJlIHNldCB0byBE Uk1fTU9ERV9ST1RBVEVfMCBpbiB0aGUgZWxzZQpjYXNlLCBBRkFJSyBuZXdfcGxhbmVfc3RhdGUg c3RhcnRzIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgYW5kIHJvdGF0aW9uCm1heSBoYXZlIGEgZGlm ZmVyZW50IHZhbHVlIHRoZXJlLgoKT3RoZXJ3aXNlIHRoaXMgbG9va3MgZ29vZCB0byBtZS4KClJl Z2FyZHMsCgpIYW5zCgoKCj4gICAJCXJldCA9IF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZp Zyhtb2RlX3NldCwgc3RhdGUpOwo+ICAgCQlpZiAocmV0ICE9IDApCj4gQEAgLTg0MSw3ICs4ODYs NiBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJ CWlmICghZmJfaGVscGVyLT5jcnRjX2luZm9baV0ubW9kZV9zZXQuY29ubmVjdG9ycykKPiAgIAkJ CWdvdG8gb3V0X2ZyZWU7Cj4gICAJCWZiX2hlbHBlci0+Y3J0Y19pbmZvW2ldLm1vZGVfc2V0Lm51 bV9jb25uZWN0b3JzID0gMDsKPiAtCQlmYl9oZWxwZXItPmNydGNfaW5mb1tpXS5yb3RhdGlvbiA9 IERSTV9NT0RFX1JPVEFURV8wOwo+ICAgCX0KPiAgIAo+ICAgCWkgPSAwOwo+IEBAIC0yNDE0LDYy ICsyNDU4LDYgQEAgc3RhdGljIGludCBkcm1fcGlja19jcnRjcyhzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyLAo+ICAgCXJldHVybiBiZXN0X3Njb3JlOwo+ICAgfQo+ICAgCj4gLS8qCj4g LSAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHJvdGF0aW9uIGlzIG5lY2Vzc2FyeSBiZWNhdXNl IG9mIHBhbmVsIG9yaWVudGF0aW9uCj4gLSAqIGFuZCBpZiBpdCBpcywgaWYgaXQgaXMgc3VwcG9y dGVkLgo+IC0gKiBJZiByb3RhdGlvbiBpcyBuZWNlc3NhcnkgYW5kIHN1cHBvcnRlZCwgaXRzIGdl dHMgc2V0IGluIGZiX2NydGMucm90YXRpb24uCj4gLSAqIElmIHJvdGF0aW9uIGlzIG5lY2Vzc2Fy eSBidXQgbm90IHN1cHBvcnRlZCwgYSBEUk1fTU9ERV9ST1RBVEVfKiBmbGFnIGdldHMKPiAtICog b3ItZWQgaW50byBmYl9oZWxwZXItPnN3X3JvdGF0aW9ucy4gSW4gZHJtX3NldHVwX2NydGNzX2Zi KCkgd2UgY2hlY2sgaWYgb25seQo+IC0gKiBvbmUgYml0IGlzIHNldCBhbmQgdGhlbiB3ZSBzZXQg ZmJfaW5mby5mYmNvbl9yb3RhdGVfaGludCB0byBtYWtlIGZiY29uIGRvCj4gLSAqIHRoZSB1bnN1 cHBvcnRlZCByb3RhdGlvbi4KPiAtICovCj4gLXN0YXRpYyB2b2lkIGRybV9zZXR1cF9jcnRjX3Jv dGF0aW9uKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCj4gLQkJCQkgICAgc3RydWN0 IGRybV9mYl9oZWxwZXJfY3J0YyAqZmJfY3J0YywKPiAtCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9IGZiX2Ny dGMtPm1vZGVfc2V0LmNydGMtPnByaW1hcnk7Cj4gLQl1aW50NjRfdCB2YWxpZF9tYXNrID0gMDsK PiAtCWludCBpLCByb3RhdGlvbjsKPiAtCj4gLQlmYl9jcnRjLT5yb3RhdGlvbiA9IERSTV9NT0RF X1JPVEFURV8wOwo+IC0KPiAtCXN3aXRjaCAoY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ucGFuZWxf b3JpZW50YXRpb24pIHsKPiAtCWNhc2UgRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fQk9UVE9N X1VQOgo+IC0JCXJvdGF0aW9uID0gRFJNX01PREVfUk9UQVRFXzE4MDsKPiAtCQlicmVhazsKPiAt CWNhc2UgRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fTEVGVF9VUDoKPiAtCQlyb3RhdGlvbiA9 IERSTV9NT0RFX1JPVEFURV85MDsKPiAtCQlicmVhazsKPiAtCWNhc2UgRFJNX01PREVfUEFORUxf T1JJRU5UQVRJT05fUklHSFRfVVA6Cj4gLQkJcm90YXRpb24gPSBEUk1fTU9ERV9ST1RBVEVfMjcw Owo+IC0JCWJyZWFrOwo+IC0JZGVmYXVsdDoKPiAtCQlyb3RhdGlvbiA9IERSTV9NT0RFX1JPVEFU RV8wOwo+IC0JfQo+IC0KPiAtCS8qCj4gLQkgKiBUT0RPOiBzdXBwb3J0IDkwIC8gMjcwIGRlZ3Jl ZSBoYXJkd2FyZSByb3RhdGlvbiwKPiAtCSAqIGRlcGVuZGluZyBvbiB0aGUgaGFyZHdhcmUgdGhp cyBtYXkgcmVxdWlyZSB0aGUgZnJhbWVidWZmZXIKPiAtCSAqIHRvIGJlIGluIGEgc3BlY2lmaWMg dGlsaW5nIGZvcm1hdC4KPiAtCSAqLwo+IC0JaWYgKHJvdGF0aW9uICE9IERSTV9NT0RFX1JPVEFU RV8xODAgfHwgIXBsYW5lLT5yb3RhdGlvbl9wcm9wZXJ0eSkgewo+IC0JCWZiX2hlbHBlci0+c3df cm90YXRpb25zIHw9IHJvdGF0aW9uOwo+IC0JCXJldHVybjsKPiAtCX0KPiAtCj4gLQlmb3IgKGkg PSAwOyBpIDwgcGxhbmUtPnJvdGF0aW9uX3Byb3BlcnR5LT5udW1fdmFsdWVzOyBpKyspCj4gLQkJ dmFsaWRfbWFzayB8PSAoMVVMTCA8PCBwbGFuZS0+cm90YXRpb25fcHJvcGVydHktPnZhbHVlc1tp XSk7Cj4gLQo+IC0JaWYgKCEocm90YXRpb24gJiB2YWxpZF9tYXNrKSkgewo+IC0JCWZiX2hlbHBl ci0+c3dfcm90YXRpb25zIHw9IHJvdGF0aW9uOwo+IC0JCXJldHVybjsKPiAtCX0KPiAtCj4gLQlm Yl9jcnRjLT5yb3RhdGlvbiA9IHJvdGF0aW9uOwo+IC0JLyogUm90YXRpbmcgaW4gaGFyZHdhcmUs IGZiY29uIHNob3VsZCBub3Qgcm90YXRlICovCj4gLQlmYl9oZWxwZXItPnN3X3JvdGF0aW9ucyB8 PSBEUk1fTU9ERV9ST1RBVEVfMDsKPiAtfQo+IC0KPiAgIHN0YXRpYyB2b2lkIGRybV9zZXR1cF9j cnRjcyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAo+ICAgCQkJICAgIHUzMiB3aWR0 aCwgdTMyIGhlaWdodCkKPiAgIHsKPiBAQCAtMjUyOSw3ICsyNTE3LDYgQEAgc3RhdGljIHZvaWQg ZHJtX3NldHVwX2NydGNzKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCj4gICAJCWRy bV9mYl9oZWxwZXJfbW9kZXNldF9yZWxlYXNlKGZiX2hlbHBlciwKPiAgIAkJCQkJICAgICAgJmZi X2hlbHBlci0+Y3J0Y19pbmZvW2ldLm1vZGVfc2V0KTsKPiAgIAo+IC0JZmJfaGVscGVyLT5zd19y b3RhdGlvbnMgPSAwOwo+ICAgCWRybV9mYl9oZWxwZXJfZm9yX2VhY2hfY29ubmVjdG9yKGZiX2hl bHBlciwgaSkgewo+ICAgCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9IG1vZGVzW2ld Owo+ICAgCQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jcnRjICpmYl9jcnRjID0gY3J0Y3NbaV07Cj4g QEAgLTI1NDksNyArMjUzNiw2IEBAIHN0YXRpYyB2b2lkIGRybV9zZXR1cF9jcnRjcyhzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAo+ICAgCQkJbW9kZXNldC0+bW9kZSA9IGRybV9tb2Rl X2R1cGxpY2F0ZShkZXYsCj4gICAJCQkJCQkJICAgZmJfY3J0Yy0+ZGVzaXJlZF9tb2RlKTsKPiAg IAkJCWRybV9jb25uZWN0b3JfZ2V0KGNvbm5lY3Rvcik7Cj4gLQkJCWRybV9zZXR1cF9jcnRjX3Jv dGF0aW9uKGZiX2hlbHBlciwgZmJfY3J0YywgY29ubmVjdG9yKTsKPiAgIAkJCW1vZGVzZXQtPmNv bm5lY3RvcnNbbW9kZXNldC0+bnVtX2Nvbm5lY3RvcnMrK10gPSBjb25uZWN0b3I7Cj4gICAJCQlt b2Rlc2V0LT54ID0gb2Zmc2V0LT54Owo+ICAgCQkJbW9kZXNldC0+eSA9IG9mZnNldC0+eTsKPiBA QCAtMjU3MiwxMSArMjU1OCwyNCBAQCBzdGF0aWMgdm9pZCBkcm1fc2V0dXBfY3J0Y3Moc3RydWN0 IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKPiAgIHN0YXRpYyB2b2lkIGRybV9zZXR1cF9jcnRj c19mYihzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQo+ICAgewo+ICAgCXN0cnVjdCBm Yl9pbmZvICppbmZvID0gZmJfaGVscGVyLT5mYmRldjsKPiArCXVuc2lnbmVkIGludCByb3RhdGlv biwgc3dfcm90YXRpb25zID0gMDsKPiAgIAlpbnQgaTsKPiAgIAo+IC0JZm9yIChpID0gMDsgaSA8 IGZiX2hlbHBlci0+Y3J0Y19jb3VudDsgaSsrKQo+IC0JCWlmIChmYl9oZWxwZXItPmNydGNfaW5m b1tpXS5tb2RlX3NldC5udW1fY29ubmVjdG9ycykKPiAtCQkJZmJfaGVscGVyLT5jcnRjX2luZm9b aV0ubW9kZV9zZXQuZmIgPSBmYl9oZWxwZXItPmZiOwo+ICsJZm9yIChpID0gMDsgaSA8IGZiX2hl bHBlci0+Y3J0Y19jb3VudDsgaSsrKSB7Cj4gKwkJc3RydWN0IGRybV9tb2RlX3NldCAqbW9kZXNl dCA9ICZmYl9oZWxwZXItPmNydGNfaW5mb1tpXS5tb2RlX3NldDsKPiArCj4gKwkJaWYgKCFtb2Rl c2V0LT5udW1fY29ubmVjdG9ycykKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCW1vZGVzZXQtPmZi ID0gZmJfaGVscGVyLT5mYjsKPiArCj4gKwkJaWYgKGRybV9mYl9oZWxwZXJfcGFuZWxfcm90YXRp b24obW9kZXNldC0+Y29ubmVjdG9yc1swXSwKPiArCQkJCQkJIG1vZGVzZXQtPmNydGMtPnByaW1h cnksICZyb3RhdGlvbikpCj4gKwkJCS8qIFJvdGF0aW5nIGluIGhhcmR3YXJlLCBmYmNvbiBzaG91 bGQgbm90IHJvdGF0ZSAqLwo+ICsJCQlzd19yb3RhdGlvbnMgfD0gRFJNX01PREVfUk9UQVRFXzA7 Cj4gKwkJZWxzZQo+ICsJCQlzd19yb3RhdGlvbnMgfD0gcm90YXRpb247Cj4gKwl9Cj4gICAKPiAg IAltdXRleF9sb2NrKCZmYl9oZWxwZXItPmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+ICAgCWRy bV9mYl9oZWxwZXJfZm9yX2VhY2hfY29ubmVjdG9yKGZiX2hlbHBlciwgaSkgewo+IEBAIC0yNTky LDcgKzI1OTEsNyBAQCBzdGF0aWMgdm9pZCBkcm1fc2V0dXBfY3J0Y3NfZmIoc3RydWN0IGRybV9m Yl9oZWxwZXIgKmZiX2hlbHBlcikKPiAgIAl9Cj4gICAJbXV0ZXhfdW5sb2NrKCZmYl9oZWxwZXIt PmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+ICAgCj4gLQlzd2l0Y2ggKGZiX2hlbHBlci0+c3df cm90YXRpb25zKSB7Cj4gKwlzd2l0Y2ggKHN3X3JvdGF0aW9ucykgewo+ICAgCWNhc2UgRFJNX01P REVfUk9UQVRFXzA6Cj4gICAJCWluZm8tPmZiY29uX3JvdGF0ZV9oaW50ID0gRkJfUk9UQVRFX1VS Owo+ICAgCQlicmVhazsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5o IGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCj4gaW5kZXggYjA2OTQzM2U3ZmMxLi5kMWU0 NWM4MzJjZDUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCj4gKysr IGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCj4gQEAgLTQ5LDcgKzQ5LDYgQEAgc3RydWN0 IGRybV9mYl9oZWxwZXJfY3J0YyB7Cj4gICAJc3RydWN0IGRybV9tb2RlX3NldCBtb2RlX3NldDsK PiAgIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVzaXJlZF9tb2RlOwo+ICAgCWludCB4LCB5 Owo+IC0JaW50IHJvdGF0aW9uOwo+ICAgfTsKPiAgIAo+ICAgLyoqCj4gQEAgLTE2MCwxMyArMTU5 LDYgQEAgc3RydWN0IGRybV9mYl9oZWxwZXIgewo+ICAgCXN0cnVjdCBkcm1fZmJfaGVscGVyX2Ny dGMgKmNydGNfaW5mbzsKPiAgIAlpbnQgY29ubmVjdG9yX2NvdW50Owo+ICAgCWludCBjb25uZWN0 b3JfaW5mb19hbGxvY19jb3VudDsKPiAtCS8qKgo+IC0JICogQHN3X3JvdGF0aW9uczoKPiAtCSAq IEJpdG1hc2sgb2YgYWxsIHJvdGF0aW9ucyByZXF1ZXN0ZWQgZm9yIHBhbmVsLW9yaWVudGF0aW9u IHdoaWNoCj4gLQkgKiBjb3VsZCBub3QgYmUgaGFuZGxlZCBpbiBoYXJkd2FyZS4gSWYgb25seSBv bmUgYml0IGlzIHNldAo+IC0JICogZmJkZXYtPmZiY29uX3JvdGF0ZV9oaW50IGdldHMgc2V0IHRv IHRoZSByZXF1ZXN0ZWQgcm90YXRpb24uCj4gLQkgKi8KPiAtCWludCBzd19yb3RhdGlvbnM7Cj4g ICAJLyoqCj4gICAJICogQGNvbm5lY3Rvcl9pbmZvOgo+ICAgCSAqCj4gCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=