From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v3 04/21] drm/bridge: Rename bridge helpers targeting a bridge chain Date: Sun, 24 Nov 2019 12:28:47 +0200 Message-ID: <20191124102847.GE4727@pendragon.ideasonboard.com> References: <20191023154512.9762-1-boris.brezillon@collabora.com> <20191023154512.9762-5-boris.brezillon@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 870C689D63 for ; Sun, 24 Nov 2019 10:28:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191023154512.9762-5-boris.brezillon@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Brezillon Cc: Mark Rutland , Neil Armstrong , dri-devel@lists.freedesktop.org, Thierry Reding , kernel@collabora.com, Sam Ravnborg , Nikita Yushchenko , Andrey Smirnov , Kyungmin Park , Chris Healy , devicetree@vger.kernel.org, Jonas Karlman , Rob Herring , Jernej Skrabec , Seung-Woo Kim List-Id: dri-devel@lists.freedesktop.org SGkgQm9yaXMsCgpUaGFuayB5b3UgZm9yIHRoZSBwYXRjaC4KCk9uIFdlZCwgT2N0IDIzLCAyMDE5 IGF0IDA1OjQ0OjU1UE0gKzAyMDAsIEJvcmlzIEJyZXppbGxvbiB3cm90ZToKPiBDaGFuZ2UgdGhl IHByZWZpeCBvZiBicmlkZ2UgaGVscGVycyB0YXJnZXRpbmcgYSBicmlkZ2UgY2hhaW4gZnJvbQo+ IGRybV9icmlkZ2VfIHRvIGRybV9icmlkZ2VfY2hhaW5fIHRvIGJldHRlciByZWZsZWN0IHRoZSBm YWN0IHRoYXQKPiB0aGUgb3BlcmF0aW9uIHdpbGwgaGFwcGVuIG9uIGFsbCBlbGVtZW50cyBvZiBj aGFpbiwgc3RhcnRpbmcgYXQgdGhlCj4gYnJpZGdlIHBhc3NlZCBpbiBhcmd1bWVudC4KPiAKPiBT aWduZWQtb2ZmLWJ5OiBCb3JpcyBCcmV6aWxsb24gPGJvcmlzLmJyZXppbGxvbkBjb2xsYWJvcmEu Y29tPgoKSSBoYXZlbid0IHJldmlld2VkIHRoaXMgaW4gZGV0YWlscyBidXQgdGhlIHJlbmFtaW5n IGxvb2tzIHNlbnNpYmxlLCBzbwoKQWNrZWQtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQu cGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KCj4gLS0tCj4gQ2hhbmdlcyBpbiB2MzoKPiAqIE5v bmUKPiAKPiBDaGFuZ2VzIGluIHYyOgo+ICogUGFzcyB0ZSBicmlkZ2UsIG5vdCB0aGUgZW5jb2Rl ciwgc28gd2UgY2FuIGxhdGVyIGFjdCBvbiBhIHN1Yi1jaGFpbgo+ICAgaW5zdGVhZCBvZiB0aGUg d2hvbGUgY2hhaW4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMg fCAgMTkgKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYyAgICAgICAgfCAxMjUg KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2Jl X2hlbHBlci5jICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWku YyB8ICAgNCArLQo+ICBpbmNsdWRlL2RybS9kcm1fYnJpZGdlLmggICAgICAgICAgICB8ICA2NCAr KysrKysrLS0tLS0tLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCAxMDIg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCA1 ODcwNTI3NTFiNDguLmNmNjc4YmU1OGZhNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCj4gQEAgLTQzNSw4ICs0MzUsOSBAQCBtb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKPiAgCQllbmNvZGVyID0gbmV3X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2Rl cjsKPiAgCQlmdW5jcyA9IGVuY29kZXItPmhlbHBlcl9wcml2YXRlOwo+ICAKPiAtCQlyZXQgPSBk cm1fYnJpZGdlX21vZGVfZml4dXAoZW5jb2Rlci0+YnJpZGdlLCAmbmV3X2NydGNfc3RhdGUtPm1v ZGUsCj4gLQkJCQkmbmV3X2NydGNfc3RhdGUtPmFkanVzdGVkX21vZGUpOwo+ICsJCXJldCA9IGRy bV9icmlkZ2VfY2hhaW5fbW9kZV9maXh1cChlbmNvZGVyLT5icmlkZ2UsCj4gKwkJCQkJJm5ld19j cnRjX3N0YXRlLT5tb2RlLAo+ICsJCQkJCSZuZXdfY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZSk7 Cj4gIAkJaWYgKCFyZXQpIHsKPiAgCQkJRFJNX0RFQlVHX0FUT01JQygiQnJpZGdlIGZpeHVwIGZh aWxlZFxuIik7Cj4gIAkJCXJldHVybiAtRUlOVkFMOwo+IEBAIC01MDEsNyArNTAyLDcgQEAgc3Rh dGljIGVudW0gZHJtX21vZGVfc3RhdHVzIG1vZGVfdmFsaWRfcGF0aChzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAo+ICAJCXJldHVybiByZXQ7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZHJt X2JyaWRnZV9tb2RlX3ZhbGlkKGVuY29kZXItPmJyaWRnZSwgbW9kZSk7Cj4gKwlyZXQgPSBkcm1f YnJpZGdlX2NoYWluX21vZGVfdmFsaWQoZW5jb2Rlci0+YnJpZGdlLCBtb2RlKTsKPiAgCWlmIChy ZXQgIT0gTU9ERV9PSykgewo+ICAJCURSTV9ERUJVR19BVE9NSUMoIltCUklER0VdIG1vZGVfdmFs aWQoKSBmYWlsZWRcbiIpOwo+ICAJCXJldHVybiByZXQ7Cj4gQEAgLTEwMjAsNyArMTAyMSw3IEBA IGRpc2FibGVfb3V0cHV0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqb2xkX3N0YXRlKQo+ICAJCSAqIEVhY2ggZW5jb2RlciBoYXMgYXQgbW9zdCBvbmUg Y29ubmVjdG9yIChzaW5jZSB3ZSBhbHdheXMgc3RlYWwKPiAgCQkgKiBpdCBhd2F5KSwgc28gd2Ug d29uJ3QgY2FsbCBkaXNhYmxlIGhvb2tzIHR3aWNlLgo+ICAJCSAqLwo+IC0JCWRybV9hdG9taWNf YnJpZGdlX2Rpc2FibGUoZW5jb2Rlci0+YnJpZGdlLCBvbGRfc3RhdGUpOwo+ICsJCWRybV9hdG9t aWNfYnJpZGdlX2NoYWluX2Rpc2FibGUoZW5jb2Rlci0+YnJpZGdlLCBvbGRfc3RhdGUpOwo+ICAK PiAgCQkvKiBSaWdodCBmdW5jdGlvbiBkZXBlbmRzIHVwb24gdGFyZ2V0IHN0YXRlLiAqLwo+ICAJ CWlmIChmdW5jcykgewo+IEBAIC0xMDM0LDcgKzEwMzUsOCBAQCBkaXNhYmxlX291dHB1dHMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkK PiAgCQkJCWZ1bmNzLT5kcG1zKGVuY29kZXIsIERSTV9NT0RFX0RQTVNfT0ZGKTsKPiAgCQl9Cj4g IAo+IC0JCWRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlzYWJsZShlbmNvZGVyLT5icmlkZ2UsIG9s ZF9zdGF0ZSk7Cj4gKwkJZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcG9zdF9kaXNhYmxlKGVuY29k ZXItPmJyaWRnZSwKPiArCQkJCQkJICAgICBvbGRfc3RhdGUpOwo+ICAJfQo+ICAKPiAgCWZvcl9l YWNoX29sZG5ld19jcnRjX2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUs IG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4gQEAgLTEyMTUsNyArMTIxNyw4IEBAIGNydGNfc2V0X21v ZGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9z dGF0ZSkKPiAgCQkJZnVuY3MtPm1vZGVfc2V0KGVuY29kZXIsIG1vZGUsIGFkanVzdGVkX21vZGUp Owo+ICAJCX0KPiAgCj4gLQkJZHJtX2JyaWRnZV9tb2RlX3NldChlbmNvZGVyLT5icmlkZ2UsIG1v ZGUsIGFkanVzdGVkX21vZGUpOwo+ICsJCWRybV9icmlkZ2VfY2hhaW5fbW9kZV9zZXQoZW5jb2Rl ci0+YnJpZGdlLCBtb2RlLAo+ICsJCQkJCSAgYWRqdXN0ZWRfbW9kZSk7Cj4gIAl9Cj4gIH0KPiAg Cj4gQEAgLTEzMzIsNyArMTMzNSw3IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21v ZGVzZXRfZW5hYmxlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCSAqIEVhY2ggZW5jb2Rl ciBoYXMgYXQgbW9zdCBvbmUgY29ubmVjdG9yIChzaW5jZSB3ZSBhbHdheXMgc3RlYWwKPiAgCQkg KiBpdCBhd2F5KSwgc28gd2Ugd29uJ3QgY2FsbCBlbmFibGUgaG9va3MgdHdpY2UuCj4gIAkJICov Cj4gLQkJZHJtX2F0b21pY19icmlkZ2VfcHJlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UsIG9sZF9z dGF0ZSk7Cj4gKwkJZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZShlbmNvZGVyLT5i cmlkZ2UsIG9sZF9zdGF0ZSk7Cj4gIAo+ICAJCWlmIChmdW5jcykgewo+ICAJCQlpZiAoZnVuY3Mt PmF0b21pY19lbmFibGUpCj4gQEAgLTEzNDMsNyArMTM0Niw3IEBAIHZvaWQgZHJtX2F0b21pY19o ZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJ CQkJZnVuY3MtPmNvbW1pdChlbmNvZGVyKTsKPiAgCQl9Cj4gIAo+IC0JCWRybV9hdG9taWNfYnJp ZGdlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UsIG9sZF9zdGF0ZSk7Cj4gKwkJZHJtX2F0b21pY19i cmlkZ2VfY2hhaW5fZW5hYmxlKGVuY29kZXItPmJyaWRnZSwgb2xkX3N0YXRlKTsKPiAgCX0KPiAg Cj4gIAlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfd3JpdGViYWNrcyhkZXYsIG9sZF9zdGF0ZSk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2JyaWRnZS5jCj4gaW5kZXggY2JhNTM3Yzk5ZTQzLi41NGM4NzQ0OTNjNTcgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYnJpZGdlLmMKPiBAQCAtMTcyLDggKzE3Miw4IEBAIHZvaWQgZHJtX2JyaWRn ZV9kZXRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgICovCj4gIAo+ICAvKioKPiAt ICogZHJtX2JyaWRnZV9tb2RlX2ZpeHVwIC0gZml4dXAgcHJvcG9zZWQgbW9kZSBmb3IgYWxsIGJy aWRnZXMgaW4gdGhlCj4gLSAqCQkJICAgZW5jb2RlciBjaGFpbgo+ICsgKiBkcm1fYnJpZGdlX2No YWluX21vZGVfZml4dXAgLSBmaXh1cCBwcm9wb3NlZCBtb2RlIGZvciBhbGwgYnJpZGdlcyBpbiB0 aGUKPiArICoJCQkJIGVuY29kZXIgY2hhaW4KPiAgICogQGJyaWRnZTogYnJpZGdlIGNvbnRyb2wg c3RydWN0dXJlCj4gICAqIEBtb2RlOiBkZXNpcmVkIG1vZGUgdG8gYmUgc2V0IGZvciB0aGUgYnJp ZGdlCj4gICAqIEBhZGp1c3RlZF9tb2RlOiB1cGRhdGVkIG1vZGUgdGhhdCB3b3JrcyBmb3IgdGhp cyBicmlkZ2UKPiBAQCAtMTg2LDkgKzE4Niw5IEBAIHZvaWQgZHJtX2JyaWRnZV9kZXRhY2goc3Ry dWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgICogUkVUVVJOUzoKPiAgICogdHJ1ZSBvbiBzdWNj ZXNzLCBmYWxzZSBvbiBmYWlsdXJlCj4gICAqLwo+IC1ib29sIGRybV9icmlkZ2VfbW9kZV9maXh1 cChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+IC0JCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSwKPiAtCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUpCj4gK2Jvb2wgZHJtX2JyaWRnZV9jaGFpbl9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UsCj4gKwkJCQkgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4g KwkJCQkgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gIHsKPiAgCWJv b2wgcmV0ID0gdHJ1ZTsKPiAgCj4gQEAgLTE5OCwxNSArMTk4LDE2IEBAIGJvb2wgZHJtX2JyaWRn ZV9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAlpZiAoYnJpZGdlLT5m dW5jcy0+bW9kZV9maXh1cCkKPiAgCQlyZXQgPSBicmlkZ2UtPmZ1bmNzLT5tb2RlX2ZpeHVwKGJy aWRnZSwgbW9kZSwgYWRqdXN0ZWRfbW9kZSk7Cj4gIAo+IC0JcmV0ID0gcmV0ICYmIGRybV9icmlk Z2VfbW9kZV9maXh1cChicmlkZ2UtPm5leHQsIG1vZGUsIGFkanVzdGVkX21vZGUpOwo+ICsJcmV0 ID0gcmV0ICYmIGRybV9icmlkZ2VfY2hhaW5fbW9kZV9maXh1cChicmlkZ2UtPm5leHQsIG1vZGUs Cj4gKwkJCQkJCSBhZGp1c3RlZF9tb2RlKTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gLUVY UE9SVF9TWU1CT0woZHJtX2JyaWRnZV9tb2RlX2ZpeHVwKTsKPiArRVhQT1JUX1NZTUJPTChkcm1f YnJpZGdlX2NoYWluX21vZGVfZml4dXApOwo+ICAKPiAgLyoqCj4gLSAqIGRybV9icmlkZ2VfbW9k ZV92YWxpZCAtIHZhbGlkYXRlIHRoZSBtb2RlIGFnYWluc3QgYWxsIGJyaWRnZXMgaW4gdGhlCj4g LSAqIAkJCSAgIGVuY29kZXIgY2hhaW4uCj4gKyAqIGRybV9icmlkZ2VfY2hhaW5fbW9kZV92YWxp ZCAtIHZhbGlkYXRlIHRoZSBtb2RlIGFnYWluc3QgYWxsIGJyaWRnZXMgaW4gdGhlCj4gKyAqCQkJ CSBlbmNvZGVyIGNoYWluLgo+ICAgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUK PiAgICogQG1vZGU6IGRlc2lyZWQgbW9kZSB0byBiZSB2YWxpZGF0ZWQKPiAgICoKPiBAQCAtMjE5 LDggKzIyMCw5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9tb2RlX2ZpeHVwKTsKPiAgICog UkVUVVJOUzoKPiAgICogTU9ERV9PSyBvbiBzdWNjZXNzLCBkcm1fbW9kZV9zdGF0dXMgRW51bSBl cnJvciBjb2RlIG9uIGZhaWx1cmUKPiAgICovCj4gLWVudW0gZHJtX21vZGVfc3RhdHVzIGRybV9i cmlkZ2VfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+IC0JCQkJCSAgIGNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICtlbnVtIGRybV9tb2RlX3N0YXR1 cwo+ICtkcm1fYnJpZGdlX2NoYWluX21vZGVfdmFsaWQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSwKPiArCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICB7Cj4g IAllbnVtIGRybV9tb2RlX3N0YXR1cyByZXQgPSBNT0RFX09LOwo+ICAKPiBAQCAtMjMzLDEyICsy MzUsMTIgQEAgZW51bSBkcm1fbW9kZV9zdGF0dXMgZHJtX2JyaWRnZV9tb2RlX3ZhbGlkKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAlpZiAocmV0ICE9IE1PREVfT0spCj4gIAkJcmV0dXJu IHJldDsKPiAgCj4gLQlyZXR1cm4gZHJtX2JyaWRnZV9tb2RlX3ZhbGlkKGJyaWRnZS0+bmV4dCwg bW9kZSk7Cj4gKwlyZXR1cm4gZHJtX2JyaWRnZV9jaGFpbl9tb2RlX3ZhbGlkKGJyaWRnZS0+bmV4 dCwgbW9kZSk7Cj4gIH0KPiAtRVhQT1JUX1NZTUJPTChkcm1fYnJpZGdlX21vZGVfdmFsaWQpOwo+ ICtFWFBPUlRfU1lNQk9MKGRybV9icmlkZ2VfY2hhaW5fbW9kZV92YWxpZCk7Cj4gIAo+ICAvKioK PiAtICogZHJtX2JyaWRnZV9kaXNhYmxlIC0gZGlzYWJsZXMgYWxsIGJyaWRnZXMgaW4gdGhlIGVu Y29kZXIgY2hhaW4KPiArICogZHJtX2JyaWRnZV9jaGFpbl9kaXNhYmxlIC0gZGlzYWJsZXMgYWxs IGJyaWRnZXMgaW4gdGhlIGVuY29kZXIgY2hhaW4KPiAgICogQGJyaWRnZTogYnJpZGdlIGNvbnRy b2wgc3RydWN0dXJlCj4gICAqCj4gICAqIENhbGxzICZkcm1fYnJpZGdlX2Z1bmNzLmRpc2FibGUg b3AgZm9yIGFsbCB0aGUgYnJpZGdlcyBpbiB0aGUgZW5jb2Rlcgo+IEBAIC0yNDcsMjAgKzI0OSwy MSBAQCBFWFBPUlRfU1lNQk9MKGRybV9icmlkZ2VfbW9kZV92YWxpZCk7Cj4gICAqCj4gICAqIE5v dGU6IHRoZSBicmlkZ2UgcGFzc2VkIHNob3VsZCBiZSB0aGUgb25lIGNsb3Nlc3QgdG8gdGhlIGVu Y29kZXIKPiAgICovCj4gLXZvaWQgZHJtX2JyaWRnZV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UpCj4gK3ZvaWQgZHJtX2JyaWRnZV9jaGFpbl9kaXNhYmxlKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UpCj4gIHsKPiAgCWlmICghYnJpZGdlKQo+ICAJCXJldHVybjsKPiAgCj4gLQlk cm1fYnJpZGdlX2Rpc2FibGUoYnJpZGdlLT5uZXh0KTsKPiArCWRybV9icmlkZ2VfY2hhaW5fZGlz YWJsZShicmlkZ2UtPm5leHQpOwo+ICAKPiAgCWlmIChicmlkZ2UtPmZ1bmNzLT5kaXNhYmxlKQo+ ICAJCWJyaWRnZS0+ZnVuY3MtPmRpc2FibGUoYnJpZGdlKTsKPiAgfQo+IC1FWFBPUlRfU1lNQk9M KGRybV9icmlkZ2VfZGlzYWJsZSk7Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9jaGFpbl9k aXNhYmxlKTsKPiAgCj4gIC8qKgo+IC0gKiBkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZSAtIGNsZWFu cyB1cCBhZnRlciBkaXNhYmxpbmcgYWxsIGJyaWRnZXMgaW4gdGhlIGVuY29kZXIgY2hhaW4KPiAr ICogZHJtX2JyaWRnZV9jaGFpbl9wb3N0X2Rpc2FibGUgLSBjbGVhbnMgdXAgYWZ0ZXIgZGlzYWJs aW5nIGFsbCBicmlkZ2VzIGluIHRoZQo+ICsgKgkJCQkgICBlbmNvZGVyIGNoYWluCj4gICAqIEBi cmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVjdHVyZQo+ICAgKgo+ICAgKiBDYWxscyAmZHJtX2Jy aWRnZV9mdW5jcy5wb3N0X2Rpc2FibGUgb3AgZm9yIGFsbCB0aGUgYnJpZGdlcyBpbiB0aGUKPiBA QCAtMjY5LDcgKzI3Miw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9kaXNhYmxlKTsKPiAg ICoKPiAgICogTm90ZTogdGhlIGJyaWRnZSBwYXNzZWQgc2hvdWxkIGJlIHRoZSBvbmUgY2xvc2Vz dCB0byB0aGUgZW5jb2Rlcgo+ICAgKi8KPiAtdm9pZCBkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt2b2lkIGRybV9icmlkZ2VfY2hhaW5fcG9zdF9k aXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIHsKPiAgCWlmICghYnJpZGdlKQo+ ICAJCXJldHVybjsKPiBAQCAtMjc3LDI1ICsyODAsMjUgQEAgdm9pZCBkcm1fYnJpZGdlX3Bvc3Rf ZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICAJaWYgKGJyaWRnZS0+ZnVuY3Mt PnBvc3RfZGlzYWJsZSkKPiAgCQlicmlkZ2UtPmZ1bmNzLT5wb3N0X2Rpc2FibGUoYnJpZGdlKTsK PiAgCj4gLQlkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShicmlkZ2UtPm5leHQpOwo+ICsJZHJtX2Jy aWRnZV9jaGFpbl9wb3N0X2Rpc2FibGUoYnJpZGdlLT5uZXh0KTsKPiAgfQo+IC1FWFBPUlRfU1lN Qk9MKGRybV9icmlkZ2VfcG9zdF9kaXNhYmxlKTsKPiArRVhQT1JUX1NZTUJPTChkcm1fYnJpZGdl X2NoYWluX3Bvc3RfZGlzYWJsZSk7Cj4gIAo+ICAvKioKPiAtICogZHJtX2JyaWRnZV9tb2RlX3Nl dCAtIHNldCBwcm9wb3NlZCBtb2RlIGZvciBhbGwgYnJpZGdlcyBpbiB0aGUKPiAtICoJCQkgZW5j b2RlciBjaGFpbgo+ICsgKiBkcm1fYnJpZGdlX2NoYWluX21vZGVfc2V0IC0gc2V0IHByb3Bvc2Vk IG1vZGUgZm9yIGFsbCBicmlkZ2VzIGluIHRoZQo+ICsgKgkJCSAgICAgICBlbmNvZGVyIGNoYWlu Cj4gICAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVjdHVyZQo+IC0gKiBAbW9kZTogZGVz aXJlZCBtb2RlIHRvIGJlIHNldCBmb3IgdGhlIGJyaWRnZQo+IC0gKiBAYWRqdXN0ZWRfbW9kZTog dXBkYXRlZCBtb2RlIHRoYXQgd29ya3MgZm9yIHRoaXMgYnJpZGdlCj4gKyAqIEBtb2RlOiBkZXNp cmVkIG1vZGUgdG8gYmUgc2V0IGZvciB0aGUgZW5jb2RlciBjaGFpbgo+ICsgKiBAYWRqdXN0ZWRf bW9kZTogdXBkYXRlZCBtb2RlIHRoYXQgd29ya3MgZm9yIHRoaXMgZW5jb2RlciBjaGFpbgo+ICAg Kgo+ICAgKiBDYWxscyAmZHJtX2JyaWRnZV9mdW5jcy5tb2RlX3NldCBvcCBmb3IgYWxsIHRoZSBi cmlkZ2VzIGluIHRoZQo+ICAgKiBlbmNvZGVyIGNoYWluLCBzdGFydGluZyBmcm9tIHRoZSBmaXJz dCBicmlkZ2UgdG8gdGhlIGxhc3QuCj4gICAqCj4gICAqIE5vdGU6IHRoZSBicmlkZ2UgcGFzc2Vk IHNob3VsZCBiZSB0aGUgb25lIGNsb3Nlc3QgdG8gdGhlIGVuY29kZXIKPiAgICovCj4gLXZvaWQg ZHJtX2JyaWRnZV9tb2RlX3NldChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+IC0JCQkgY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gLQkJCSBjb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiArdm9pZCBkcm1fYnJpZGdlX2NoYWluX21v ZGVfc2V0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCSAgICAgICBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiArCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICB7Cj4gIAlpZiAoIWJyaWRnZSkKPiAgCQly ZXR1cm47Cj4gQEAgLTMwMywxMyArMzA2LDEzIEBAIHZvaWQgZHJtX2JyaWRnZV9tb2RlX3NldChz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICAJaWYgKGJyaWRnZS0+ZnVuY3MtPm1vZGVfc2V0 KQo+ICAJCWJyaWRnZS0+ZnVuY3MtPm1vZGVfc2V0KGJyaWRnZSwgbW9kZSwgYWRqdXN0ZWRfbW9k ZSk7Cj4gIAo+IC0JZHJtX2JyaWRnZV9tb2RlX3NldChicmlkZ2UtPm5leHQsIG1vZGUsIGFkanVz dGVkX21vZGUpOwo+ICsJZHJtX2JyaWRnZV9jaGFpbl9tb2RlX3NldChicmlkZ2UtPm5leHQsIG1v ZGUsIGFkanVzdGVkX21vZGUpOwo+ICB9Cj4gLUVYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9tb2Rl X3NldCk7Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9jaGFpbl9tb2RlX3NldCk7Cj4gIAo+ ICAvKioKPiAtICogZHJtX2JyaWRnZV9wcmVfZW5hYmxlIC0gcHJlcGFyZXMgZm9yIGVuYWJsaW5n IGFsbAo+IC0gKgkJCSAgIGJyaWRnZXMgaW4gdGhlIGVuY29kZXIgY2hhaW4KPiArICogZHJtX2Jy aWRnZV9jaGFpbl9wcmVfZW5hYmxlIC0gcHJlcGFyZXMgZm9yIGVuYWJsaW5nIGFsbCBicmlkZ2Vz IGluIHRoZQo+ICsgKgkJCQkgZW5jb2RlciBjaGFpbgo+ICAgKiBAYnJpZGdlOiBicmlkZ2UgY29u dHJvbCBzdHJ1Y3R1cmUKPiAgICoKPiAgICogQ2FsbHMgJmRybV9icmlkZ2VfZnVuY3MucHJlX2Vu YWJsZSBvcCBmb3IgYWxsIHRoZSBicmlkZ2VzIGluIHRoZSBlbmNvZGVyCj4gQEAgLTMxOCwyMCAr MzIxLDIwIEBAIEVYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9tb2RlX3NldCk7Cj4gICAqCj4gICAq IE5vdGU6IHRoZSBicmlkZ2UgcGFzc2VkIHNob3VsZCBiZSB0aGUgb25lIGNsb3Nlc3QgdG8gdGhl IGVuY29kZXIKPiAgICovCj4gLXZvaWQgZHJtX2JyaWRnZV9wcmVfZW5hYmxlKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpCj4gK3ZvaWQgZHJtX2JyaWRnZV9jaGFpbl9wcmVfZW5hYmxlKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIHsKPiAgCWlmICghYnJpZGdlKQo+ICAJCXJldHVybjsK PiAgCj4gLQlkcm1fYnJpZGdlX3ByZV9lbmFibGUoYnJpZGdlLT5uZXh0KTsKPiArCWRybV9icmlk Z2VfY2hhaW5fcHJlX2VuYWJsZShicmlkZ2UtPm5leHQpOwo+ICAKPiAgCWlmIChicmlkZ2UtPmZ1 bmNzLT5wcmVfZW5hYmxlKQo+ICAJCWJyaWRnZS0+ZnVuY3MtPnByZV9lbmFibGUoYnJpZGdlKTsK PiAgfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9icmlkZ2VfcHJlX2VuYWJsZSk7Cj4gK0VYUE9SVF9T WU1CT0woZHJtX2JyaWRnZV9jaGFpbl9wcmVfZW5hYmxlKTsKPiAgCj4gIC8qKgo+IC0gKiBkcm1f YnJpZGdlX2VuYWJsZSAtIGVuYWJsZXMgYWxsIGJyaWRnZXMgaW4gdGhlIGVuY29kZXIgY2hhaW4K PiArICogZHJtX2JyaWRnZV9jaGFpbl9lbmFibGUgLSBlbmFibGVzIGFsbCBicmlkZ2VzIGluIHRo ZSBlbmNvZGVyIGNoYWluCj4gICAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVjdHVyZQo+ ICAgKgo+ICAgKiBDYWxscyAmZHJtX2JyaWRnZV9mdW5jcy5lbmFibGUgb3AgZm9yIGFsbCB0aGUg YnJpZGdlcyBpbiB0aGUgZW5jb2Rlcgo+IEBAIC0zNDAsNyArMzQzLDcgQEAgRVhQT1JUX1NZTUJP TChkcm1fYnJpZGdlX3ByZV9lbmFibGUpOwo+ICAgKgo+ICAgKiBOb3RlIHRoYXQgdGhlIGJyaWRn ZSBwYXNzZWQgc2hvdWxkIGJlIHRoZSBvbmUgY2xvc2VzdCB0byB0aGUgZW5jb2Rlcgo+ICAgKi8K PiAtdm9pZCBkcm1fYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt2 b2lkIGRybV9icmlkZ2VfY2hhaW5fZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4g IHsKPiAgCWlmICghYnJpZGdlKQo+ICAJCXJldHVybjsKPiBAQCAtMzQ4LDEyICszNTEsMTIgQEAg dm9pZCBkcm1fYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICAJaWYg KGJyaWRnZS0+ZnVuY3MtPmVuYWJsZSkKPiAgCQlicmlkZ2UtPmZ1bmNzLT5lbmFibGUoYnJpZGdl KTsKPiAgCj4gLQlkcm1fYnJpZGdlX2VuYWJsZShicmlkZ2UtPm5leHQpOwo+ICsJZHJtX2JyaWRn ZV9jaGFpbl9lbmFibGUoYnJpZGdlLT5uZXh0KTsKPiAgfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9i cmlkZ2VfZW5hYmxlKTsKPiArRVhQT1JUX1NZTUJPTChkcm1fYnJpZGdlX2NoYWluX2VuYWJsZSk7 Cj4gIAo+ICAvKioKPiAtICogZHJtX2F0b21pY19icmlkZ2VfZGlzYWJsZSAtIGRpc2FibGVzIGFs bCBicmlkZ2VzIGluIHRoZSBlbmNvZGVyIGNoYWluCj4gKyAqIGRybV9hdG9taWNfYnJpZGdlX2No YWluX2Rpc2FibGUgLSBkaXNhYmxlcyBhbGwgYnJpZGdlcyBpbiB0aGUgZW5jb2RlciBjaGFpbgo+ ICAgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKPiAgICogQHN0YXRlOiBhdG9t aWMgc3RhdGUgYmVpbmcgY29tbWl0dGVkCj4gICAqCj4gQEAgLTM2NCwyNCArMzY3LDI0IEBAIEVY UE9SVF9TWU1CT0woZHJtX2JyaWRnZV9lbmFibGUpOwo+ICAgKgo+ICAgKiBOb3RlOiB0aGUgYnJp ZGdlIHBhc3NlZCBzaG91bGQgYmUgdGhlIG9uZSBjbG9zZXN0IHRvIHRoZSBlbmNvZGVyCj4gICAq Lwo+IC12b2lkIGRybV9hdG9taWNfYnJpZGdlX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSwKPiAtCQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArdm9p ZCBkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UsCj4gKwkJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJ aWYgKCFicmlkZ2UpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWRybV9hdG9taWNfYnJpZGdlX2Rpc2Fi bGUoYnJpZGdlLT5uZXh0LCBzdGF0ZSk7Cj4gKwlkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9kaXNh YmxlKGJyaWRnZS0+bmV4dCwgc3RhdGUpOwo+ICAKPiAgCWlmIChicmlkZ2UtPmZ1bmNzLT5hdG9t aWNfZGlzYWJsZSkKPiAgCQlicmlkZ2UtPmZ1bmNzLT5hdG9taWNfZGlzYWJsZShicmlkZ2UsIHN0 YXRlKTsKPiAgCWVsc2UgaWYgKGJyaWRnZS0+ZnVuY3MtPmRpc2FibGUpCj4gIAkJYnJpZGdlLT5m dW5jcy0+ZGlzYWJsZShicmlkZ2UpOwo+ICB9Cj4gLUVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19i cmlkZ2VfZGlzYWJsZSk7Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfY2hhaW5f ZGlzYWJsZSk7Cj4gIAo+ICAvKioKPiAtICogZHJtX2F0b21pY19icmlkZ2VfcG9zdF9kaXNhYmxl IC0gY2xlYW5zIHVwIGFmdGVyIGRpc2FibGluZyBhbGwgYnJpZGdlcyBpbiB0aGUKPiAtICoJCQkJ ICAgIGVuY29kZXIgY2hhaW4KPiArICogZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcG9zdF9kaXNh YmxlIC0gY2xlYW5zIHVwIGFmdGVyIGRpc2FibGluZyBhbGwgYnJpZGdlcwo+ICsgKgkJCQkJICBp biB0aGUgZW5jb2RlciBjaGFpbgo+ICAgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1 cmUKPiAgICogQHN0YXRlOiBhdG9taWMgc3RhdGUgYmVpbmcgY29tbWl0dGVkCj4gICAqCj4gQEAg LTM5Miw4ICszOTUsOCBAQCBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfYnJpZGdlX2Rpc2FibGUp Owo+ICAgKgo+ICAgKiBOb3RlOiB0aGUgYnJpZGdlIHBhc3NlZCBzaG91bGQgYmUgdGhlIG9uZSBj bG9zZXN0IHRvIHRoZSBlbmNvZGVyCj4gICAqLwo+IC12b2lkIGRybV9hdG9taWNfYnJpZGdlX3Bv c3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+IC0JCQkJICAgIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9w b3N0X2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCQkgIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJaWYgKCFicmlkZ2UpCj4gIAkJcmV0dXJu Owo+IEBAIC00MDMsMTMgKzQwNiwxMyBAQCB2b2lkIGRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlz YWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICAJZWxzZSBpZiAoYnJpZGdlLT5mdW5j cy0+cG9zdF9kaXNhYmxlKQo+ICAJCWJyaWRnZS0+ZnVuY3MtPnBvc3RfZGlzYWJsZShicmlkZ2Up Owo+ICAKPiAtCWRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlzYWJsZShicmlkZ2UtPm5leHQsIHN0 YXRlKTsKPiArCWRybV9hdG9taWNfYnJpZGdlX2NoYWluX3Bvc3RfZGlzYWJsZShicmlkZ2UtPm5l eHQsIHN0YXRlKTsKPiAgfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfYnJpZGdlX3Bvc3Rf ZGlzYWJsZSk7Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcG9zdF9k aXNhYmxlKTsKPiAgCj4gIC8qKgo+IC0gKiBkcm1fYXRvbWljX2JyaWRnZV9wcmVfZW5hYmxlIC0g cHJlcGFyZXMgZm9yIGVuYWJsaW5nIGFsbCBicmlkZ2VzIGluIHRoZQo+IC0gKgkJCQkgIGVuY29k ZXIgY2hhaW4KPiArICogZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZSAtIHByZXBh cmVzIGZvciBlbmFibGluZyBhbGwgYnJpZGdlcyBpbgo+ICsgKgkJCQkJdGhlIGVuY29kZXIgY2hh aW4KPiAgICogQGJyaWRnZTogYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCj4gICAqIEBzdGF0ZTog YXRvbWljIHN0YXRlIGJlaW5nIGNvbW1pdHRlZAo+ICAgKgo+IEBAIC00MjAsMjMgKzQyMywyMyBA QCBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlzYWJsZSk7Cj4gICAqCj4g ICAqIE5vdGU6IHRoZSBicmlkZ2UgcGFzc2VkIHNob3VsZCBiZSB0aGUgb25lIGNsb3Nlc3QgdG8g dGhlIGVuY29kZXIKPiAgICovCj4gLXZvaWQgZHJtX2F0b21pY19icmlkZ2VfcHJlX2VuYWJsZShz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+IC0JCQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCj4gK3ZvaWQgZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZShzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKPiAgewo+ICAJaWYgKCFicmlkZ2UpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWRybV9hdG9t aWNfYnJpZGdlX3ByZV9lbmFibGUoYnJpZGdlLT5uZXh0LCBzdGF0ZSk7Cj4gKwlkcm1fYXRvbWlj X2JyaWRnZV9jaGFpbl9wcmVfZW5hYmxlKGJyaWRnZS0+bmV4dCwgc3RhdGUpOwo+ICAKPiAgCWlm IChicmlkZ2UtPmZ1bmNzLT5hdG9taWNfcHJlX2VuYWJsZSkKPiAgCQlicmlkZ2UtPmZ1bmNzLT5h dG9taWNfcHJlX2VuYWJsZShicmlkZ2UsIHN0YXRlKTsKPiAgCWVsc2UgaWYgKGJyaWRnZS0+ZnVu Y3MtPnByZV9lbmFibGUpCj4gIAkJYnJpZGdlLT5mdW5jcy0+cHJlX2VuYWJsZShicmlkZ2UpOwo+ ICB9Cj4gLUVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfcHJlX2VuYWJsZSk7Cj4gK0VY UE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZSk7Cj4gIAo+ICAv KioKPiAtICogZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlIC0gZW5hYmxlcyBhbGwgYnJpZGdlcyBp biB0aGUgZW5jb2RlciBjaGFpbgo+ICsgKiBkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9lbmFibGUg LSBlbmFibGVzIGFsbCBicmlkZ2VzIGluIHRoZSBlbmNvZGVyIGNoYWluCj4gICAqIEBicmlkZ2U6 IGJyaWRnZSBjb250cm9sIHN0cnVjdHVyZQo+ICAgKiBAc3RhdGU6IGF0b21pYyBzdGF0ZSBiZWlu ZyBjb21taXR0ZWQKPiAgICoKPiBAQCAtNDQ3LDggKzQ1MCw4IEBAIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19icmlkZ2VfcHJlX2VuYWJsZSk7Cj4gICAqCj4gICAqIE5vdGU6IHRoZSBicmlkZ2Ug cGFzc2VkIHNob3VsZCBiZSB0aGUgb25lIGNsb3Nlc3QgdG8gdGhlIGVuY29kZXIKPiAgICovCj4g LXZvaWQgZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Us Cj4gLQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArdm9pZCBkcm1f YXRvbWljX2JyaWRnZV9jaGFpbl9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAr CQkJCSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAgCWlmICghYnJp ZGdlKQo+ICAJCXJldHVybjsKPiBAQCAtNDU4LDkgKzQ2MSw5IEBAIHZvaWQgZHJtX2F0b21pY19i cmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAllbHNlIGlmIChicmlk Z2UtPmZ1bmNzLT5lbmFibGUpCj4gIAkJYnJpZGdlLT5mdW5jcy0+ZW5hYmxlKGJyaWRnZSk7Cj4g IAo+IC0JZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlKGJyaWRnZS0+bmV4dCwgc3RhdGUpOwo+ICsJ ZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fZW5hYmxlKGJyaWRnZS0+bmV4dCwgc3RhdGUpOwo+ICB9 Cj4gLUVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlKTsKPiArRVhQT1JUX1NZ TUJPTChkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9lbmFibGUpOwo+ICAKPiAgI2lmZGVmIENPTkZJ R19PRgo+ICAvKioKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxw ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKPiBpbmRleCBhN2M4N2Fi ZTg4ZDAuLmMzZWE3MjIwNjVjNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3By b2JlX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+ IEBAIC0xMTIsNyArMTEyLDcgQEAgZHJtX21vZGVfdmFsaWRhdGVfcGlwZWxpbmUoc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gIAkJCWNvbnRpbnVlOwo+ICAJCX0KPiAgCj4gLQkJcmV0 ID0gZHJtX2JyaWRnZV9tb2RlX3ZhbGlkKGVuY29kZXItPmJyaWRnZSwgbW9kZSk7Cj4gKwkJcmV0 ID0gZHJtX2JyaWRnZV9jaGFpbl9tb2RlX3ZhbGlkKGVuY29kZXItPmJyaWRnZSwgbW9kZSk7Cj4g IAkJaWYgKHJldCAhPSBNT0RFX09LKSB7Cj4gIAkJCS8qIFRoZXJlIGlzIGFsc28gbm8gcG9pbnQg aW4gY29udGludWluZyBmb3IgY3J0YyBjaGVjawo+ICAJCQkgKiBoZXJlLiAqLwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfaGRtaS5jCj4gaW5kZXggYzc5YjFmODU1ZDg5Li5lYTY4YjVhZGNjYmUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYwo+IEBAIC0xMjQ3LDggKzEyNDcs OCBAQCBzdGF0aWMgaW50IG10a19oZG1pX2Nvbm5fbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubiwKPiAgCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBhZGp1c3RlZF9tb2RlOwo+ ICAKPiAgCQlkcm1fbW9kZV9jb3B5KCZhZGp1c3RlZF9tb2RlLCBtb2RlKTsKPiAtCQlpZiAoIWRy bV9icmlkZ2VfbW9kZV9maXh1cChoZG1pLT5icmlkZ2UubmV4dCwgbW9kZSwKPiAtCQkJCQkgICAm YWRqdXN0ZWRfbW9kZSkpCj4gKwkJaWYgKCFkcm1fYnJpZGdlX2NoYWluX21vZGVfZml4dXAoaGRt aS0+YnJpZGdlLm5leHQsIG1vZGUsCj4gKwkJCQkJCSAmYWRqdXN0ZWRfbW9kZSkpCj4gIAkJCXJl dHVybiBNT0RFX0JBRDsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9i cmlkZ2UuaCBiL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+IGluZGV4IGMwYTIyODZhODFlOS4u NzI2NDM1YmFmNGFkIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+ICsr KyBiL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+IEBAIC0yNTQsOSArMjU0LDEwIEBAIHN0cnVj dCBkcm1fYnJpZGdlX2Z1bmNzIHsKPiAgCSAqIHRoZXJlIGlzIG9uZSkgd2hlbiB0aGlzIGNhbGxi YWNrIGlzIGNhbGxlZC4KPiAgCSAqCj4gIAkgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxs IG9ubHkgYmUgaW52b2tlZCBpbiB0aGUgY29udGV4dCBvZiBhbgo+IC0JICogYXRvbWljIGNvbW1p dC4gSXQgd2lsbCBub3QgYmUgaW52b2tlZCBmcm9tICZkcm1fYnJpZGdlX3ByZV9lbmFibGUuIEl0 Cj4gLQkgKiB3b3VsZCBiZSBwcnVkZW50IHRvIGFsc28gcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlv biBvZiBAcHJlX2VuYWJsZSBpZgo+IC0JICogeW91IGFyZSBleHBlY3RpbmcgZHJpdmVyIGNhbGxz IGludG8gJmRybV9icmlkZ2VfcHJlX2VuYWJsZS4KPiArCSAqIGF0b21pYyBjb21taXQuIEl0IHdp bGwgbm90IGJlIGludm9rZWQgZnJvbQo+ICsJICogJmRybV9icmlkZ2VfY2hhaW5fcHJlX2VuYWJs ZS4gSXQgd291bGQgYmUgcHJ1ZGVudCB0byBhbHNvIHByb3ZpZGUgYW4KPiArCSAqIGltcGxlbWVu dGF0aW9uIG9mIEBwcmVfZW5hYmxlIGlmIHlvdSBhcmUgZXhwZWN0aW5nIGRyaXZlciBjYWxscyBp bnRvCj4gKwkgKiAmZHJtX2JyaWRnZV9jaGFpbl9wcmVfZW5hYmxlLgo+ICAJICoKPiAgCSAqIFRo ZSBAYXRvbWljX3ByZV9lbmFibGUgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCj4gIAkgKi8KPiBAQCAt Mjc5LDkgKzI4MCw5IEBAIHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHsKPiAgCSAqIGNoYWluIGlm IHRoZXJlIGlzIG9uZS4KPiAgCSAqCj4gIAkgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxs IG9ubHkgYmUgaW52b2tlZCBpbiB0aGUgY29udGV4dCBvZiBhbgo+IC0JICogYXRvbWljIGNvbW1p dC4gSXQgd2lsbCBub3QgYmUgaW52b2tlZCBmcm9tICZkcm1fYnJpZGdlX2VuYWJsZS4gSXQKPiAt CSAqIHdvdWxkIGJlIHBydWRlbnQgdG8gYWxzbyBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIG9m IEBlbmFibGUgaWYKPiAtCSAqIHlvdSBhcmUgZXhwZWN0aW5nIGRyaXZlciBjYWxscyBpbnRvICZk cm1fYnJpZGdlX2VuYWJsZS4KPiArCSAqIGF0b21pYyBjb21taXQuIEl0IHdpbGwgbm90IGJlIGlu dm9rZWQgZnJvbSAmZHJtX2JyaWRnZV9jaGFpbl9lbmFibGUuCj4gKwkgKiBJdCB3b3VsZCBiZSBw cnVkZW50IHRvIGFsc28gcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiBAZW5hYmxlIGlmCj4g KwkgKiB5b3UgYXJlIGV4cGVjdGluZyBkcml2ZXIgY2FsbHMgaW50byAmZHJtX2JyaWRnZV9jaGFp bl9lbmFibGUuCj4gIAkgKgo+ICAJICogVGhlIEBhdG9taWNfZW5hYmxlIGNhbGxiYWNrIGlzIG9w dGlvbmFsLgo+ICAJICovCj4gQEAgLTMwMSw5ICszMDIsMTAgQEAgc3RydWN0IGRybV9icmlkZ2Vf ZnVuY3Mgewo+ICAJICogc2lnbmFscykgZmVlZGluZyBpdCBpcyBzdGlsbCBydW5uaW5nIHdoZW4g dGhpcyBjYWxsYmFjayBpcyBjYWxsZWQuCj4gIAkgKgo+ICAJICogTm90ZSB0aGF0IHRoaXMgZnVu Y3Rpb24gd2lsbCBvbmx5IGJlIGludm9rZWQgaW4gdGhlIGNvbnRleHQgb2YgYW4KPiAtCSAqIGF0 b21pYyBjb21taXQuIEl0IHdpbGwgbm90IGJlIGludm9rZWQgZnJvbSAmZHJtX2JyaWRnZV9kaXNh YmxlLiBJdAo+IC0JICogd291bGQgYmUgcHJ1ZGVudCB0byBhbHNvIHByb3ZpZGUgYW4gaW1wbGVt ZW50YXRpb24gb2YgQGRpc2FibGUgaWYKPiAtCSAqIHlvdSBhcmUgZXhwZWN0aW5nIGRyaXZlciBj YWxscyBpbnRvICZkcm1fYnJpZGdlX2Rpc2FibGUuCj4gKwkgKiBhdG9taWMgY29tbWl0LiBJdCB3 aWxsIG5vdCBiZSBpbnZva2VkIGZyb20KPiArCSAqICZkcm1fYnJpZGdlX2NoYWluX2Rpc2FibGUu IEl0IHdvdWxkIGJlIHBydWRlbnQgdG8gYWxzbyBwcm92aWRlIGFuCj4gKwkgKiBpbXBsZW1lbnRh dGlvbiBvZiBAZGlzYWJsZSBpZiB5b3UgYXJlIGV4cGVjdGluZyBkcml2ZXIgY2FsbHMgaW50bwo+ ICsJICogJmRybV9icmlkZ2VfY2hhaW5fZGlzYWJsZS4KPiAgCSAqCj4gIAkgKiBUaGUgQGF0b21p Y19kaXNhYmxlIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgo+ICAJICovCj4gQEAgLTMyNSwxMCArMzI3 LDExIEBAIHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHsKPiAgCSAqIGNhbGxlZC4KPiAgCSAqCj4g IAkgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUg Y29udGV4dCBvZiBhbgo+IC0JICogYXRvbWljIGNvbW1pdC4gSXQgd2lsbCBub3QgYmUgaW52b2tl ZCBmcm9tICZkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZS4KPiArCSAqIGF0b21pYyBjb21taXQuIEl0 IHdpbGwgbm90IGJlIGludm9rZWQgZnJvbQo+ICsJICogJmRybV9icmlkZ2VfY2hhaW5fcG9zdF9k aXNhYmxlLgo+ICAJICogSXQgd291bGQgYmUgcHJ1ZGVudCB0byBhbHNvIHByb3ZpZGUgYW4gaW1w bGVtZW50YXRpb24gb2YKPiAgCSAqIEBwb3N0X2Rpc2FibGUgaWYgeW91IGFyZSBleHBlY3Rpbmcg ZHJpdmVyIGNhbGxzIGludG8KPiAtCSAqICZkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZS4KPiArCSAq ICZkcm1fYnJpZGdlX2NoYWluX3Bvc3RfZGlzYWJsZS4KPiAgCSAqCj4gIAkgKiBUaGUgQGF0b21p Y19wb3N0X2Rpc2FibGUgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCj4gIAkgKi8KPiBAQCAtNDA2LDI3 ICs0MDksMjggQEAgc3RydWN0IGRybV9icmlkZ2UgKm9mX2RybV9maW5kX2JyaWRnZShzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wKTsKPiAgaW50IGRybV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2Rlciwgc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAgCQkgICAgICBzdHJ1 Y3QgZHJtX2JyaWRnZSAqcHJldmlvdXMpOwo+ICAKPiAtYm9vbCBkcm1fYnJpZGdlX21vZGVfZml4 dXAoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAtCQkJICAgY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUsCj4gLQkJCSAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlKTsKPiAtZW51bSBkcm1fbW9kZV9zdGF0dXMgZHJtX2JyaWRnZV9tb2RlX3ZhbGlk KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJCQkJICAgY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUpOwo+IC12b2lkIGRybV9icmlkZ2VfZGlzYWJsZShzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlKTsKPiAtdm9pZCBkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiAtdm9pZCBkcm1fYnJpZGdlX21vZGVfc2V0KHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSwKPiAtCQkJIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl KTsKPiAtdm9pZCBkcm1fYnJpZGdlX3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSk7Cj4gLXZvaWQgZHJtX2JyaWRnZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7 Cj4gK2Jvb2wgZHJtX2JyaWRnZV9jaGFpbl9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UsCj4gKwkJCQkgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gKwkJ CQkgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpOwo+ICtlbnVtIGRybV9t b2RlX3N0YXR1cwo+ICtkcm1fYnJpZGdlX2NoYWluX21vZGVfdmFsaWQoc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSwKPiArCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KTsKPiArdm9pZCBkcm1fYnJpZGdlX2NoYWluX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSk7Cj4gK3ZvaWQgZHJtX2JyaWRnZV9jaGFpbl9wb3N0X2Rpc2FibGUoc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSk7Cj4gK3ZvaWQgZHJtX2JyaWRnZV9jaGFpbl9tb2RlX3NldChzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUsCj4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSk7Cj4gK3ZvaWQgZHJtX2JyaWRnZV9jaGFpbl9wcmVfZW5hYmxlKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ICt2b2lkIGRybV9icmlkZ2VfY2hhaW5fZW5hYmxlKHN0 cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ICAKPiAtdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9k aXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJCSAgICAgICBzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+IC12b2lkIGRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlz YWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICt2b2lkIGRybV9hdG9taWNfYnJpZGdl X2NoYWluX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCSAgICAgc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiArdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9j aGFpbl9wb3N0X2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCQkgIHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gK3ZvaWQgZHJtX2F0b21pY19icmlkZ2Vf Y2hhaW5fcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gK3ZvaWQgZHJtX2F0b21pY19icmlkZ2VfY2hh aW5fZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAkJCQkgICAgc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiAtdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9wcmVfZW5h YmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJCQkgIHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSk7Cj4gLXZvaWQgZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlKHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSk7Cj4gIAo+ICAjaWZkZWYgQ09ORklHX0RSTV9QQU5FTF9CUklER0UKPiAgc3RydWN0IGRy bV9icmlkZ2UgKmRybV9wYW5lbF9icmlkZ2VfYWRkKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKTsK Ci0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWw=