From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Armstrong Subject: Re: [PATCH v3 04/21] drm/bridge: Rename bridge helpers targeting a bridge chain Date: Fri, 25 Oct 2019 15:26:58 +0200 Message-ID: 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 mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id 176EF6EA22 for ; Fri, 25 Oct 2019 13:27:03 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id v9so2350524wrq.5 for ; Fri, 25 Oct 2019 06:27:02 -0700 (PDT) In-Reply-To: <20191023154512.9762-5-boris.brezillon@collabora.com> 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: Boris Brezillon , dri-devel@lists.freedesktop.org Cc: Nikita Yushchenko , Mark Rutland , Jernej Skrabec , Jonas Karlman , Andrey Smirnov , Seung-Woo Kim , Rob Herring , Kyungmin Park , Thierry Reding , Laurent Pinchart , kernel@collabora.com, Sam Ravnborg , devicetree@vger.kernel.org, Chris Healy List-Id: dri-devel@lists.freedesktop.org T24gMjMvMTAvMjAxOSAxNzo0NCwgQm9yaXMgQnJlemlsbG9uIHdyb3RlOgo+IENoYW5nZSB0aGUg cHJlZml4IG9mIGJyaWRnZSBoZWxwZXJzIHRhcmdldGluZyBhIGJyaWRnZSBjaGFpbiBmcm9tCj4g ZHJtX2JyaWRnZV8gdG8gZHJtX2JyaWRnZV9jaGFpbl8gdG8gYmV0dGVyIHJlZmxlY3QgdGhlIGZh Y3QgdGhhdAo+IHRoZSBvcGVyYXRpb24gd2lsbCBoYXBwZW4gb24gYWxsIGVsZW1lbnRzIG9mIGNo YWluLCBzdGFydGluZyBhdCB0aGUKPiBicmlkZ2UgcGFzc2VkIGluIGFyZ3VtZW50Lgo+IAo+IFNp Z25lZC1vZmYtYnk6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGNvbGxhYm9yYS5j b20+Cj4gLS0tCj4gQ2hhbmdlcyBpbiB2MzoKPiAqIE5vbmUKPiAKPiBDaGFuZ2VzIGluIHYyOgo+ ICogUGFzcyB0ZSBicmlkZ2UsIG5vdCB0aGUgZW5jb2Rlciwgc28gd2UgY2FuIGxhdGVyIGFjdCBv biBhIHN1Yi1jaGFpbgo+ICAgaW5zdGVhZCBvZiB0aGUgd2hvbGUgY2hhaW4KPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAgMTkgKysrLS0KPiAgZHJpdmVycy9n cHUvZHJtL2RybV9icmlkZ2UuYyAgICAgICAgfCAxMjUgKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jICB8ICAgMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyB8ICAgNCArLQo+ICBpbmNsdWRlL2Ry bS9kcm1fYnJpZGdlLmggICAgICAgICAgICB8ICA2NCArKysrKysrLS0tLS0tLQo+ICA1IGZpbGVz IGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCA1ODcwNTI3NTFiNDguLmNmNjc4YmU1OGZh NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTQzNSw4ICs0MzUs OSBAQCBtb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCQllbmNv ZGVyID0gbmV3X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcjsKPiAgCQlmdW5jcyA9IGVuY29kZXIt PmhlbHBlcl9wcml2YXRlOwo+ICAKPiAtCQlyZXQgPSBkcm1fYnJpZGdlX21vZGVfZml4dXAoZW5j b2Rlci0+YnJpZGdlLCAmbmV3X2NydGNfc3RhdGUtPm1vZGUsCj4gLQkJCQkmbmV3X2NydGNfc3Rh dGUtPmFkanVzdGVkX21vZGUpOwo+ICsJCXJldCA9IGRybV9icmlkZ2VfY2hhaW5fbW9kZV9maXh1 cChlbmNvZGVyLT5icmlkZ2UsCj4gKwkJCQkJJm5ld19jcnRjX3N0YXRlLT5tb2RlLAo+ICsJCQkJ CSZuZXdfY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZSk7Cj4gIAkJaWYgKCFyZXQpIHsKPiAgCQkJ RFJNX0RFQlVHX0FUT01JQygiQnJpZGdlIGZpeHVwIGZhaWxlZFxuIik7Cj4gIAkJCXJldHVybiAt RUlOVkFMOwo+IEBAIC01MDEsNyArNTAyLDcgQEAgc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVz IG1vZGVfdmFsaWRfcGF0aChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCXJl dHVybiByZXQ7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZHJtX2JyaWRnZV9tb2RlX3ZhbGlkKGVuY29k ZXItPmJyaWRnZSwgbW9kZSk7Cj4gKwlyZXQgPSBkcm1fYnJpZGdlX2NoYWluX21vZGVfdmFsaWQo ZW5jb2Rlci0+YnJpZGdlLCBtb2RlKTsKPiAgCWlmIChyZXQgIT0gTU9ERV9PSykgewo+ICAJCURS TV9ERUJVR19BVE9NSUMoIltCUklER0VdIG1vZGVfdmFsaWQoKSBmYWlsZWRcbiIpOwo+ICAJCXJl dHVybiByZXQ7Cj4gQEAgLTEwMjAsNyArMTAyMSw3IEBAIGRpc2FibGVfb3V0cHV0cyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICAJ CSAqIEVhY2ggZW5jb2RlciBoYXMgYXQgbW9zdCBvbmUgY29ubmVjdG9yIChzaW5jZSB3ZSBhbHdh eXMgc3RlYWwKPiAgCQkgKiBpdCBhd2F5KSwgc28gd2Ugd29uJ3QgY2FsbCBkaXNhYmxlIGhvb2tz IHR3aWNlLgo+ICAJCSAqLwo+IC0JCWRybV9hdG9taWNfYnJpZGdlX2Rpc2FibGUoZW5jb2Rlci0+ YnJpZGdlLCBvbGRfc3RhdGUpOwo+ICsJCWRybV9hdG9taWNfYnJpZGdlX2NoYWluX2Rpc2FibGUo ZW5jb2Rlci0+YnJpZGdlLCBvbGRfc3RhdGUpOwo+ICAKPiAgCQkvKiBSaWdodCBmdW5jdGlvbiBk ZXBlbmRzIHVwb24gdGFyZ2V0IHN0YXRlLiAqLwo+ICAJCWlmIChmdW5jcykgewo+IEBAIC0xMDM0 LDcgKzEwMzUsOCBAQCBkaXNhYmxlX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiAgCQkJCWZ1bmNzLT5kcG1zKGVuY29k ZXIsIERSTV9NT0RFX0RQTVNfT0ZGKTsKPiAgCQl9Cj4gIAo+IC0JCWRybV9hdG9taWNfYnJpZGdl X3Bvc3RfZGlzYWJsZShlbmNvZGVyLT5icmlkZ2UsIG9sZF9zdGF0ZSk7Cj4gKwkJZHJtX2F0b21p Y19icmlkZ2VfY2hhaW5fcG9zdF9kaXNhYmxlKGVuY29kZXItPmJyaWRnZSwKPiArCQkJCQkJICAg ICBvbGRfc3RhdGUpOwo+ICAJfQo+ICAKPiAgCWZvcl9lYWNoX29sZG5ld19jcnRjX2luX3N0YXRl KG9sZF9zdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4g QEAgLTEyMTUsNyArMTIxNyw4IEBAIGNydGNfc2V0X21vZGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiAgCQkJZnVuY3MtPm1vZGVf c2V0KGVuY29kZXIsIG1vZGUsIGFkanVzdGVkX21vZGUpOwo+ICAJCX0KPiAgCj4gLQkJZHJtX2Jy aWRnZV9tb2RlX3NldChlbmNvZGVyLT5icmlkZ2UsIG1vZGUsIGFkanVzdGVkX21vZGUpOwo+ICsJ CWRybV9icmlkZ2VfY2hhaW5fbW9kZV9zZXQoZW5jb2Rlci0+YnJpZGdlLCBtb2RlLAo+ICsJCQkJ CSAgYWRqdXN0ZWRfbW9kZSk7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTEzMzIsNyArMTMzNSw3IEBA IHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAJCSAqIEVhY2ggZW5jb2RlciBoYXMgYXQgbW9zdCBvbmUgY29ubmVj dG9yIChzaW5jZSB3ZSBhbHdheXMgc3RlYWwKPiAgCQkgKiBpdCBhd2F5KSwgc28gd2Ugd29uJ3Qg Y2FsbCBlbmFibGUgaG9va3MgdHdpY2UuCj4gIAkJICovCj4gLQkJZHJtX2F0b21pY19icmlkZ2Vf cHJlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UsIG9sZF9zdGF0ZSk7Cj4gKwkJZHJtX2F0b21pY19i cmlkZ2VfY2hhaW5fcHJlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UsIG9sZF9zdGF0ZSk7Cj4gIAo+ ICAJCWlmIChmdW5jcykgewo+ICAJCQlpZiAoZnVuY3MtPmF0b21pY19lbmFibGUpCj4gQEAgLTEz NDMsNyArMTM0Niw3IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5h YmxlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJZnVuY3MtPmNvbW1pdChlbmNvZGVy KTsKPiAgCQl9Cj4gIAo+IC0JCWRybV9hdG9taWNfYnJpZGdlX2VuYWJsZShlbmNvZGVyLT5icmlk Z2UsIG9sZF9zdGF0ZSk7Cj4gKwkJZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fZW5hYmxlKGVuY29k ZXItPmJyaWRnZSwgb2xkX3N0YXRlKTsKPiAgCX0KPiAgCj4gIAlkcm1fYXRvbWljX2hlbHBlcl9j b21taXRfd3JpdGViYWNrcyhkZXYsIG9sZF9zdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYnJpZGdlLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jCj4gaW5k ZXggY2JhNTM3Yzk5ZTQzLi41NGM4NzQ0OTNjNTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9icmlkZ2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMKPiBA QCAtMTcyLDggKzE3Miw4IEBAIHZvaWQgZHJtX2JyaWRnZV9kZXRhY2goc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSkKPiAgICovCj4gIAo+ICAvKioKPiAtICogZHJtX2JyaWRnZV9tb2RlX2ZpeHVw IC0gZml4dXAgcHJvcG9zZWQgbW9kZSBmb3IgYWxsIGJyaWRnZXMgaW4gdGhlCj4gLSAqCQkJICAg ZW5jb2RlciBjaGFpbgo+ICsgKiBkcm1fYnJpZGdlX2NoYWluX21vZGVfZml4dXAgLSBmaXh1cCBw cm9wb3NlZCBtb2RlIGZvciBhbGwgYnJpZGdlcyBpbiB0aGUKPiArICoJCQkJIGVuY29kZXIgY2hh aW4KPiAgICogQGJyaWRnZTogYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCj4gICAqIEBtb2RlOiBk ZXNpcmVkIG1vZGUgdG8gYmUgc2V0IGZvciB0aGUgYnJpZGdlCj4gICAqIEBhZGp1c3RlZF9tb2Rl OiB1cGRhdGVkIG1vZGUgdGhhdCB3b3JrcyBmb3IgdGhpcyBicmlkZ2UKPiBAQCAtMTg2LDkgKzE4 Niw5IEBAIHZvaWQgZHJtX2JyaWRnZV9kZXRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkK PiAgICogUkVUVVJOUzoKPiAgICogdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlCj4g ICAqLwo+IC1ib29sIGRybV9icmlkZ2VfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlLAo+IC0JCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiAtCQkJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gK2Jvb2wgZHJtX2JyaWRnZV9j aGFpbl9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gKwkJCQkgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUpCj4gIHsKPiAgCWJvb2wgcmV0ID0gdHJ1ZTsKPiAgCj4gQEAg LTE5OCwxNSArMTk4LDE2IEBAIGJvb2wgZHJtX2JyaWRnZV9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UsCj4gIAlpZiAoYnJpZGdlLT5mdW5jcy0+bW9kZV9maXh1cCkKPiAgCQly ZXQgPSBicmlkZ2UtPmZ1bmNzLT5tb2RlX2ZpeHVwKGJyaWRnZSwgbW9kZSwgYWRqdXN0ZWRfbW9k ZSk7Cj4gIAo+IC0JcmV0ID0gcmV0ICYmIGRybV9icmlkZ2VfbW9kZV9maXh1cChicmlkZ2UtPm5l eHQsIG1vZGUsIGFkanVzdGVkX21vZGUpOwo+ICsJcmV0ID0gcmV0ICYmIGRybV9icmlkZ2VfY2hh aW5fbW9kZV9maXh1cChicmlkZ2UtPm5leHQsIG1vZGUsCj4gKwkJCQkJCSBhZGp1c3RlZF9tb2Rl KTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gLUVYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9t b2RlX2ZpeHVwKTsKPiArRVhQT1JUX1NZTUJPTChkcm1fYnJpZGdlX2NoYWluX21vZGVfZml4dXAp Owo+ICAKPiAgLyoqCj4gLSAqIGRybV9icmlkZ2VfbW9kZV92YWxpZCAtIHZhbGlkYXRlIHRoZSBt b2RlIGFnYWluc3QgYWxsIGJyaWRnZXMgaW4gdGhlCj4gLSAqIAkJCSAgIGVuY29kZXIgY2hhaW4u Cj4gKyAqIGRybV9icmlkZ2VfY2hhaW5fbW9kZV92YWxpZCAtIHZhbGlkYXRlIHRoZSBtb2RlIGFn YWluc3QgYWxsIGJyaWRnZXMgaW4gdGhlCj4gKyAqCQkJCSBlbmNvZGVyIGNoYWluLgo+ICAgKiBA YnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKPiAgICogQG1vZGU6IGRlc2lyZWQgbW9k ZSB0byBiZSB2YWxpZGF0ZWQKPiAgICoKPiBAQCAtMjE5LDggKzIyMCw5IEBAIEVYUE9SVF9TWU1C T0woZHJtX2JyaWRnZV9tb2RlX2ZpeHVwKTsKPiAgICogUkVUVVJOUzoKPiAgICogTU9ERV9PSyBv biBzdWNjZXNzLCBkcm1fbW9kZV9zdGF0dXMgRW51bSBlcnJvciBjb2RlIG9uIGZhaWx1cmUKPiAg ICovCj4gLWVudW0gZHJtX21vZGVfc3RhdHVzIGRybV9icmlkZ2VfbW9kZV92YWxpZChzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlLAo+IC0JCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICptb2RlKQo+ICtlbnVtIGRybV9tb2RlX3N0YXR1cwo+ICtkcm1fYnJpZGdlX2NoYWluX21v ZGVfdmFsaWQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJICAgIGNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICB7Cj4gIAllbnVtIGRybV9tb2RlX3N0YXR1cyBy ZXQgPSBNT0RFX09LOwo+ICAKPiBAQCAtMjMzLDEyICsyMzUsMTIgQEAgZW51bSBkcm1fbW9kZV9z dGF0dXMgZHJtX2JyaWRnZV9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4g IAlpZiAocmV0ICE9IE1PREVfT0spCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gLQlyZXR1cm4gZHJt X2JyaWRnZV9tb2RlX3ZhbGlkKGJyaWRnZS0+bmV4dCwgbW9kZSk7Cj4gKwlyZXR1cm4gZHJtX2Jy aWRnZV9jaGFpbl9tb2RlX3ZhbGlkKGJyaWRnZS0+bmV4dCwgbW9kZSk7Cj4gIH0KPiAtRVhQT1JU X1NZTUJPTChkcm1fYnJpZGdlX21vZGVfdmFsaWQpOwo+ICtFWFBPUlRfU1lNQk9MKGRybV9icmlk Z2VfY2hhaW5fbW9kZV92YWxpZCk7Cj4gIAo+ICAvKioKPiAtICogZHJtX2JyaWRnZV9kaXNhYmxl IC0gZGlzYWJsZXMgYWxsIGJyaWRnZXMgaW4gdGhlIGVuY29kZXIgY2hhaW4KPiArICogZHJtX2Jy aWRnZV9jaGFpbl9kaXNhYmxlIC0gZGlzYWJsZXMgYWxsIGJyaWRnZXMgaW4gdGhlIGVuY29kZXIg Y2hhaW4KPiAgICogQGJyaWRnZTogYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCj4gICAqCj4gICAq IENhbGxzICZkcm1fYnJpZGdlX2Z1bmNzLmRpc2FibGUgb3AgZm9yIGFsbCB0aGUgYnJpZGdlcyBp biB0aGUgZW5jb2Rlcgo+IEBAIC0yNDcsMjAgKzI0OSwyMSBAQCBFWFBPUlRfU1lNQk9MKGRybV9i cmlkZ2VfbW9kZV92YWxpZCk7Cj4gICAqCj4gICAqIE5vdGU6IHRoZSBicmlkZ2UgcGFzc2VkIHNo b3VsZCBiZSB0aGUgb25lIGNsb3Nlc3QgdG8gdGhlIGVuY29kZXIKPiAgICovCj4gLXZvaWQgZHJt X2JyaWRnZV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3ZvaWQgZHJtX2Jy aWRnZV9jaGFpbl9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIHsKPiAgCWlm ICghYnJpZGdlKQo+ICAJCXJldHVybjsKPiAgCj4gLQlkcm1fYnJpZGdlX2Rpc2FibGUoYnJpZGdl LT5uZXh0KTsKPiArCWRybV9icmlkZ2VfY2hhaW5fZGlzYWJsZShicmlkZ2UtPm5leHQpOwo+ICAK PiAgCWlmIChicmlkZ2UtPmZ1bmNzLT5kaXNhYmxlKQo+ICAJCWJyaWRnZS0+ZnVuY3MtPmRpc2Fi bGUoYnJpZGdlKTsKPiAgfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9icmlkZ2VfZGlzYWJsZSk7Cj4g K0VYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9jaGFpbl9kaXNhYmxlKTsKPiAgCj4gIC8qKgo+IC0g KiBkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZSAtIGNsZWFucyB1cCBhZnRlciBkaXNhYmxpbmcgYWxs IGJyaWRnZXMgaW4gdGhlIGVuY29kZXIgY2hhaW4KPiArICogZHJtX2JyaWRnZV9jaGFpbl9wb3N0 X2Rpc2FibGUgLSBjbGVhbnMgdXAgYWZ0ZXIgZGlzYWJsaW5nIGFsbCBicmlkZ2VzIGluIHRoZQo+ ICsgKgkJCQkgICBlbmNvZGVyIGNoYWluCj4gICAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0 cnVjdHVyZQo+ICAgKgo+ICAgKiBDYWxscyAmZHJtX2JyaWRnZV9mdW5jcy5wb3N0X2Rpc2FibGUg b3AgZm9yIGFsbCB0aGUgYnJpZGdlcyBpbiB0aGUKPiBAQCAtMjY5LDcgKzI3Miw3IEBAIEVYUE9S VF9TWU1CT0woZHJtX2JyaWRnZV9kaXNhYmxlKTsKPiAgICoKPiAgICogTm90ZTogdGhlIGJyaWRn ZSBwYXNzZWQgc2hvdWxkIGJlIHRoZSBvbmUgY2xvc2VzdCB0byB0aGUgZW5jb2Rlcgo+ICAgKi8K PiAtdm9pZCBkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl KQo+ICt2b2lkIGRybV9icmlkZ2VfY2hhaW5fcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UpCj4gIHsKPiAgCWlmICghYnJpZGdlKQo+ICAJCXJldHVybjsKPiBAQCAtMjc3LDI1 ICsyODAsMjUgQEAgdm9pZCBkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlKQo+ICAJaWYgKGJyaWRnZS0+ZnVuY3MtPnBvc3RfZGlzYWJsZSkKPiAgCQlicmlk Z2UtPmZ1bmNzLT5wb3N0X2Rpc2FibGUoYnJpZGdlKTsKPiAgCj4gLQlkcm1fYnJpZGdlX3Bvc3Rf ZGlzYWJsZShicmlkZ2UtPm5leHQpOwo+ICsJZHJtX2JyaWRnZV9jaGFpbl9wb3N0X2Rpc2FibGUo YnJpZGdlLT5uZXh0KTsKPiAgfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9icmlkZ2VfcG9zdF9kaXNh YmxlKTsKPiArRVhQT1JUX1NZTUJPTChkcm1fYnJpZGdlX2NoYWluX3Bvc3RfZGlzYWJsZSk7Cj4g IAo+ICAvKioKPiAtICogZHJtX2JyaWRnZV9tb2RlX3NldCAtIHNldCBwcm9wb3NlZCBtb2RlIGZv ciBhbGwgYnJpZGdlcyBpbiB0aGUKPiAtICoJCQkgZW5jb2RlciBjaGFpbgo+ICsgKiBkcm1fYnJp ZGdlX2NoYWluX21vZGVfc2V0IC0gc2V0IHByb3Bvc2VkIG1vZGUgZm9yIGFsbCBicmlkZ2VzIGlu IHRoZQo+ICsgKgkJCSAgICAgICBlbmNvZGVyIGNoYWluCj4gICAqIEBicmlkZ2U6IGJyaWRnZSBj b250cm9sIHN0cnVjdHVyZQo+IC0gKiBAbW9kZTogZGVzaXJlZCBtb2RlIHRvIGJlIHNldCBmb3Ig dGhlIGJyaWRnZQo+IC0gKiBAYWRqdXN0ZWRfbW9kZTogdXBkYXRlZCBtb2RlIHRoYXQgd29ya3Mg Zm9yIHRoaXMgYnJpZGdlCj4gKyAqIEBtb2RlOiBkZXNpcmVkIG1vZGUgdG8gYmUgc2V0IGZvciB0 aGUgZW5jb2RlciBjaGFpbgo+ICsgKiBAYWRqdXN0ZWRfbW9kZTogdXBkYXRlZCBtb2RlIHRoYXQg d29ya3MgZm9yIHRoaXMgZW5jb2RlciBjaGFpbgo+ICAgKgo+ICAgKiBDYWxscyAmZHJtX2JyaWRn ZV9mdW5jcy5tb2RlX3NldCBvcCBmb3IgYWxsIHRoZSBicmlkZ2VzIGluIHRoZQo+ICAgKiBlbmNv ZGVyIGNoYWluLCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBicmlkZ2UgdG8gdGhlIGxhc3QuCj4g ICAqCj4gICAqIE5vdGU6IHRoZSBicmlkZ2UgcGFzc2VkIHNob3VsZCBiZSB0aGUgb25lIGNsb3Nl c3QgdG8gdGhlIGVuY29kZXIKPiAgICovCj4gLXZvaWQgZHJtX2JyaWRnZV9tb2RlX3NldChzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+IC0JCQkgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUsCj4gLQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSkKPiArdm9pZCBkcm1fYnJpZGdlX2NoYWluX21vZGVfc2V0KHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UsCj4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSwKPiArCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlKQo+ICB7Cj4gIAlpZiAoIWJyaWRnZSkKPiAgCQlyZXR1cm47Cj4gQEAgLTMwMywxMyArMzA2 LDEzIEBAIHZvaWQgZHJtX2JyaWRnZV9tb2RlX3NldChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl LAo+ICAJaWYgKGJyaWRnZS0+ZnVuY3MtPm1vZGVfc2V0KQo+ICAJCWJyaWRnZS0+ZnVuY3MtPm1v ZGVfc2V0KGJyaWRnZSwgbW9kZSwgYWRqdXN0ZWRfbW9kZSk7Cj4gIAo+IC0JZHJtX2JyaWRnZV9t b2RlX3NldChicmlkZ2UtPm5leHQsIG1vZGUsIGFkanVzdGVkX21vZGUpOwo+ICsJZHJtX2JyaWRn ZV9jaGFpbl9tb2RlX3NldChicmlkZ2UtPm5leHQsIG1vZGUsIGFkanVzdGVkX21vZGUpOwo+ICB9 Cj4gLUVYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9tb2RlX3NldCk7Cj4gK0VYUE9SVF9TWU1CT0wo ZHJtX2JyaWRnZV9jaGFpbl9tb2RlX3NldCk7Cj4gIAo+ICAvKioKPiAtICogZHJtX2JyaWRnZV9w cmVfZW5hYmxlIC0gcHJlcGFyZXMgZm9yIGVuYWJsaW5nIGFsbAo+IC0gKgkJCSAgIGJyaWRnZXMg aW4gdGhlIGVuY29kZXIgY2hhaW4KPiArICogZHJtX2JyaWRnZV9jaGFpbl9wcmVfZW5hYmxlIC0g cHJlcGFyZXMgZm9yIGVuYWJsaW5nIGFsbCBicmlkZ2VzIGluIHRoZQo+ICsgKgkJCQkgZW5jb2Rl ciBjaGFpbgo+ICAgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKPiAgICoKPiAg ICogQ2FsbHMgJmRybV9icmlkZ2VfZnVuY3MucHJlX2VuYWJsZSBvcCBmb3IgYWxsIHRoZSBicmlk Z2VzIGluIHRoZSBlbmNvZGVyCj4gQEAgLTMxOCwyMCArMzIxLDIwIEBAIEVYUE9SVF9TWU1CT0wo ZHJtX2JyaWRnZV9tb2RlX3NldCk7Cj4gICAqCj4gICAqIE5vdGU6IHRoZSBicmlkZ2UgcGFzc2Vk IHNob3VsZCBiZSB0aGUgb25lIGNsb3Nlc3QgdG8gdGhlIGVuY29kZXIKPiAgICovCj4gLXZvaWQg ZHJtX2JyaWRnZV9wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3ZvaWQg ZHJtX2JyaWRnZV9jaGFpbl9wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4g IHsKPiAgCWlmICghYnJpZGdlKQo+ICAJCXJldHVybjsKPiAgCj4gLQlkcm1fYnJpZGdlX3ByZV9l bmFibGUoYnJpZGdlLT5uZXh0KTsKPiArCWRybV9icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZShicmlk Z2UtPm5leHQpOwo+ICAKPiAgCWlmIChicmlkZ2UtPmZ1bmNzLT5wcmVfZW5hYmxlKQo+ICAJCWJy aWRnZS0+ZnVuY3MtPnByZV9lbmFibGUoYnJpZGdlKTsKPiAgfQo+IC1FWFBPUlRfU1lNQk9MKGRy bV9icmlkZ2VfcHJlX2VuYWJsZSk7Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9jaGFpbl9w cmVfZW5hYmxlKTsKPiAgCj4gIC8qKgo+IC0gKiBkcm1fYnJpZGdlX2VuYWJsZSAtIGVuYWJsZXMg YWxsIGJyaWRnZXMgaW4gdGhlIGVuY29kZXIgY2hhaW4KPiArICogZHJtX2JyaWRnZV9jaGFpbl9l bmFibGUgLSBlbmFibGVzIGFsbCBicmlkZ2VzIGluIHRoZSBlbmNvZGVyIGNoYWluCj4gICAqIEBi cmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVjdHVyZQo+ICAgKgo+ICAgKiBDYWxscyAmZHJtX2Jy aWRnZV9mdW5jcy5lbmFibGUgb3AgZm9yIGFsbCB0aGUgYnJpZGdlcyBpbiB0aGUgZW5jb2Rlcgo+ IEBAIC0zNDAsNyArMzQzLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYnJpZGdlX3ByZV9lbmFibGUp Owo+ICAgKgo+ICAgKiBOb3RlIHRoYXQgdGhlIGJyaWRnZSBwYXNzZWQgc2hvdWxkIGJlIHRoZSBv bmUgY2xvc2VzdCB0byB0aGUgZW5jb2Rlcgo+ICAgKi8KPiAtdm9pZCBkcm1fYnJpZGdlX2VuYWJs ZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt2b2lkIGRybV9icmlkZ2VfY2hhaW5fZW5h YmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIHsKPiAgCWlmICghYnJpZGdlKQo+ICAJ CXJldHVybjsKPiBAQCAtMzQ4LDEyICszNTEsMTIgQEAgdm9pZCBkcm1fYnJpZGdlX2VuYWJsZShz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICAJaWYgKGJyaWRnZS0+ZnVuY3MtPmVuYWJsZSkK PiAgCQlicmlkZ2UtPmZ1bmNzLT5lbmFibGUoYnJpZGdlKTsKPiAgCj4gLQlkcm1fYnJpZGdlX2Vu YWJsZShicmlkZ2UtPm5leHQpOwo+ICsJZHJtX2JyaWRnZV9jaGFpbl9lbmFibGUoYnJpZGdlLT5u ZXh0KTsKPiAgfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9icmlkZ2VfZW5hYmxlKTsKPiArRVhQT1JU X1NZTUJPTChkcm1fYnJpZGdlX2NoYWluX2VuYWJsZSk7Cj4gIAo+ICAvKioKPiAtICogZHJtX2F0 b21pY19icmlkZ2VfZGlzYWJsZSAtIGRpc2FibGVzIGFsbCBicmlkZ2VzIGluIHRoZSBlbmNvZGVy IGNoYWluCj4gKyAqIGRybV9hdG9taWNfYnJpZGdlX2NoYWluX2Rpc2FibGUgLSBkaXNhYmxlcyBh bGwgYnJpZGdlcyBpbiB0aGUgZW5jb2RlciBjaGFpbgo+ICAgKiBAYnJpZGdlOiBicmlkZ2UgY29u dHJvbCBzdHJ1Y3R1cmUKPiAgICogQHN0YXRlOiBhdG9taWMgc3RhdGUgYmVpbmcgY29tbWl0dGVk Cj4gICAqCj4gQEAgLTM2NCwyNCArMzY3LDI0IEBAIEVYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9l bmFibGUpOwo+ICAgKgo+ICAgKiBOb3RlOiB0aGUgYnJpZGdlIHBhc3NlZCBzaG91bGQgYmUgdGhl IG9uZSBjbG9zZXN0IHRvIHRoZSBlbmNvZGVyCj4gICAqLwo+IC12b2lkIGRybV9hdG9taWNfYnJp ZGdlX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAtCQkJICAgICAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9jaGFp bl9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgICAgIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJaWYgKCFicmlkZ2UpCj4gIAkJcmV0dXJu Owo+ICAKPiAtCWRybV9hdG9taWNfYnJpZGdlX2Rpc2FibGUoYnJpZGdlLT5uZXh0LCBzdGF0ZSk7 Cj4gKwlkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9kaXNhYmxlKGJyaWRnZS0+bmV4dCwgc3RhdGUp Owo+ICAKPiAgCWlmIChicmlkZ2UtPmZ1bmNzLT5hdG9taWNfZGlzYWJsZSkKPiAgCQlicmlkZ2Ut PmZ1bmNzLT5hdG9taWNfZGlzYWJsZShicmlkZ2UsIHN0YXRlKTsKPiAgCWVsc2UgaWYgKGJyaWRn ZS0+ZnVuY3MtPmRpc2FibGUpCj4gIAkJYnJpZGdlLT5mdW5jcy0+ZGlzYWJsZShicmlkZ2UpOwo+ ICB9Cj4gLUVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfZGlzYWJsZSk7Cj4gK0VYUE9S VF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fZGlzYWJsZSk7Cj4gIAo+ICAvKioKPiAt ICogZHJtX2F0b21pY19icmlkZ2VfcG9zdF9kaXNhYmxlIC0gY2xlYW5zIHVwIGFmdGVyIGRpc2Fi bGluZyBhbGwgYnJpZGdlcyBpbiB0aGUKPiAtICoJCQkJICAgIGVuY29kZXIgY2hhaW4KPiArICog ZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcG9zdF9kaXNhYmxlIC0gY2xlYW5zIHVwIGFmdGVyIGRp c2FibGluZyBhbGwgYnJpZGdlcwo+ICsgKgkJCQkJICBpbiB0aGUgZW5jb2RlciBjaGFpbgo+ICAg KiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKPiAgICogQHN0YXRlOiBhdG9taWMg c3RhdGUgYmVpbmcgY29tbWl0dGVkCj4gICAqCj4gQEAgLTM5Miw4ICszOTUsOCBAQCBFWFBPUlRf U1lNQk9MKGRybV9hdG9taWNfYnJpZGdlX2Rpc2FibGUpOwo+ICAgKgo+ICAgKiBOb3RlOiB0aGUg YnJpZGdlIHBhc3NlZCBzaG91bGQgYmUgdGhlIG9uZSBjbG9zZXN0IHRvIHRoZSBlbmNvZGVyCj4g ICAqLwo+IC12b2lkIGRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlLAo+IC0JCQkJICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiArdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9wb3N0X2Rpc2FibGUoc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKPiArCQkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiAgewo+ICAJaWYgKCFicmlkZ2UpCj4gIAkJcmV0dXJuOwo+IEBAIC00MDMsMTMgKzQwNiwxMyBA QCB2b2lkIGRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlLAo+ICAJZWxzZSBpZiAoYnJpZGdlLT5mdW5jcy0+cG9zdF9kaXNhYmxlKQo+ICAJCWJy aWRnZS0+ZnVuY3MtPnBvc3RfZGlzYWJsZShicmlkZ2UpOwo+ICAKPiAtCWRybV9hdG9taWNfYnJp ZGdlX3Bvc3RfZGlzYWJsZShicmlkZ2UtPm5leHQsIHN0YXRlKTsKPiArCWRybV9hdG9taWNfYnJp ZGdlX2NoYWluX3Bvc3RfZGlzYWJsZShicmlkZ2UtPm5leHQsIHN0YXRlKTsKPiAgfQo+IC1FWFBP UlRfU1lNQk9MKGRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlzYWJsZSk7Cj4gK0VYUE9SVF9TWU1C T0woZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcG9zdF9kaXNhYmxlKTsKPiAgCj4gIC8qKgo+IC0g KiBkcm1fYXRvbWljX2JyaWRnZV9wcmVfZW5hYmxlIC0gcHJlcGFyZXMgZm9yIGVuYWJsaW5nIGFs bCBicmlkZ2VzIGluIHRoZQo+IC0gKgkJCQkgIGVuY29kZXIgY2hhaW4KPiArICogZHJtX2F0b21p Y19icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZSAtIHByZXBhcmVzIGZvciBlbmFibGluZyBhbGwgYnJp ZGdlcyBpbgo+ICsgKgkJCQkJdGhlIGVuY29kZXIgY2hhaW4KPiAgICogQGJyaWRnZTogYnJpZGdl IGNvbnRyb2wgc3RydWN0dXJlCj4gICAqIEBzdGF0ZTogYXRvbWljIHN0YXRlIGJlaW5nIGNvbW1p dHRlZAo+ICAgKgo+IEBAIC00MjAsMjMgKzQyMywyMyBAQCBFWFBPUlRfU1lNQk9MKGRybV9hdG9t aWNfYnJpZGdlX3Bvc3RfZGlzYWJsZSk7Cj4gICAqCj4gICAqIE5vdGU6IHRoZSBicmlkZ2UgcGFz c2VkIHNob3VsZCBiZSB0aGUgb25lIGNsb3Nlc3QgdG8gdGhlIGVuY29kZXIKPiAgICovCj4gLXZv aWQgZHJtX2F0b21pY19icmlkZ2VfcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl LAo+IC0JCQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3ZvaWQgZHJtX2F0 b21pY19icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ ICsJCQkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJaWYgKCFicmlk Z2UpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWRybV9hdG9taWNfYnJpZGdlX3ByZV9lbmFibGUoYnJp ZGdlLT5uZXh0LCBzdGF0ZSk7Cj4gKwlkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9wcmVfZW5hYmxl KGJyaWRnZS0+bmV4dCwgc3RhdGUpOwo+ICAKPiAgCWlmIChicmlkZ2UtPmZ1bmNzLT5hdG9taWNf cHJlX2VuYWJsZSkKPiAgCQlicmlkZ2UtPmZ1bmNzLT5hdG9taWNfcHJlX2VuYWJsZShicmlkZ2Us IHN0YXRlKTsKPiAgCWVsc2UgaWYgKGJyaWRnZS0+ZnVuY3MtPnByZV9lbmFibGUpCj4gIAkJYnJp ZGdlLT5mdW5jcy0+cHJlX2VuYWJsZShicmlkZ2UpOwo+ICB9Cj4gLUVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19icmlkZ2VfcHJlX2VuYWJsZSk7Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19i cmlkZ2VfY2hhaW5fcHJlX2VuYWJsZSk7Cj4gIAo+ICAvKioKPiAtICogZHJtX2F0b21pY19icmlk Z2VfZW5hYmxlIC0gZW5hYmxlcyBhbGwgYnJpZGdlcyBpbiB0aGUgZW5jb2RlciBjaGFpbgo+ICsg KiBkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9lbmFibGUgLSBlbmFibGVzIGFsbCBicmlkZ2VzIGlu IHRoZSBlbmNvZGVyIGNoYWluCj4gICAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVjdHVy ZQo+ICAgKiBAc3RhdGU6IGF0b21pYyBzdGF0ZSBiZWluZyBjb21taXR0ZWQKPiAgICoKPiBAQCAt NDQ3LDggKzQ1MCw4IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfcHJlX2VuYWJs ZSk7Cj4gICAqCj4gICAqIE5vdGU6IHRoZSBicmlkZ2UgcGFzc2VkIHNob3VsZCBiZSB0aGUgb25l IGNsb3Nlc3QgdG8gdGhlIGVuY29kZXIKPiAgICovCj4gLXZvaWQgZHJtX2F0b21pY19icmlkZ2Vf ZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJCSAgICAgIHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSkKPiArdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9lbmFi bGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCSAgICBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAgCWlmICghYnJpZGdlKQo+ICAJCXJldHVybjsKPiBAQCAt NDU4LDkgKzQ2MSw5IEBAIHZvaWQgZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UsCj4gIAllbHNlIGlmIChicmlkZ2UtPmZ1bmNzLT5lbmFibGUpCj4gIAkJ YnJpZGdlLT5mdW5jcy0+ZW5hYmxlKGJyaWRnZSk7Cj4gIAo+IC0JZHJtX2F0b21pY19icmlkZ2Vf ZW5hYmxlKGJyaWRnZS0+bmV4dCwgc3RhdGUpOwo+ICsJZHJtX2F0b21pY19icmlkZ2VfY2hhaW5f ZW5hYmxlKGJyaWRnZS0+bmV4dCwgc3RhdGUpOwo+ICB9Cj4gLUVYUE9SVF9TWU1CT0woZHJtX2F0 b21pY19icmlkZ2VfZW5hYmxlKTsKPiArRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2JyaWRnZV9j aGFpbl9lbmFibGUpOwo+ICAKPiAgI2lmZGVmIENPTkZJR19PRgo+ICAvKioKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fcHJvYmVfaGVscGVyLmMKPiBpbmRleCBhN2M4N2FiZTg4ZDAuLmMzZWE3MjIwNjVjNCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+IEBAIC0xMTIsNyArMTEyLDcgQEAgZHJt X21vZGVfdmFsaWRhdGVfcGlwZWxpbmUoc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4g IAkJCWNvbnRpbnVlOwo+ICAJCX0KPiAgCj4gLQkJcmV0ID0gZHJtX2JyaWRnZV9tb2RlX3ZhbGlk KGVuY29kZXItPmJyaWRnZSwgbW9kZSk7Cj4gKwkJcmV0ID0gZHJtX2JyaWRnZV9jaGFpbl9tb2Rl X3ZhbGlkKGVuY29kZXItPmJyaWRnZSwgbW9kZSk7Cj4gIAkJaWYgKHJldCAhPSBNT0RFX09LKSB7 Cj4gIAkJCS8qIFRoZXJlIGlzIGFsc28gbm8gcG9pbnQgaW4gY29udGludWluZyBmb3IgY3J0YyBj aGVjawo+ICAJCQkgKiBoZXJlLiAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCj4g aW5kZXggYzc5YjFmODU1ZDg5Li5lYTY4YjVhZGNjYmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2hkbWkuYwo+IEBAIC0xMjQ3LDggKzEyNDcsOCBAQCBzdGF0aWMgaW50IG10a19oZG1p X2Nvbm5fbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiwKPiAgCQlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSBhZGp1c3RlZF9tb2RlOwo+ICAKPiAgCQlkcm1fbW9kZV9jb3B5KCZh ZGp1c3RlZF9tb2RlLCBtb2RlKTsKPiAtCQlpZiAoIWRybV9icmlkZ2VfbW9kZV9maXh1cChoZG1p LT5icmlkZ2UubmV4dCwgbW9kZSwKPiAtCQkJCQkgICAmYWRqdXN0ZWRfbW9kZSkpCj4gKwkJaWYg KCFkcm1fYnJpZGdlX2NoYWluX21vZGVfZml4dXAoaGRtaS0+YnJpZGdlLm5leHQsIG1vZGUsCj4g KwkJCQkJCSAmYWRqdXN0ZWRfbW9kZSkpCj4gIAkJCXJldHVybiBNT0RFX0JBRDsKPiAgCX0KPiAg Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCBiL2luY2x1ZGUvZHJtL2Ry bV9icmlkZ2UuaAo+IGluZGV4IGMwYTIyODZhODFlOS4uNzI2NDM1YmFmNGFkIDEwMDY0NAo+IC0t LSBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9icmlk Z2UuaAo+IEBAIC0yNTQsOSArMjU0LDEwIEBAIHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHsKPiAg CSAqIHRoZXJlIGlzIG9uZSkgd2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZC4KPiAgCSAqCj4g IAkgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUg Y29udGV4dCBvZiBhbgo+IC0JICogYXRvbWljIGNvbW1pdC4gSXQgd2lsbCBub3QgYmUgaW52b2tl ZCBmcm9tICZkcm1fYnJpZGdlX3ByZV9lbmFibGUuIEl0Cj4gLQkgKiB3b3VsZCBiZSBwcnVkZW50 IHRvIGFsc28gcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiBAcHJlX2VuYWJsZSBpZgo+IC0J ICogeW91IGFyZSBleHBlY3RpbmcgZHJpdmVyIGNhbGxzIGludG8gJmRybV9icmlkZ2VfcHJlX2Vu YWJsZS4KPiArCSAqIGF0b21pYyBjb21taXQuIEl0IHdpbGwgbm90IGJlIGludm9rZWQgZnJvbQo+ ICsJICogJmRybV9icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZS4gSXQgd291bGQgYmUgcHJ1ZGVudCB0 byBhbHNvIHByb3ZpZGUgYW4KPiArCSAqIGltcGxlbWVudGF0aW9uIG9mIEBwcmVfZW5hYmxlIGlm IHlvdSBhcmUgZXhwZWN0aW5nIGRyaXZlciBjYWxscyBpbnRvCj4gKwkgKiAmZHJtX2JyaWRnZV9j aGFpbl9wcmVfZW5hYmxlLgo+ICAJICoKPiAgCSAqIFRoZSBAYXRvbWljX3ByZV9lbmFibGUgY2Fs bGJhY2sgaXMgb3B0aW9uYWwuCj4gIAkgKi8KPiBAQCAtMjc5LDkgKzI4MCw5IEBAIHN0cnVjdCBk cm1fYnJpZGdlX2Z1bmNzIHsKPiAgCSAqIGNoYWluIGlmIHRoZXJlIGlzIG9uZS4KPiAgCSAqCj4g IAkgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUg Y29udGV4dCBvZiBhbgo+IC0JICogYXRvbWljIGNvbW1pdC4gSXQgd2lsbCBub3QgYmUgaW52b2tl ZCBmcm9tICZkcm1fYnJpZGdlX2VuYWJsZS4gSXQKPiAtCSAqIHdvdWxkIGJlIHBydWRlbnQgdG8g YWxzbyBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIG9mIEBlbmFibGUgaWYKPiAtCSAqIHlvdSBh cmUgZXhwZWN0aW5nIGRyaXZlciBjYWxscyBpbnRvICZkcm1fYnJpZGdlX2VuYWJsZS4KPiArCSAq IGF0b21pYyBjb21taXQuIEl0IHdpbGwgbm90IGJlIGludm9rZWQgZnJvbSAmZHJtX2JyaWRnZV9j aGFpbl9lbmFibGUuCj4gKwkgKiBJdCB3b3VsZCBiZSBwcnVkZW50IHRvIGFsc28gcHJvdmlkZSBh biBpbXBsZW1lbnRhdGlvbiBvZiBAZW5hYmxlIGlmCj4gKwkgKiB5b3UgYXJlIGV4cGVjdGluZyBk cml2ZXIgY2FsbHMgaW50byAmZHJtX2JyaWRnZV9jaGFpbl9lbmFibGUuCj4gIAkgKgo+ICAJICog VGhlIEBhdG9taWNfZW5hYmxlIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgo+ICAJICovCj4gQEAgLTMw MSw5ICszMDIsMTAgQEAgc3RydWN0IGRybV9icmlkZ2VfZnVuY3Mgewo+ICAJICogc2lnbmFscykg ZmVlZGluZyBpdCBpcyBzdGlsbCBydW5uaW5nIHdoZW4gdGhpcyBjYWxsYmFjayBpcyBjYWxsZWQu Cj4gIAkgKgo+ICAJICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gd2lsbCBvbmx5IGJlIGludm9r ZWQgaW4gdGhlIGNvbnRleHQgb2YgYW4KPiAtCSAqIGF0b21pYyBjb21taXQuIEl0IHdpbGwgbm90 IGJlIGludm9rZWQgZnJvbSAmZHJtX2JyaWRnZV9kaXNhYmxlLiBJdAo+IC0JICogd291bGQgYmUg cHJ1ZGVudCB0byBhbHNvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gb2YgQGRpc2FibGUgaWYK PiAtCSAqIHlvdSBhcmUgZXhwZWN0aW5nIGRyaXZlciBjYWxscyBpbnRvICZkcm1fYnJpZGdlX2Rp c2FibGUuCj4gKwkgKiBhdG9taWMgY29tbWl0LiBJdCB3aWxsIG5vdCBiZSBpbnZva2VkIGZyb20K PiArCSAqICZkcm1fYnJpZGdlX2NoYWluX2Rpc2FibGUuIEl0IHdvdWxkIGJlIHBydWRlbnQgdG8g YWxzbyBwcm92aWRlIGFuCj4gKwkgKiBpbXBsZW1lbnRhdGlvbiBvZiBAZGlzYWJsZSBpZiB5b3Ug YXJlIGV4cGVjdGluZyBkcml2ZXIgY2FsbHMgaW50bwo+ICsJICogJmRybV9icmlkZ2VfY2hhaW5f ZGlzYWJsZS4KPiAgCSAqCj4gIAkgKiBUaGUgQGF0b21pY19kaXNhYmxlIGNhbGxiYWNrIGlzIG9w dGlvbmFsLgo+ICAJICovCj4gQEAgLTMyNSwxMCArMzI3LDExIEBAIHN0cnVjdCBkcm1fYnJpZGdl X2Z1bmNzIHsKPiAgCSAqIGNhbGxlZC4KPiAgCSAqCj4gIAkgKiBOb3RlIHRoYXQgdGhpcyBmdW5j dGlvbiB3aWxsIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUgY29udGV4dCBvZiBhbgo+IC0JICogYXRv bWljIGNvbW1pdC4gSXQgd2lsbCBub3QgYmUgaW52b2tlZCBmcm9tICZkcm1fYnJpZGdlX3Bvc3Rf ZGlzYWJsZS4KPiArCSAqIGF0b21pYyBjb21taXQuIEl0IHdpbGwgbm90IGJlIGludm9rZWQgZnJv bQo+ICsJICogJmRybV9icmlkZ2VfY2hhaW5fcG9zdF9kaXNhYmxlLgo+ICAJICogSXQgd291bGQg YmUgcHJ1ZGVudCB0byBhbHNvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gb2YKPiAgCSAqIEBw b3N0X2Rpc2FibGUgaWYgeW91IGFyZSBleHBlY3RpbmcgZHJpdmVyIGNhbGxzIGludG8KPiAtCSAq ICZkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZS4KPiArCSAqICZkcm1fYnJpZGdlX2NoYWluX3Bvc3Rf ZGlzYWJsZS4KPiAgCSAqCj4gIAkgKiBUaGUgQGF0b21pY19wb3N0X2Rpc2FibGUgY2FsbGJhY2sg aXMgb3B0aW9uYWwuCj4gIAkgKi8KPiBAQCAtNDA2LDI3ICs0MDksMjggQEAgc3RydWN0IGRybV9i cmlkZ2UgKm9mX2RybV9maW5kX2JyaWRnZShzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTsKPiAgaW50 IGRybV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSwKPiAgCQkgICAgICBzdHJ1Y3QgZHJtX2JyaWRnZSAqcHJldmlvdXMp Owo+ICAKPiAtYm9vbCBkcm1fYnJpZGdlX21vZGVfZml4dXAoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSwKPiAtCQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gLQkJ CSAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKTsKPiAtZW51bSBkcm1f bW9kZV9zdGF0dXMgZHJtX2JyaWRnZV9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UsCj4gLQkJCQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwo+IC12 b2lkIGRybV9icmlkZ2VfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiAtdm9p ZCBkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiAt dm9pZCBkcm1fYnJpZGdlX21vZGVfc2V0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJ CSBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiAtCQkJIGNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKTsKPiAtdm9pZCBkcm1fYnJpZGdlX3By ZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Cj4gLXZvaWQgZHJtX2JyaWRnZV9l bmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Cj4gK2Jvb2wgZHJtX2JyaWRnZV9jaGFp bl9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gKwkJCQkgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUpOwo+ICtlbnVtIGRybV9tb2RlX3N0YXR1cwo+ICtkcm1fYnJpZGdl X2NoYWluX21vZGVfdmFsaWQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJICAgIGNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKPiArdm9pZCBkcm1fYnJpZGdlX2No YWluX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Cj4gK3ZvaWQgZHJtX2JyaWRn ZV9jaGFpbl9wb3N0X2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Cj4gK3ZvaWQg ZHJtX2JyaWRnZV9jaGFpbl9tb2RlX3NldChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJ CQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gKwkJCSAgICAg ICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSk7Cj4gK3ZvaWQg ZHJtX2JyaWRnZV9jaGFpbl9wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ ICt2b2lkIGRybV9icmlkZ2VfY2hhaW5fZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Owo+ICAKPiAtdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UsCj4gLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ IC12b2lkIGRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlLAo+ICt2b2lkIGRybV9hdG9taWNfYnJpZGdlX2NoYWluX2Rpc2FibGUoc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKTsKPiArdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9jaGFpbl9wb3N0X2Rpc2FibGUoc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSk7Cj4gK3ZvaWQgZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fcHJlX2VuYWJsZShzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSk7Cj4gK3ZvaWQgZHJtX2F0b21pY19icmlkZ2VfY2hhaW5fZW5hYmxlKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UsCj4gIAkJCQkgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsK PiAtdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UsCj4gLQkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gLXZvaWQg ZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJ CSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gIAo+ICAjaWZkZWYgQ09O RklHX0RSTV9QQU5FTF9CUklER0UKPiAgc3RydWN0IGRybV9icmlkZ2UgKmRybV9wYW5lbF9icmlk Z2VfYWRkKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKTsKPiAKClJldmlld2VkLWJ5OiBOZWlsIEFy bXN0cm9uZyA8bmFybXN0cm9uZ0BiYXlsaWJyZS5jb20+Cl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==