From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.4]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1EF651A3142 for ; Fri, 7 Mar 2025 07:31:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.4 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741332710; cv=none; b=NyZzr0dhoO4f0lUGLTAUSeXpgdKuKRjmDSRmHK0hxLlpPR2zSTlCz0VDUd/iXkUCSnQuEpvRUDcLHzQoaZedLOpRsqlHNzUR/Qv79JO5mvgYAxarPrsporUkriVbx49upLfquko6K5Gk6k+GdAN6w+vOltWu7EMg7nS+R6f+6Qg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741332710; c=relaxed/simple; bh=lGh5oEOC+JFppBxRV4QlXvkCSU1zHvdYBMWAVwZhqOA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Content-Type: MIME-Version:Message-ID; b=uELJiWngkP7JWkB7e72EFVuzRNb+z8aeAM81UIiM04X2Mmk7F1dnwpJfJR3s7zXrkFV7qWVAXAtFWS+jbyM1eh3poSIr24ZxaupCuqJTJIfvgROt1VxNzFutlAPuVLXZ8IoZaujfSrUX2VynT5iy+pjI73D4P7dx/7gF/DeUhpY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=fail (1024-bit key) header.d=163.com header.i=@163.com header.b=F7ETimJk reason="signature verification failed"; arc=none smtp.client-ip=220.197.31.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=163.com header.i=@163.com header.b="F7ETimJk" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:Content-Type:MIME-Version: Message-ID; bh=CaHc9g0Cbu/Ybiuc40yCZrji+qPLchVCexDOIzIIT7c=; b=F 7ETimJk5xen3wk2YgySGi4AeQcxRhUHNGQt16VPmo0Md+WaBbPjPfBSV207YEwkD hGNBBKmCEqHNeIgQlHAdUr35kZclTWxTCo6mHiewrR6i1UQhxAFz121miqA1o3Y0 FmLSTz3XDVlJ7FlpCp4rXb8cwh1MRUf1uEohasDdzc= Received: from andyshrk$163.com ( [58.22.7.114] ) by ajax-webmail-wmsvr-40-114 (Coremail) ; Fri, 7 Mar 2025 15:30:41 +0800 (CST) Date: Fri, 7 Mar 2025 15:30:41 +0800 (CST) From: "Andy Yan" To: "Simona Vetter" Cc: "Maxime Ripard" , "Dmitry Baryshkov" , "Maarten Lankhorst" , "Thomas Zimmermann" , "David Airlie" , "Simona Vetter" , "Andrzej Hajda" , "Neil Armstrong" , "Robert Foss" , "Laurent Pinchart" , "Jonas Karlman" , "Jernej Skrabec" , "Douglas Anderson" , "Herve Codina" , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re:Re:Re: [PATCH v5 04/16] drm/atomic: Introduce helper to lookup connector by encoder X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20240801(9da12a7b) Copyright (c) 2002-2025 www.mailtech.cn 163com In-Reply-To: <35189f31.c6a.1956e25d8c9.Coremail.andyshrk@163.com> References: <20250304-bridge-connector-v5-0-aacf461d2157@kernel.org> <20250304-bridge-connector-v5-4-aacf461d2157@kernel.org> <5180089f.a640.19566290538.Coremail.andyshrk@163.com> <20250305-ruddy-nightingale-of-wealth-db100a@houat> <7c1c61e7.10e1.19569067029.Coremail.andyshrk@163.com> <20250306-able-wonderful-saluki-aacd1d@houat> <35189f31.c6a.1956e25d8c9.Coremail.andyshrk@163.com> X-NTES-SC: AL_Qu2fA/+YvU4v5ymYZOkfmkcVgOw9UcO5v/Qk3oZXOJF8jDvp6zIxdG1jMkbm3ueENxqyjTi3chhO99R2eY5ddJAgMQ7sVJCrvXlt28kM2b+/fQ== Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <2e1a98a6.69b3.1956f837872.Coremail.andyshrk@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID:cigvCgA33wuioMpnPqR4AA--.6598W X-CM-SenderInfo: 5dqg52xkunqiywtou0bp/1tbiqAoJXmfKn1cZHAACsX X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== CkhpIEFsbCwKQXQgMjAyNS0wMy0wNyAwOTowODo0OCwgIkFuZHkgWWFuIiA8YW5keXNocmtAMTYz LmNvbT4gd3JvdGU6Cj5IaSBBbGwsCj4KPkF0IDIwMjUtMDMtMDYgMjM6NDE6MjQsICJTaW1vbmEg VmV0dGVyIiA8c2ltb25hLnZldHRlckBmZndsbC5jaD4gd3JvdGU6Cj4+T24gVGh1LCBNYXIgMDYs IDIwMjUgYXQgMDg6MTA6MTZBTSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3cm90ZToKPj4+IE9uIFRo dSwgTWFyIDA2LCAyMDI1IGF0IDA5OjE2OjI0QU0gKzA4MDAsIEFuZHkgWWFuIHdyb3RlOgo+Pj4g PiAKPj4+ID4gSGkgTWF4aW1lIGFuZCBEbWl0cnk6Cj4+PiA+IAo+Pj4gPiBBdCAyMDI1LTAzLTA2 IDA0OjEzOjUzLCAiRG1pdHJ5IEJhcnlzaGtvdiIgPGRtaXRyeS5iYXJ5c2hrb3ZAbGluYXJvLm9y Zz4gd3JvdGU6Cj4+PiA+ID5PbiBXZWQsIE1hciAwNSwgMjAyNSBhdCAwMjoxOTozNlBNICswMTAw LCBNYXhpbWUgUmlwYXJkIHdyb3RlOgo+Pj4gPiA+PiBIaSBBbmR5LAo+Pj4gPiA+PiAKPj4+ID4g Pj4gT24gV2VkLCBNYXIgMDUsIDIwMjUgYXQgMDc6NTU6MTlQTSArMDgwMCwgQW5keSBZYW4gd3Jv dGU6Cj4+PiA+ID4+ID4gQXQgMjAyNS0wMy0wNCAxOToxMDo0NywgIk1heGltZSBSaXBhcmQiIDxt cmlwYXJkQGtlcm5lbC5vcmc+IHdyb3RlOgo+Pj4gPiA+PiA+ID5XaXRoIHRoZSBicmlkZ2VzIHN3 aXRjaGluZyBvdmVyIHRvIGRybV9icmlkZ2VfY29ubmVjdG9yLCB0aGUgZGlyZWN0Cj4+PiA+ID4+ ID4gPmFzc29jaWF0aW9uIGJldHdlZW4gYSBicmlkZ2UgZHJpdmVyIGFuZCBpdHMgY29ubmVjdG9y IHdhcyBsb3N0Lgo+Pj4gPiA+PiA+ID4KPj4+ID4gPj4gPiA+VGhpcyBpcyBtaXRpZ2F0ZWQgZm9y IGF0b21pYyBicmlkZ2UgZHJpdmVycyBieSB0aGUgZmFjdCB5b3UgY2FuIGFjY2Vzcwo+Pj4gPiA+ PiA+ID50aGUgZW5jb2RlciwgYW5kIHRoZW4gY2FsbCBkcm1fYXRvbWljX2dldF9vbGRfY29ubmVj dG9yX2Zvcl9lbmNvZGVyKCkgb3IKPj4+ID4gPj4gPiA+ZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5l Y3Rvcl9mb3JfZW5jb2RlcigpIHdpdGggZHJtX2F0b21pY19zdGF0ZS4KPj4+ID4gPj4gPiA+Cj4+ PiA+ID4+ID4gPlRoaXMgd2FzIGFsc28gbWFkZSBlYXNpZXIgYnkgcHJvdmlkaW5nIGRybV9hdG9t aWNfc3RhdGUgZGlyZWN0bHkgdG8gYWxsCj4+PiA+ID4+ID4gPmF0b21pYyBob29rcyBicmlkZ2Vz IGNhbiBpbXBsZW1lbnQuCj4+PiA+ID4+ID4gPgo+Pj4gPiA+PiA+ID5Ib3dldmVyLCBicmlkZ2Ug ZHJpdmVycyBkb24ndCBoYXZlIGEgd2F5IHRvIGFjY2VzcyBkcm1fYXRvbWljX3N0YXRlCj4+PiA+ ID4+ID4gPm91dHNpZGUgb2YgdGhlIG1vZGVzZXQgcGF0aCwgbGlrZSBmcm9tIHRoZSBob3RwbHVn IGludGVycnVwdCBwYXRoIG9yIGFueQo+Pj4gPiA+PiA+ID5pbnRlcnJ1cHQgaGFuZGxlci4KPj4+ ID4gPj4gPiA+Cj4+PiA+ID4+ID4gPkxldCdzIGludHJvZHVjZSBhIGZ1bmN0aW9uIHRvIHJldHJp ZXZlIHRoZSBjb25uZWN0b3IgY3VycmVudGx5IGFzc2lnbmVkCj4+PiA+ID4+ID4gPnRvIGFuIGVu Y29kZXIsIHdpdGhvdXQgdXNpbmcgZHJtX2F0b21pY19zdGF0ZSwgdG8gbWFrZSB0aGVzZSBkcml2 ZXJzJwo+Pj4gPiA+PiA+ID5saWZlIGVhc2llci4KPj4+ID4gPj4gPiA+Cj4+PiA+ID4+ID4gPlJl dmlld2VkLWJ5OiBEbWl0cnkgQmFyeXNoa292IDxkbWl0cnkuYmFyeXNoa292QGxpbmFyby5vcmc+ Cj4+PiA+ID4+ID4gPkNvLWRldmVsb3BlZC1ieTogU2ltb25hIFZldHRlciA8c2ltb25hLnZldHRl ckBmZndsbC5jaD4KPj4+ID4gPj4gPiA+U2lnbmVkLW9mZi1ieTogTWF4aW1lIFJpcGFyZCA8bXJp cGFyZEBrZXJuZWwub3JnPgo+Pj4gPiA+PiA+ID4tLS0KPj4+ID4gPj4gPiA+IGRyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+Pj4gPiA+PiA+ID4gaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oICAgICB8ICAz ICsrKwo+Pj4gPiA+PiA+ID4gMiBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspCj4+PiA+ ID4+ID4gPgo+Pj4gPiA+PiA+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPj4+ID4gPj4gPiA+aW5kZXggOWVh MjYxMTc3MGY0M2NlN2NjYmE0MTA0MDZkNWYyYzUyOGFhYjAyMi4uYjkyNmIxMzI1OTBlNzhmOGQ0 MWQ0OGViNGRhNGJjY2YxNzBlZTIzNiAxMDA2NDQKPj4+ID4gPj4gPiA+LS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYwo+Pj4gPiA+PiA+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCj4+PiA+ID4+ID4gPkBAIC05ODUsMTAgKzk4NSw1NSBAQCBkcm1fYXRvbWljX2dl dF9uZXdfY29ubmVjdG9yX2Zvcl9lbmNvZGVyKGNvbnN0IHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSwKPj4+ID4gPj4gPiA+IAo+Pj4gPiA+PiA+ID4gCXJldHVybiBOVUxMOwo+Pj4gPiA+ PiA+ID4gfQo+Pj4gPiA+PiA+ID4gRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2dldF9uZXdfY29u bmVjdG9yX2Zvcl9lbmNvZGVyKTsKPj4+ID4gPj4gPiA+IAo+Pj4gPiA+PiA+ID4rLyoqCj4+PiA+ ID4+ID4gPisgKiBkcm1fYXRvbWljX2dldF9jb25uZWN0b3JfZm9yX2VuY29kZXIgLSBHZXQgY29u bmVjdG9yIGN1cnJlbnRseSBhc3NpZ25lZCB0byBhbiBlbmNvZGVyCj4+PiA+ID4+ID4gPisgKiBA ZW5jb2RlcjogVGhlIGVuY29kZXIgdG8gZmluZCB0aGUgY29ubmVjdG9yIG9mCj4+PiA+ID4+ID4g PisgKiBAY3R4OiBNb2Rlc2V0IGxvY2tpbmcgY29udGV4dAo+Pj4gPiA+PiA+ID4rICoKPj4+ID4g Pj4gPiA+KyAqIFRoaXMgZnVuY3Rpb24gZmluZHMgYW5kIHJldHVybnMgdGhlIGNvbm5lY3RvciBj dXJyZW50bHkgYXNzaWduZWQgdG8KPj4+ID4gPj4gPiA+KyAqIGFuIEBlbmNvZGVyLgo+Pj4gPiA+ PiA+ID4rICoKPj4+ID4gPj4gPiA+KyAqIFJldHVybnM6Cj4+PiA+ID4+ID4gPisgKiBUaGUgY29u bmVjdG9yIGNvbm5lY3RlZCB0byBAZW5jb2Rlciwgb3IgYW4gZXJyb3IgcG9pbnRlciBvdGhlcndp c2UuCj4+PiA+ID4+ID4gPisgKiBXaGVuIHRoZSBlcnJvciBpcyBFREVBRExLLCBhIGRlYWRsb2Nr IGhhcyBiZWVuIGRldGVjdGVkIGFuZCB0aGUKPj4+ID4gPj4gPiA+KyAqIHNlcXVlbmNlIG11c3Qg YmUgcmVzdGFydGVkLgo+Pj4gPiA+PiA+ID4rICovCj4+PiA+ID4+ID4gPitzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqCj4+PiA+ID4+ID4gPitkcm1fYXRvbWljX2dldF9jb25uZWN0b3JfZm9yX2VuY29k ZXIoY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+Pj4gPiA+PiA+ID4rCQkJCSAg ICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4+PiA+ID4+ID4gPit7Cj4+ PiA+ID4+ID4gPisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKPj4+ ID4gPj4gPiA+KwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqb3V0X2Nvbm5lY3RvciA9IEVSUl9QVFIo LUVJTlZBTCk7Cj4+PiA+ID4+ID4gPisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsK Pj4+ID4gPj4gPiA+KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+Pj4g PiA+PiA+ID4rCWludCByZXQ7Cj4+PiA+ID4+ID4gPisKPj4+ID4gPj4gPiA+KwlyZXQgPSBkcm1f bW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIGN0eCk7Cj4+ PiA+ID4+ID4gPisJaWYgKHJldCkKPj4+ID4gPj4gPiA+KwkJcmV0dXJuIEVSUl9QVFIocmV0KTsK Pj4+ID4gPj4gPiAKPj4+ID4gPj4gPiBJdCBzZWVtcyB0aGF0IHRoaXMgd2lsbCBjYXVzZSBhIGRl YWRsb2NrIHdoZW4gY2FsbGVkIGZyb20gYSBob3RwbHVnCj4+PiA+ID4+ID4gaGFuZGxpbmcgcGF0 aCwgSSBoYXZlIGEgV0lQIERQIGRpdmVyWzBdLCB3aGljaCBzdWdnZXN0ZWQgYnkgRG1pdHJ5IHRv Cj4+PiA+ID4+ID4gdXNlIHRoaXMgQVBJIGZyb20gYSAmZHJtX2JyaWRnZV9mdW5jcy5kZXRlY3Qg Y2FsbGJhY2sgdG8gZ2V0IHRoZQo+Pj4gPiA+PiA+IGNvbm5lY3RvciwgYXMgZGV0ZWN0IGlzIGNh bGxlZCBieSBkcm1faGVscGVyX3Byb2JlX2RldGVjdCwgd2hpY2ggd2lsbAo+Pj4gPiA+PiA+IGhv bGQgY29ubmVjdGlvbl9tdXRleCBmaXJzdCwgc28gdGhlIGRlYWtsb2NrIGhhcHBlbnM6Cj4+PiA+ ID4+ID4KPj4+ID4gPj4gPiBkcm1faGVscGVyX3Byb2JlX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAo+Pj4gPiA+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4LAo+Pj4gPiA+PiA+ICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgZm9yY2UpCj4+PiA+ID4+ID4gewo+Pj4gPiA+PiA+ICAgICAgICAgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzICpmdW5jcyA9IGNvbm5lY3Rvci0+ aGVscGVyX3ByaXZhdGU7Cj4+PiA+ID4+ID4gICAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY29ubmVjdG9yLT5kZXY7Cj4+PiA+ID4+ID4gICAgICAgICBpbnQgcmV0Owo+Pj4gPiA+PiA+ IAo+Pj4gPiA+PiA+ICAgICAgICAgaWYgKCFjdHgpCj4+PiA+ID4+ID4gICAgICAgICAgICAgICAg IHJldHVybiBkcm1faGVscGVyX3Byb2JlX2RldGVjdF9jdHgoY29ubmVjdG9yLCBmb3JjZSk7Cj4+ PiA+ID4+ID4gCj4+PiA+ID4+ID4gICAgICAgICByZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZkZXYt Pm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIGN0eCk7Cj4+PiA+ID4+ID4gICAgICAgICBp ZiAocmV0KQo+Pj4gPiA+PiA+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4gPiA+PiA+ IAo+Pj4gPiA+PiA+ICAgICAgICAgaWYgKGZ1bmNzLT5kZXRlY3RfY3R4KQo+Pj4gPiA+PiA+ICAg ICAgICAgICAgICAgICByZXQgPSBmdW5jcy0+ZGV0ZWN0X2N0eChjb25uZWN0b3IsIGN0eCwgZm9y Y2UpOwo+Pj4gPiA+PiA+ICAgICAgICAgZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+ZGV0ZWN0 KQo+Pj4gPiA+PiA+ICAgICAgICAgICAgICAgICByZXQgPSBjb25uZWN0b3ItPmZ1bmNzLT5kZXRl Y3QoY29ubmVjdG9yLCBmb3JjZSk7Cj4+PiA+ID4+ID4gICAgICAgICBlbHNlCj4+PiA+ID4+ID4g ICAgICAgICAgICAgICAgIHJldCA9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+Pj4gPiA+ PiA+IAo+Pj4gPiA+PiA+ICAgICAgICAgaWYgKHJldCAhPSBjb25uZWN0b3ItPnN0YXR1cykKPj4+ ID4gPj4gPiAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5lcG9jaF9jb3VudGVyICs9IDE7Cj4+ PiA+ID4+ID4gCj4+PiA+ID4+ID4gU28gSSB3b25kZXIgY2FuIHdlIGxldCBkcm1fYnJpZGdlX2Z1 bmNzLmRldGVjdCBwYXNzIGEgY29ubmVjdG9yIGZvcgo+Pj4gPiA+PiA+IHRoaXMgY2FzZSA/Cj4+ PiA+ID4+IAo+Pj4gPiA+PiBEbyB5b3UgYWN0dWFsbHkgc2VlIGEgZGVhZGxvY2sgb2NjdXJyaW5n PyBBRkFJSywgZHJtX21vZGVzZXRfbG9jayBpcwo+Pj4gPiA+PiBmaW5lIHdpdGggcmVlbnRyYW5j eSBmcm9tIHRoZSBzYW1lIGNvbnRleHQsIHNvIGl0IHNob3VsZCB3b3JrIGp1c3QgZmluZS4KPj4+ ID4gPgo+Pj4gPiA+QW5keSwgdGhhdCBwcm9iYWJseSBtZWFucyB0aGF0IHlvdSBzaG91bGQgdXNl IC5kZXRlY3RfY3R4KCkgYW5kIHBhc3MgdGhlCj4+PiA+ID5jb250ZXh0IHRvIGRybV9hdG9taWNf Z2V0X2Nvbm5lY3Rvcl9mb3JfZW5jb2RlcigpLgo+Pj4gPiAKPj4+ID4gVW5mb3J0dW5hdGVseSwg dGhlIGRybV9icmlkZ2VfZnVuY3MgZG9lcyBub3QgaGF2ZSBhIC5kZXRlY3RfY3R4KCkgIHZlcnNp b24gLgo+Pj4gPiBUaGUgY2FsbCBjaGFpbiBpczoKPj4+ID4gIGRybV9oZWxwZXJfcHJvYmVfZGV0 ZWN0IAo+Pj4gPiAgLS0+IGRybV9icmlkZ2VfY29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+Pj4gPiAtLT4gZHJtX2JyaWRnZV9mdW5j cy5kZXRlY3QoYnJpZGdlKQo+Pj4gPiBUaGUgY3R4IGdvdCBkcm9wcGVkIHdoZW4gZHJtX2hlbHBl cl9wcm9iZV9kZXRlY3QgY2FsbCAgZHJtX2JyaWRnZV9jb25uZWN0b3JfZGV0ZWN0Cj4+PiA+IFRo ZSBjb25uZWN0b3IgZ290IGRyb3BwZWQgIHdoZW4gY29ubmVjdG9yIGNhbGwgaXQncyBicmlkZWdl LmRldGVjdAo+Pj4gPiAKPj4+ID4gU28gSSB0aGluayB0aGUgc2ltcGxlc3Qgc29sdXRpb24gaXMg dG8gaGF2ZSBkcm1fYnJpZGdlX2Z1bmNzLmRldGVjdAo+Pj4gPiBkaXJlY3RseSBwYXNzIHRoZSBj b25uZWN0b3IKPj4+IAo+Pj4gSSBkb24ndCBkaXNhZ3JlZSBvbiBwcmluY2lwbGUsIGJ1dCBJIHRo aW5rIGEgYmV0dGVyIGZpcnN0IHN0ZXAgd291bGQgYmUKPj4+IHRvIHByb3ZpZGUgYSBkZXRlY3Rf Y3R4IGhvb2sgdG8gYnJpZGdlcy4KPj4KPj5ZdXAuIFRoZXJlJ3Mgb3RoZXIgcmVhc29ucyB5b3Ug cmVhbGx5IHdhbnQgdG8gZ2V0IGF0IHRoZSBsb2NraW5nIGNvbnRleHQKPj5pbiBkZXRlY3QgY2Fs bGJhY2tzLCBkb2luZyB0aGlzIHNwZWNpYWwgY2FzZSBieSBwYXNzaW5nIHNvbWV0aGluZyBmb3IK Pj5ldmVyeW9uZSBkb2Vzbid0IHNvdW5kIGxpa2UgdGhlIHJpZ2h0IGFwcHJvYWNoIHRvIG1lLgo+ Cj5PaywgSSB3aWxsIGFkZCBhIGRldGVjdF9jdHggIGhvb2sgZm9yIGJyaWRnZS4gVGhhbmtzIGZv ciB5b3VyIGFkdmljZS4KPgo+SnVzdCBjb25maXJtIHRoYXQgY2FuIEkgc2VuZCB0aGlzIGFkZCBk ZXRlY3RfY3R4IGhvb2sgcGF0Y2ggYWxvbmUgZmlyc3Q/IAo+SSB0aGluayB0aGlzIHBhdGNoIHdp bGwgYmUgZWFzeSB0byBtZXJnZSwgIHNvIGl0IGNhbiBoZWxwIG15IFdJUCBEUCBkcml2ZXIgc3Rh eSBsaWdodCBvbiBkZXBlbmRlbmNpZXPjgIIKCldoZW4gSSB0cnkgdG8gYWRkIHRoZSBkZXRlY3Rf Y3R4IGhvb2sgdG8gYnJpZGdlLCBJIGZvdW5kIHRoYXQgdGhlcmUgaXMgc3RpbGwgYSBjYXNlIHRo YXQgdGhlcmUgaXMgbm8gY3R4IHRvCnBhc3MgdG8gZGV0ZWN0X2N0eDoKCmludCBkcm1faGVscGVy X3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCBtYXhYLCB1aW50MzJfdCBtYXhZKQp7CiAgICAgICAgLi4uLi4uLi4uLi4uLi4uCiAgICAgICAg c3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKCiAgICAgICAgV0FSTl9PTighbXV0 ZXhfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KSk7CgogICAgICAgIGRybV9tb2Rl c2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAwKTsKCiAgICAgICAgZHJtX2RiZ19rbXMoZGV2LCAiW0NP Tk5FQ1RPUjolZDolc11cbiIsIGNvbm5lY3Rvci0+YmFzZS5pZCwKICAgICAgICAgICAgICAgICAg ICBjb25uZWN0b3ItPm5hbWUpOwoKcmV0cnk6CiAgICAgICAgcmV0ID0gZHJtX21vZGVzZXRfbG9j aygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCAmY3R4KTsKICAgICAgICAuLi4u Li4uLi4uLi4uLi4uLi4uCiAgICAgICByZXQgPSBkcm1faGVscGVyX3Byb2JlX2RldGVjdChjb25u ZWN0b3IsICZjdHgsIHRydWUpOwogICAgICAgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4KCiAgICAgY291bnQgPSBkcm1faGVscGVyX3Byb2JlX2dldF9tb2Rlcyhjb25uZWN0 b3IpOwoKVGhlbiBpbiBkcm1fYnJpZGdlX2Nvbm5lY3Rvcl9nZXRfbW9kZXM6CgpzdGF0aWMgaW50 IGRybV9icmlkZ2VfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKQp7CiAgICAgICAgc3RydWN0IGRybV9icmlkZ2VfY29ubmVjdG9yICpicmlkZ2VfY29u bmVjdG9yID0KICAgICAgICAgICAgICAgIHRvX2RybV9icmlkZ2VfY29ubmVjdG9yKGNvbm5lY3Rv cik7CiAgICAgICAgc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZTsKCiAgIC4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICAgICAvKgogICAgICAgICAqIElmIGRp c3BsYXkgZXhwb3NlcyBFRElELCB0aGVuIHdlIHBhcnNlIHRoYXQgaW4gdGhlIG5vcm1hbCB3YXkg dG8KICAgICAgICAgKiBidWlsZCB0YWJsZSBvZiBzdXBwb3J0ZWQgbW9kZXMuCiAgICAgICAgICov CiAgICAgICAgYnJpZGdlID0gYnJpZGdlX2Nvbm5lY3Rvci0+YnJpZGdlX2VkaWQ7CiAgICAgICAg aWYgKGJyaWRnZSkKICAgICAgICAgICAgICAgIHJldHVybiBkcm1fYnJpZGdlX2Nvbm5lY3Rvcl9n ZXRfbW9kZXNfZWRpZChjb25uZWN0b3IsIGJyaWRnZSk7CgpzdGF0aWMgaW50IGRybV9icmlkZ2Vf Y29ubmVjdG9yX2dldF9tb2Rlc19lZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSkKewogICAgICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3Rh dHVzOwogICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZWRpZCAqZHJtX2VkaWQ7CiAgICAgICAgaW50 IG47CgogICAgICAgIHN0YXR1cyA9IGRybV9icmlkZ2VfY29ubmVjdG9yX2RldGVjdChjb25uZWN0 b3IsIGZhbHNlKTsKCi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KCi1kcm1fYnJpZGdlX2Nvbm5lY3Rv cl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKK2Ry bV9icmlkZ2VfY29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVf Y3R4ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZvcmNlKQogewogICAg ICAgIHN0cnVjdCBkcm1fYnJpZGdlX2Nvbm5lY3RvciAqYnJpZGdlX2Nvbm5lY3RvciA9CiAgICAg ICAgICAgICAgICB0b19kcm1fYnJpZGdlX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwpAQCAtMTg2LDcg KzE4OCw3IEBAIGRybV9icmlkZ2VfY29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQogICAgICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0 dXMgc3RhdHVzOwogCiAgICAgICAgaWYgKGRldGVjdCkgewogICAgICAgICAgICAgICBzdGF0dXMg PSBkZXRlY3QtPmZ1bmNzLT5kZXRlY3QoZGV0ZWN0LCBjdHgpOwoKVGhlcmUgaXMgc3RpbGwgbm8g Y3R4IGluIHRoaXMgY2FsbCBjaGFpbi4KClNvIHRoZXJlIHdpbGwgYmUgZGVhZGxvY2sgaWYgSSB1 c2UgZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rvcl9mb3JfZW5jb2RlciB0byBmaW5kIGNvbm5l Y3RvciBpbgpteSBicmlkZ2UgZGV0ZWN0X2N0eCBob29rLgoKCgo+Cj4KPj4tU2ltYQo+Pi0tIAo+ PlNpbW9uYSBWZXR0ZXIKPj5Tb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPj5o dHRwOi8vYmxvZy5mZndsbC5jaAo=