From: Boris Brezillon Subject: Re: [PATCH v2 1/7] drm/bridge: Refactor out the panel wrapper from the lvds-encoder bridge. Date: Fri, 12 May 2017 09:33:37 +0200 Message-ID: <20170512093337.06d9b84e@bbrezillon> References: <20170511183128.25085-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.free-electrons.com (mail.free-electrons.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id EFB236E663 for ; Fri, 12 May 2017 07:33:48 +0000 (UTC) In-Reply-To: <20170511183128.25085-1-eric@anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Eric Anholt Cc: Philippe Cornu , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Yannick Fertre , Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCAxMSBNYXkgMjAxNyAxMTozMToyMiAtMDcwMApFcmljIEFuaG9sdCA8ZXJpY0Bhbmhv bHQubmV0PiB3cm90ZToKCj4gTWFueSBEUk0gZHJpdmVycyBoYXZlIGNvbW1vbiBjb2RlIHRvIG1h a2UgYSBzdHViIGNvbm5lY3Rvcgo+IGltcGxlbWVudGF0aW9uIHRoYXQgd3JhcHMgYSBkcm1fcGFu ZWwuICBCeSB3cmFwcGluZyB0aGUgcGFuZWwgaW4gYSBEUk0KPiBicmlkZ2UsIGFsbCBvZiB0aGUg Y29ubmVjdG9yIGNvZGUgKGluY2x1ZGluZyBjYWxscyBkdXJpbmcgZW5jb2Rlcgo+IGVuYWJsZS9k aXNhYmxlKSBnb2VzIGF3YXkuCj4gCj4gdjI6IEZpeCBidWlsZCB3aXRoIENPTkZJR19EUk09bSwg ZHJvcCAiZGV2IiBhcmd1bWVudCB0aGF0IHNob3VsZCBqdXN0Cj4gICAgIGJlIHRoZSBwYW5lbCdz IGRldiwgbW92ZSBrZXJuZWxkb2MgdXAgYSBsZXZlbCBhbmQgZG9jdW1lbnQKPiAgICAgX3JlbW92 ZSgpLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Cj4g QWNrZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpSZXZpZXdl ZC1ieTogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AZnJlZS1lbGVjdHJvbnMuY29t PgoKPiAtLS0KPiAgRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdCB8ICAgNiAr Kwo+ICBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAxICsKPiAgZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnICAgICAgICB8ICAxMSArLQo+ICBkcml2ZXJzL2dw dS9kcm0vYnJpZGdlL2x2ZHMtZW5jb2Rlci5jIHwgMTU3ICsrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhbmVsLmMgICAgICAgIHwgMTk3ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5o ICAgICAgICAgICAgICB8ICAgNyArKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDIzOCBpbnNlcnRpb25z KCspLCAxNDEgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vYnJpZGdlL3BhbmVsLmMKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJt LWttcy1oZWxwZXJzLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QK PiBpbmRleCBjMDc1YWFkZDcwNzguLjdjNWUyNTQ5YTU4YSAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVu dGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUv ZHJtLWttcy1oZWxwZXJzLnJzdAo+IEBAIC0xNDMsNiArMTQzLDEyIEBAIEJyaWRnZSBIZWxwZXIg UmVmZXJlbmNlCj4gIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5j Cj4gICAgIDpleHBvcnQ6Cj4gIAo+ICtQYW5lbC1CcmlkZ2UgSGVscGVyIFJlZmVyZW5jZQo+ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArLi4ga2VybmVsLWRvYzo6IGRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvcGFuZWwuYwo+ICsgICA6ZXhwb3J0Ogo+ICsKPiAgLi4gX2RybV9w YW5lbF9oZWxwZXI6Cj4gIAo+ICBQYW5lbCBIZWxwZXIgUmVmZXJlbmNlCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+IGlu ZGV4IGMxNTZmZWNmYjM2Mi4uNGNjOWMwMmNjM2YyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+IEBAIC0yNCw2 ICsyNCw3IEBAIGRybS0kKENPTkZJR19DT01QQVQpICs9IGRybV9pb2MzMi5vCj4gIGRybS0kKENP TkZJR19EUk1fR0VNX0NNQV9IRUxQRVIpICs9IGRybV9nZW1fY21hX2hlbHBlci5vCj4gIGRybS0k KENPTkZJR19QQ0kpICs9IGF0aV9wY2lnYXJ0Lm8KPiAgZHJtLSQoQ09ORklHX0RSTV9QQU5FTCkg Kz0gZHJtX3BhbmVsLm8KPiArZHJtLSQoQ09ORklHX0RSTV9QQU5FTF9CUklER0UpICs9IGJyaWRn ZS9wYW5lbC5vCj4gIGRybS0kKENPTkZJR19PRikgKz0gZHJtX29mLm8KPiAgZHJtLSQoQ09ORklH X0FHUCkgKz0gZHJtX2FncHN1cHBvcnQubwo+ICBkcm0tJChDT05GSUdfREVCVUdfRlMpICs9IGRy bV9kZWJ1Z2ZzLm8gZHJtX2RlYnVnZnNfY3JjLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCj4gaW5k ZXggZjY5NjhkM2I0YjQxLi5jNGRhY2EzODc0M2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmln Cj4gQEAgLTQsNiArNCwxNCBAQCBjb25maWcgRFJNX0JSSURHRQo+ICAJaGVscAo+ICAJICBCcmlk Z2UgcmVnaXN0cmF0aW9uIGFuZCBsb29rdXAgZnJhbWV3b3JrLgo+ICAKPiArY29uZmlnIERSTV9Q QU5FTF9CUklER0UKPiArCWRlZl9ib29sIHkKPiArCWRlcGVuZHMgb24gRFJNX0JSSURHRQo+ICsJ c2VsZWN0IERSTV9LTVNfSEVMUEVSCj4gKwlzZWxlY3QgRFJNX1BBTkVMCj4gKwloZWxwCj4gKwkg IERSTSBicmlkZ2Ugd3JhcHBlciBvZiBEUk0gcGFuZWxzCj4gKwo+ICBtZW51ICJEaXNwbGF5IElu dGVyZmFjZSBCcmlkZ2VzIgo+ICAJZGVwZW5kcyBvbiBEUk0gJiYgRFJNX0JSSURHRQo+ICAKPiBA QCAtMjcsOCArMzUsNyBAQCBjb25maWcgRFJNX0RVTUJfVkdBX0RBQwo+ICBjb25maWcgRFJNX0xW RFNfRU5DT0RFUgo+ICAJdHJpc3RhdGUgIlRyYW5zcGFyZW50IHBhcmFsbGVsIHRvIExWRFMgZW5j b2RlciBzdXBwb3J0Igo+ICAJZGVwZW5kcyBvbiBPRgo+IC0Jc2VsZWN0IERSTV9LTVNfSEVMUEVS Cj4gLQlzZWxlY3QgRFJNX1BBTkVMCj4gKwlzZWxlY3QgRFJNX1BBTkVMX0JSSURHRQo+ICAJaGVs cAo+ICAJICBTdXBwb3J0IGZvciB0cmFuc3BhcmVudCBwYXJhbGxlbCB0byBMVkRTIGVuY29kZXJz IHRoYXQgZG9uJ3QgcmVxdWlyZQo+ICAJICBhbnkgY29uZmlndXJhdGlvbi4KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9sdmRzLWVuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvbHZkcy1lbmNvZGVyLmMKPiBpbmRleCBmMWY2N2EyNzk0MjYuLjA5MDNiYTU3NGY2 MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2x2ZHMtZW5jb2Rlci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9sdmRzLWVuY29kZXIuYwo+IEBAIC04LDE0NCAr OCwxOCBAQAo+ICAgKi8KPiAgCj4gICNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+IC0jaW5jbHVkZSA8 ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5o Pgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+IC0jaW5jbHVkZSA8ZHJtL2Ry bV9lbmNvZGVyLmg+Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMu aD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYnJpZGdlLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX3Bh bmVsLmg+Cj4gIAo+ICAjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KPiAgCj4gLXN0cnVjdCBs dmRzX2VuY29kZXIgewo+IC0Jc3RydWN0IGRldmljZSAqZGV2Owo+IC0KPiAtCXN0cnVjdCBkcm1f YnJpZGdlIGJyaWRnZTsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsKPiAtCXN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsOwo+IC19Owo+IC0KPiAtc3RhdGljIGlubGluZSBzdHJ1Y3Qg bHZkc19lbmNvZGVyICoKPiAtZHJtX2JyaWRnZV90b19sdmRzX2VuY29kZXIoc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSkKPiAtewo+IC0JcmV0dXJuIGNvbnRhaW5lcl9vZihicmlkZ2UsIHN0cnVj dCBsdmRzX2VuY29kZXIsIGJyaWRnZSk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbmxpbmUgc3RydWN0 IGx2ZHNfZW5jb2RlciAqCj4gLWRybV9jb25uZWN0b3JfdG9fbHZkc19lbmNvZGVyKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gLXsKPiAtCXJldHVybiBjb250YWluZXJfb2YoY29u bmVjdG9yLCBzdHJ1Y3QgbHZkc19lbmNvZGVyLCBjb25uZWN0b3IpOwo+IC19Cj4gLQo+IC1zdGF0 aWMgaW50IGx2ZHNfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+IC17Cj4gLQlzdHJ1Y3QgbHZkc19lbmNvZGVyICpsdmRzID0gZHJtX2Nvbm5lY3Rv cl90b19sdmRzX2VuY29kZXIoY29ubmVjdG9yKTsKPiAtCj4gLQlyZXR1cm4gZHJtX3BhbmVsX2dl dF9tb2RlcyhsdmRzLT5wYW5lbCk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgbHZkc19jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewo+ IC0JLmdldF9tb2RlcyA9IGx2ZHNfY29ubmVjdG9yX2dldF9tb2RlcywKPiAtfTsKPiAtCj4gLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBsdmRzX2Nvbm5lY3Rvcl9mdW5j cyA9IHsKPiAtCS5kcG1zID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2RwbXMsCj4gLQku cmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQsCj4gLQkuZmlsbF9tb2Rl cyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKPiAtCS5kZXN0cm95 ID0gZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwLAo+IC0JLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBk cm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlLAo+IC0JLmF0b21pY19k ZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUs Cj4gLX07Cj4gLQo+IC1zdGF0aWMgaW50IGx2ZHNfZW5jb2Rlcl9hdHRhY2goc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSkKPiAtewo+IC0Jc3RydWN0IGx2ZHNfZW5jb2RlciAqbHZkcyA9IGRybV9i cmlkZ2VfdG9fbHZkc19lbmNvZGVyKGJyaWRnZSk7Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yID0gJmx2ZHMtPmNvbm5lY3RvcjsKPiAtCWludCByZXQ7Cj4gLQo+IC0JaWYgKCFi cmlkZ2UtPmVuY29kZXIpIHsKPiAtCQlEUk1fRVJST1IoIk1pc3NpbmcgZW5jb2RlclxuIik7Cj4g LQkJcmV0dXJuIC1FTk9ERVY7Cj4gLQl9Cj4gLQo+IC0JZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRk KGNvbm5lY3RvciwgJmx2ZHNfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gLQo+IC0JcmV0ID0g ZHJtX2Nvbm5lY3Rvcl9pbml0KGJyaWRnZS0+ZGV2LCBjb25uZWN0b3IsICZsdmRzX2Nvbm5lY3Rv cl9mdW5jcywKPiAtCQkJCSBEUk1fTU9ERV9DT05ORUNUT1JfTFZEUyk7Cj4gLQlpZiAocmV0KSB7 Cj4gLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBjb25uZWN0b3JcbiIpOwo+IC0J CXJldHVybiByZXQ7Cj4gLQl9Cj4gLQo+IC0JZHJtX21vZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNv ZGVyKCZsdmRzLT5jb25uZWN0b3IsIGJyaWRnZS0+ZW5jb2Rlcik7Cj4gLQo+IC0JcmV0ID0gZHJt X3BhbmVsX2F0dGFjaChsdmRzLT5wYW5lbCwgJmx2ZHMtPmNvbm5lY3Rvcik7Cj4gLQlpZiAocmV0 IDwgMCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0 aWMgdm9pZCBsdmRzX2VuY29kZXJfZGV0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4g LXsKPiAtCXN0cnVjdCBsdmRzX2VuY29kZXIgKmx2ZHMgPSBkcm1fYnJpZGdlX3RvX2x2ZHNfZW5j b2RlcihicmlkZ2UpOwo+IC0KPiAtCWRybV9wYW5lbF9kZXRhY2gobHZkcy0+cGFuZWwpOwo+IC19 Cj4gLQo+IC1zdGF0aWMgdm9pZCBsdmRzX2VuY29kZXJfcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlKQo+IC17Cj4gLQlzdHJ1Y3QgbHZkc19lbmNvZGVyICpsdmRzID0gZHJtX2Jy aWRnZV90b19sdmRzX2VuY29kZXIoYnJpZGdlKTsKPiAtCj4gLQlkcm1fcGFuZWxfcHJlcGFyZShs dmRzLT5wYW5lbCk7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGx2ZHNfZW5jb2Rlcl9lbmFibGUo c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAtewo+IC0Jc3RydWN0IGx2ZHNfZW5jb2RlciAq bHZkcyA9IGRybV9icmlkZ2VfdG9fbHZkc19lbmNvZGVyKGJyaWRnZSk7Cj4gLQo+IC0JZHJtX3Bh bmVsX2VuYWJsZShsdmRzLT5wYW5lbCk7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGx2ZHNfZW5j b2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gLXsKPiAtCXN0cnVjdCBs dmRzX2VuY29kZXIgKmx2ZHMgPSBkcm1fYnJpZGdlX3RvX2x2ZHNfZW5jb2RlcihicmlkZ2UpOwo+ IC0KPiAtCWRybV9wYW5lbF9kaXNhYmxlKGx2ZHMtPnBhbmVsKTsKPiAtfQo+IC0KPiAtc3RhdGlj IHZvaWQgbHZkc19lbmNvZGVyX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl KQo+IC17Cj4gLQlzdHJ1Y3QgbHZkc19lbmNvZGVyICpsdmRzID0gZHJtX2JyaWRnZV90b19sdmRz X2VuY29kZXIoYnJpZGdlKTsKPiAtCj4gLQlkcm1fcGFuZWxfdW5wcmVwYXJlKGx2ZHMtPnBhbmVs KTsKPiAtfQo+IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIGx2ZHNf ZW5jb2Rlcl9icmlkZ2VfZnVuY3MgPSB7Cj4gLQkuYXR0YWNoID0gbHZkc19lbmNvZGVyX2F0dGFj aCwKPiAtCS5kZXRhY2ggPSBsdmRzX2VuY29kZXJfZGV0YWNoLAo+IC0JLnByZV9lbmFibGUgPSBs dmRzX2VuY29kZXJfcHJlX2VuYWJsZSwKPiAtCS5lbmFibGUgPSBsdmRzX2VuY29kZXJfZW5hYmxl LAo+IC0JLmRpc2FibGUgPSBsdmRzX2VuY29kZXJfZGlzYWJsZSwKPiAtCS5wb3N0X2Rpc2FibGUg PSBsdmRzX2VuY29kZXJfcG9zdF9kaXNhYmxlLAo+IC19Owo+IC0KPiAgc3RhdGljIGludCBsdmRz X2VuY29kZXJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgewo+IC0Jc3Ry dWN0IGx2ZHNfZW5jb2RlciAqbHZkczsKPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydDsKPiAg CXN0cnVjdCBkZXZpY2Vfbm9kZSAqZW5kcG9pbnQ7Cj4gLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBh bmVsOwo+IC0KPiAtCWx2ZHMgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpsdmRz KSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWx2ZHMpCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQo+ IC0JbHZkcy0+ZGV2ID0gJnBkZXYtPmRldjsKPiAtCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYs IGx2ZHMpOwo+IC0KPiAtCWx2ZHMtPmJyaWRnZS5mdW5jcyA9ICZsdmRzX2VuY29kZXJfYnJpZGdl X2Z1bmNzOwo+IC0JbHZkcy0+YnJpZGdlLm9mX25vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKPiAr CXN0cnVjdCBkZXZpY2Vfbm9kZSAqcGFuZWxfbm9kZTsKPiArCXN0cnVjdCBkcm1fcGFuZWwgKnBh bmVsOwo+ICsJc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZTsKPiAgCj4gIAkvKiBMb2NhdGUgdGhl IHBhbmVsIERUIG5vZGUuICovCj4gIAlwb3J0ID0gb2ZfZ3JhcGhfZ2V0X3BvcnRfYnlfaWQocGRl di0+ZGV2Lm9mX25vZGUsIDEpOwo+IEBAIC0xNjEsMjkgKzM1LDM0IEBAIHN0YXRpYyBpbnQgbHZk c19lbmNvZGVyX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJcmV0dXJu IC1FTlhJTzsKPiAgCX0KPiAgCj4gLQlwYW5lbCA9IG9mX2dyYXBoX2dldF9yZW1vdGVfcG9ydF9w YXJlbnQoZW5kcG9pbnQpOwo+ICsJcGFuZWxfbm9kZSA9IG9mX2dyYXBoX2dldF9yZW1vdGVfcG9y dF9wYXJlbnQoZW5kcG9pbnQpOwo+ICAJb2Zfbm9kZV9wdXQoZW5kcG9pbnQpOwo+IC0JaWYgKCFw YW5lbCkgewo+ICsJaWYgKCFwYW5lbF9ub2RlKSB7Cj4gIAkJZGV2X2RiZygmcGRldi0+ZGV2LCAi bm8gcmVtb3RlIGVuZHBvaW50IGZvciBwb3J0IDFcbiIpOwo+ICAJCXJldHVybiAtRU5YSU87Cj4g IAl9Cj4gIAo+IC0JbHZkcy0+cGFuZWwgPSBvZl9kcm1fZmluZF9wYW5lbChwYW5lbCk7Cj4gLQlv Zl9ub2RlX3B1dChwYW5lbCk7Cj4gLQlpZiAoIWx2ZHMtPnBhbmVsKSB7Cj4gKwlwYW5lbCA9IG9m X2RybV9maW5kX3BhbmVsKHBhbmVsX25vZGUpOwo+ICsJb2Zfbm9kZV9wdXQocGFuZWxfbm9kZSk7 Cj4gKwlpZiAoIXBhbmVsKSB7Cj4gIAkJZGV2X2RiZygmcGRldi0+ZGV2LCAicGFuZWwgbm90IGZv dW5kLCBkZWZlcnJpbmcgcHJvYmVcbiIpOwo+ICAJCXJldHVybiAtRVBST0JFX0RFRkVSOwo+ICAJ fQo+ICAKPiAtCS8qIFJlZ2lzdGVyIHRoZSBicmlkZ2UuICovCj4gLQlyZXR1cm4gZHJtX2JyaWRn ZV9hZGQoJmx2ZHMtPmJyaWRnZSk7Cj4gKwlicmlkZ2UgPSBkcm1fcGFuZWxfYnJpZGdlX2FkZChw YW5lbCwgRFJNX01PREVfQ09OTkVDVE9SX0xWRFMpOwo+ICsJaWYgKElTX0VSUihicmlkZ2UpKQo+ ICsJCXJldHVybiBQVFJfRVJSKGJyaWRnZSk7Cj4gKwo+ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEo cGRldiwgYnJpZGdlKTsKPiArCj4gKwlyZXR1cm4gMDsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBs dmRzX2VuY29kZXJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsKPiAt CXN0cnVjdCBsdmRzX2VuY29kZXIgKmVuY29kZXIgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2 KTsKPiArCXN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShw ZGV2KTsKPiAgCj4gLQlkcm1fYnJpZGdlX3JlbW92ZSgmZW5jb2Rlci0+YnJpZGdlKTsKPiArCWRy bV9icmlkZ2VfcmVtb3ZlKGJyaWRnZSk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9wYW5lbC5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAu LmZkMWE3OGNiMTIwNQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3BhbmVsLmMKPiBAQCAtMCwwICsxLDE5NyBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKEMp IDIwMTYgTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29t Pgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQnJvYWRjb20KPiArICoKPiArICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ICsg KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcwo+ICsgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMiBvZgo+ICsgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICovCj4gKwo+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4K PiArI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWlj X2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KPiArI2luY2x1ZGUg PGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgo+ ICsjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmg+Cj4gKyNpbmNsdWRl IDxkcm0vZHJtX3BhbmVsLmg+Cj4gKwo+ICtzdHJ1Y3QgcGFuZWxfYnJpZGdlIHsKPiArCXN0cnVj dCBkcm1fYnJpZGdlIGJyaWRnZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsK PiArCXN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsOwo+ICsJdTMyIGNvbm5lY3Rvcl90eXBlOwo+ICt9 Owo+ICsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFuZWxfYnJpZGdlICoKPiArZHJtX2JyaWRn ZV90b19wYW5lbF9icmlkZ2Uoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArewo+ICsJcmV0 dXJuIGNvbnRhaW5lcl9vZihicmlkZ2UsIHN0cnVjdCBwYW5lbF9icmlkZ2UsIGJyaWRnZSk7Cj4g K30KPiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHBhbmVsX2JyaWRnZSAqCj4gK2RybV9jb25u ZWN0b3JfdG9fcGFuZWxfYnJpZGdlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4g K3sKPiArCXJldHVybiBjb250YWluZXJfb2YoY29ubmVjdG9yLCBzdHJ1Y3QgcGFuZWxfYnJpZGdl LCBjb25uZWN0b3IpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHBhbmVsX2JyaWRnZV9jb25uZWN0 b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0 cnVjdCBwYW5lbF9icmlkZ2UgKnBhbmVsX2JyaWRnZSA9Cj4gKwkJZHJtX2Nvbm5lY3Rvcl90b19w YW5lbF9icmlkZ2UoY29ubmVjdG9yKTsKPiArCj4gKwlyZXR1cm4gZHJtX3BhbmVsX2dldF9tb2Rl cyhwYW5lbF9icmlkZ2UtPnBhbmVsKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBwYW5lbF9icmlkZ2VfY29ubmVjdG9yX2hlbHBlcl9m dW5jcyA9IHsKPiArCS5nZXRfbW9kZXMgPSBwYW5lbF9icmlkZ2VfY29ubmVjdG9yX2dldF9tb2Rl cywKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBw YW5lbF9icmlkZ2VfY29ubmVjdG9yX2Z1bmNzID0gewo+ICsJLmRwbXMgPSBkcm1fYXRvbWljX2hl bHBlcl9jb25uZWN0b3JfZHBtcywKPiArCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9yZXNldCwKPiArCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29u bmVjdG9yX21vZGVzLAo+ICsJLmRlc3Ryb3kgPSBkcm1fY29ubmVjdG9yX2NsZWFudXAsCj4gKwku YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBs aWNhdGVfc3RhdGUsCj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBl cl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgcGFuZWxf YnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt7Cj4gKwlzdHJ1Y3Qg cGFuZWxfYnJpZGdlICpwYW5lbF9icmlkZ2UgPSBkcm1fYnJpZGdlX3RvX3BhbmVsX2JyaWRnZShi cmlkZ2UpOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZwYW5lbF9icmlk Z2UtPmNvbm5lY3RvcjsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKCFicmlkZ2UtPmVuY29kZXIp IHsKPiArCQlEUk1fRVJST1IoIk1pc3NpbmcgZW5jb2RlclxuIik7Cj4gKwkJcmV0dXJuIC1FTk9E RVY7Cj4gKwl9Cj4gKwo+ICsJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKGNvbm5lY3RvciwKPiAr CQkJCSAmcGFuZWxfYnJpZGdlX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+ICsKPiArCXJldCA9 IGRybV9jb25uZWN0b3JfaW5pdChicmlkZ2UtPmRldiwgY29ubmVjdG9yLAo+ICsJCQkJICZwYW5l bF9icmlkZ2VfY29ubmVjdG9yX2Z1bmNzLAo+ICsJCQkJIHBhbmVsX2JyaWRnZS0+Y29ubmVjdG9y X3R5cGUpOwo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXRpYWxp emUgY29ubmVjdG9yXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWRybV9tb2Rl X2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2RlcigmcGFuZWxfYnJpZGdlLT5jb25uZWN0b3IsCj4gKwkJ CQkJICBicmlkZ2UtPmVuY29kZXIpOwo+ICsKPiArCXJldCA9IGRybV9wYW5lbF9hdHRhY2gocGFu ZWxfYnJpZGdlLT5wYW5lbCwgJnBhbmVsX2JyaWRnZS0+Y29ubmVjdG9yKTsKPiArCWlmIChyZXQg PCAwKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIHBhbmVsX2JyaWRnZV9kZXRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAr ewo+ICsJc3RydWN0IHBhbmVsX2JyaWRnZSAqcGFuZWxfYnJpZGdlID0gZHJtX2JyaWRnZV90b19w YW5lbF9icmlkZ2UoYnJpZGdlKTsKPiArCj4gKwlkcm1fcGFuZWxfZGV0YWNoKHBhbmVsX2JyaWRn ZS0+cGFuZWwpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBwYW5lbF9icmlkZ2VfcHJlX2VuYWJs ZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt7Cj4gKwlzdHJ1Y3QgcGFuZWxfYnJpZGdl ICpwYW5lbF9icmlkZ2UgPSBkcm1fYnJpZGdlX3RvX3BhbmVsX2JyaWRnZShicmlkZ2UpOwo+ICsK PiArCWRybV9wYW5lbF9wcmVwYXJlKHBhbmVsX2JyaWRnZS0+cGFuZWwpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBwYW5lbF9icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Cj4gK3sKPiArCXN0cnVjdCBwYW5lbF9icmlkZ2UgKnBhbmVsX2JyaWRnZSA9IGRybV9icmlkZ2Vf dG9fcGFuZWxfYnJpZGdlKGJyaWRnZSk7Cj4gKwo+ICsJZHJtX3BhbmVsX2VuYWJsZShwYW5lbF9i cmlkZ2UtPnBhbmVsKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgcGFuZWxfYnJpZGdlX2Rpc2Fi bGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArewo+ICsJc3RydWN0IHBhbmVsX2JyaWRn ZSAqcGFuZWxfYnJpZGdlID0gZHJtX2JyaWRnZV90b19wYW5lbF9icmlkZ2UoYnJpZGdlKTsKPiAr Cj4gKwlkcm1fcGFuZWxfZGlzYWJsZShwYW5lbF9icmlkZ2UtPnBhbmVsKTsKPiArfQo+ICsKPiAr c3RhdGljIHZvaWQgcGFuZWxfYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQo+ICt7Cj4gKwlzdHJ1Y3QgcGFuZWxfYnJpZGdlICpwYW5lbF9icmlkZ2UgPSBkcm1f YnJpZGdlX3RvX3BhbmVsX2JyaWRnZShicmlkZ2UpOwo+ICsKPiArCWRybV9wYW5lbF91bnByZXBh cmUocGFuZWxfYnJpZGdlLT5wYW5lbCk7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2JyaWRnZV9mdW5jcyBwYW5lbF9icmlkZ2VfYnJpZGdlX2Z1bmNzID0gewo+ICsJLmF0dGFj aCA9IHBhbmVsX2JyaWRnZV9hdHRhY2gsCj4gKwkuZGV0YWNoID0gcGFuZWxfYnJpZGdlX2RldGFj aCwKPiArCS5wcmVfZW5hYmxlID0gcGFuZWxfYnJpZGdlX3ByZV9lbmFibGUsCj4gKwkuZW5hYmxl ID0gcGFuZWxfYnJpZGdlX2VuYWJsZSwKPiArCS5kaXNhYmxlID0gcGFuZWxfYnJpZGdlX2Rpc2Fi bGUsCj4gKwkucG9zdF9kaXNhYmxlID0gcGFuZWxfYnJpZGdlX3Bvc3RfZGlzYWJsZSwKPiArfTsK PiArCj4gKy8qKgo+ICsgKiBkcm1fcGFuZWxfYnJpZGdlX2FkZCAtIENyZWF0ZXMgYSBkcm1fYnJp ZGdlIGFuZCBkcm1fY29ubmVjdG9yIHRoYXQKPiArICoganVzdCBjYWxscyB0aGUgYXBwcm9wcmlh dGUgZnVuY3Rpb25zIGZyb20gZHJtX3BhbmVsLgo+ICsgKgo+ICsgKiBAcGFuZWw6IFRoZSBkcm1f cGFuZWwgYmVpbmcgd3JhcHBlZC4gIE11c3QgYmUgbm9uLU5VTEwuCj4gKyAqIEBjb25uZWN0b3Jf dHlwZTogVGhlIERSTV9NT0RFX0NPTk5FQ1RPUl8qIGZvciB0aGUgY29ubmVjdG9yIHRvIGJlCj4g KyAqIGNyZWF0ZWQuCj4gKyAqCj4gKyAqIEZvciBkcml2ZXJzIGNvbnZlcnRpbmcgZnJvbSBkaXJl Y3RseSB1c2luZyBkcm1fcGFuZWw6IFRoZSBleHBlY3RlZAo+ICsgKiB1c2FnZSBwYXR0ZXJuIGlz IHRoYXQgZHVyaW5nIGVpdGhlciBlbmNvZGVyIG1vZHVsZSBwcm9iZSBvciBEU0kKPiArICogaG9z dCBhdHRhY2gsIGEgZHJtX3BhbmVsIHdpbGwgYmUgbG9va2VkIHVwIHRocm91Z2gKPiArICogZHJt X29mX2ZpbmRfcGFuZWxfb3JfYnJpZGdlKCkuICBkcm1fcGFuZWxfYnJpZGdlX2FkZCgpIGlzIHVz ZWQgdG8KPiArICogd3JhcCB0aGF0IHBhbmVsIGluIHRoZSBuZXcgYnJpZGdlLCBhbmQgdGhlIHJl c3VsdCBjYW4gdGhlbiBiZQo+ICsgKiBwYXNzZWQgdG8gZHJtX2JyaWRnZV9hdHRhY2goKS4gIFRo ZSBkcm1fcGFuZWxfcHJlcGFyZSgpIGFuZCByZWxhdGVkCj4gKyAqIGZ1bmN0aW9ucyBjYW4gYmUg ZHJvcHBlZCBmcm9tIHRoZSBlbmNvZGVyIGRyaXZlciAodGhleSdyZSBub3cKPiArICogY2FsbGVk IGJ5IHRoZSBLTVMgaGVscGVycyBiZWZvcmUgY2FsbGluZyBpbnRvIHRoZSBlbmNvZGVyKSwgYWxv bmcKPiArICogd2l0aCBjb25uZWN0b3IgY3JlYXRpb24uICBXaGVuIGRvbmUgd2l0aCB0aGUgYnJp ZGdlLAo+ICsgKiBkcm1fYnJpZGdlX2RldGFjaCgpIHNob3VsZCBiZSBjYWxsZWQgYXMgbm9ybWFs LCB0aGVuCj4gKyAqIGRybV9wYW5lbF9icmlkZ2VfcmVtb3ZlKCkgdG8gZnJlZSBpdC4KPiArICov Cj4gK3N0cnVjdCBkcm1fYnJpZGdlICpkcm1fcGFuZWxfYnJpZGdlX2FkZChzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKPiArCQkJCQl1MzIgY29ubmVjdG9yX3R5cGUpCj4gK3sKPiArCXN0cnVjdCBw YW5lbF9icmlkZ2UgKnBhbmVsX2JyaWRnZTsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKCFwYW5l bCkKPiArCQlyZXR1cm4gRVJSX1BUUihFSU5WQUwpOwo+ICsKPiArCXBhbmVsX2JyaWRnZSA9IGRl dm1fa3phbGxvYyhwYW5lbC0+ZGV2LCBzaXplb2YoKnBhbmVsX2JyaWRnZSksCj4gKwkJCQkgICAg R0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXBhbmVsX2JyaWRnZSkKPiArCQlyZXR1cm4gRVJSX1BUUigt RU5PTUVNKTsKPiArCj4gKwlwYW5lbF9icmlkZ2UtPmNvbm5lY3Rvcl90eXBlID0gY29ubmVjdG9y X3R5cGU7Cj4gKwlwYW5lbF9icmlkZ2UtPnBhbmVsID0gcGFuZWw7Cj4gKwo+ICsJcGFuZWxfYnJp ZGdlLT5icmlkZ2UuZnVuY3MgPSAmcGFuZWxfYnJpZGdlX2JyaWRnZV9mdW5jczsKPiArCXBhbmVs X2JyaWRnZS0+YnJpZGdlLm9mX25vZGUgPSBwYW5lbC0+ZGV2LT5vZl9ub2RlOwo+ICsKPiArCXJl dCA9IGRybV9icmlkZ2VfYWRkKCZwYW5lbF9icmlkZ2UtPmJyaWRnZSk7Cj4gKwlpZiAocmV0KQo+ ICsJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gKwo+ICsJcmV0dXJuICZwYW5lbF9icmlkZ2UtPmJy aWRnZTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9icmlkZ2VfYWRkKTsKPiArCj4g Ky8qKgo+ICsgKiBkcm1fcGFuZWxfYnJpZGdlX3JlbW92ZSAtIFVucmVnaXN0ZXJzIGFuZCBmcmVl cyBhIGRybV9icmlkZ2UKPiArICogY3JlYXRlZCBieSBkcm1fcGFuZWxfYnJpZGdlX2FkZCgpLgo+ ICsgKgo+ICsgKiBAYnJpZGdlOiBUaGUgZHJtX2JyaWRnZSBiZWluZyBmcmVlZC4KPiArICovCj4g K3ZvaWQgZHJtX3BhbmVsX2JyaWRnZV9yZW1vdmUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkK PiArewo+ICsJc3RydWN0IHBhbmVsX2JyaWRnZSAqcGFuZWxfYnJpZGdlID0gZHJtX2JyaWRnZV90 b19wYW5lbF9icmlkZ2UoYnJpZGdlKTsKPiArCj4gKwlkcm1fYnJpZGdlX3JlbW92ZShicmlkZ2Up Owo+ICsJZGV2bV9rZnJlZShwYW5lbF9icmlkZ2UtPnBhbmVsLT5kZXYsIGJyaWRnZSk7Cj4gK30K PiArRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxfYnJpZGdlX3JlbW92ZSk7Cj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCBiL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+IGlu ZGV4IGZkZDgyZmNiZjE2OC4uYmFkMjE3OGVhM2UwIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJt L2RybV9icmlkZ2UuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+IEBAIC0yOSw2 ICsyOSw3IEBACj4gICNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+Cj4gIAo+ICBzdHJ1Y3QgZHJt X2JyaWRnZTsKPiArc3RydWN0IGRybV9wYW5lbDsKPiAgCj4gIC8qKgo+ICAgKiBzdHJ1Y3QgZHJt X2JyaWRnZV9mdW5jcyAtIGRybV9icmlkZ2UgY29udHJvbCBmdW5jdGlvbnMKPiBAQCAtMjIxLDQg KzIyMiwxMCBAQCB2b2lkIGRybV9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSwKPiAgdm9pZCBkcm1fYnJpZGdlX3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSk7Cj4gIHZvaWQgZHJtX2JyaWRnZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSk7Cj4gIAo+ICsjaWZkZWYgQ09ORklHX0RSTV9QQU5FTAo+ICtzdHJ1Y3QgZHJtX2JyaWRnZSAq ZHJtX3BhbmVsX2JyaWRnZV9hZGQoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCj4gKwkJCQkJdTMy IGNvbm5lY3Rvcl90eXBlKTsKPiArdm9pZCBkcm1fcGFuZWxfYnJpZGdlX3JlbW92ZShzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiArI2VuZGlmCj4gKwo+ICAjZW5kaWYKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=