From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9FE81CD98E2 for ; Wed, 17 Jun 2026 11:18:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=K8CjxHd16Pn1I4aSYVhV3JX9wkHxl025uAyDQa9ed8U=; b=UIa03tQxKVHKiY 7kLFopVS8iVkivUaTVBdq02CKsnI2/I3QrMtBJK0ZZQ8ghqkmPyh8Q5NgM7jxMg0m5Scww8SKojzR g8xvxRvGjBwVdQIkvy4q4uiIqD0rd2XAkFRXbYV5MUWcSvIPEhV8bCiwFqkw8Qga0mngS2bvUqk11 8FuvG6gfODEAAHyKG7rBDPQFd7+LqYOMa/r7nvgsgmwcak4iXWvRx+3Fb0AbLpUXlnAiet92SVU7J e/B0+kD8Conb0posDAdV9JfXqrZIJoizbrlYJpTlMOMCTtl4sE5aVBpnuWDZMc/B+3hq7Plv1GAF6 0B+ixtPczSxBb6lHzxCQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wZoHW-0000000HDXG-1iCs; Wed, 17 Jun 2026 11:18:06 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wZoHV-0000000HDWr-2U8Q for linux-i3c@lists.infradead.org; Wed, 17 Jun 2026 11:18:05 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 5D212418B7; Wed, 17 Jun 2026 11:18:05 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ABFF71F00A3D; Wed, 17 Jun 2026 11:18:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1781695085; bh=0O7n1x2uoPuiR0pxuOx+prQXqwOkZgkFZTU+B/41iyU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=YAD/20LJu29GU0Q+FrjODWS7FbZcojsq1dkBg26694uTX+bWR1Uf+dMl0jT+FdIHy c41y36wWgUpzP5uCDmfmNBHi69pwWJOpzpH0uEry7z9yAGMsESBTclNa5WNNlhREsd SJZCy72y3kmppNUB9MaIpptxTqllhCr/isWkm4cKlKvQ29VFDSyHdVzOg+o5Q4kPkA ldFadGCQkvDXE1g0wNQSxysx1woLnz4y7emoBgMg1D5cKvUlQ8L2Lg/r9aXGDbLHct VOUzxjqoDV5jkUi/oZLS+fOcCwKMoJHOB+IAAUkvu03JNs3AotJEoS0b0t829Lb7tY IoUD+uAVDotug== From: sashiko-bot@kernel.org Subject: Re: [PATCH v12 5/7] i3c: hub: Add support for the I3C interface in the I3C hub To: "Lakshay Piplani" Cc: robh@kernel.org, conor+dt@kernel.org, Frank.Li@kernel.org, devicetree@vger.kernel.org, linux-i3c@lists.infradead.org In-Reply-To: <20260617110355.1591844-6-lakshay.piplani@nxp.com> References: <20260617110355.1591844-1-lakshay.piplani@nxp.com> <20260617110355.1591844-6-lakshay.piplani@nxp.com> Date: Wed, 17 Jun 2026 11:18:04 +0000 Message-Id: <20260617111804.ABFF71F00A3D@smtp.kernel.org> X-BeenThere: linux-i3c@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-i3c" Errors-To: linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg OCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0NyaXRpY2FsXSBEZXRlcm1pbmlz dGljIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiBgaTNjX2h1Yl9mcmVlX2liaSgpYCBkdWUg dG8gcmVjdXJzaXZlIGNhbGxiYWNrIGNoYWluLgotIFtDcml0aWNhbF0gTWVtb3J5IGxlYWsgYW5k IGRvdWJsZS1mcmVlIG1lbW9yeSBjb3JydXB0aW9uIGluIGBpM2NfaHViX3JlcXVlc3RfaWJpKClg IGVycm9yIHBhdGhzLgotIFtDcml0aWNhbF0gQ3JpdGljYWwgcmFjZSBjb25kaXRpb24gYW5kIHBh cmVudCBidXMgc3RhdGUgY29ycnVwdGlvbiBpbiBgaTNjX2h1Yl9tYXN0ZXJfcHJpdl94ZmVycygp YCBkdWUgdG8gdW5sb2NrZWQgYWRkcmVzcyBtdXRhdGlvbi4KLSBbQ3JpdGljYWxdIFVuaW1wbGVt ZW50ZWQgYGkzY19odWJfcmVjeWNsZV9pYmlfc2xvdCgpYCBwZXJtYW5lbnRseSBsZWFrcyBoYXJk d2FyZSBJQkkgc2xvdHMuCi0gW0NyaXRpY2FsXSBBcmNoaXRlY3R1cmFsIGJ5cGFzcyBpbiBgaTNj X2h1Yl9kb19kYWEoKWAgYXR0YWNoZXMgZHluYW1pY2FsbHkgZGlzY292ZXJlZCBkZXZpY2VzIHRv IHRoZSBwYXJlbnQgYnVzIGluc3RlYWQgb2YgdGhlIHZpcnR1YWwgaHViIGJ1cy4KLSBbSGlnaF0g Q2FsbGluZyBgaTNjX2h1Yl9lbmFibGVfcG9ydCgpYCBvdXRzaWRlIG9mIGFueSBsb2NrcyBhbGxv d3MgY29uY3VycmVudCBvcGVyYXRpb25zIHRvIHBoeXNpY2FsbHkgZW5hYmxlIG11bHRpcGxlIGRv d25zdHJlYW0gcG9ydHMgc2ltdWx0YW5lb3VzbHksIGJyZWFraW5nIGVsZWN0cmljYWwgaXNvbGF0 aW9uLgotIFtIaWdoXSBTaWxlbnRseSBkcm9wcGluZyBicm9hZGNhc3QgUlNUREFBIGNvbW1hbmRz IHByZXZlbnRzIHJlc2V0dGluZyBvZiBkb3duc3RyZWFtIGRldmljZXMuCi0gW01lZGl1bV0gQWNj ZXB0aW5nIEkyQyBkZXZpY2VzIHdoaWxlIHVuY29uZGl0aW9uYWxseSByZWplY3RpbmcgYWxsIEky QyB0cmFuc2ZlcnMgdmlvbGF0ZXMgdGhlIEFQSSBjb250cmFjdC4KLS0KCmNvbW1pdCAyYTIwMWE5 ZTBlOWE1NWIzMTQ2N2Q4NzQzNDAwODUyNDBiMzRhZmMzCkF1dGhvcjogTGFrc2hheSBQaXBsYW5p IDxsYWtzaGF5LnBpcGxhbmlAbnhwLmNvbT4KCmkzYzogaHViOiBBZGQgc3VwcG9ydCBmb3IgdGhl IEkzQyBpbnRlcmZhY2UgaW4gdGhlIEkzQyBodWIKClRoaXMgcGF0Y2ggYWRkcyB2aXJ0dWFsIEkz QyBidXMgc3VwcG9ydCBmb3IgdGhlIGh1YiBhbmQgcHJvdmlkZXMgYW4KaW50ZXJmYWNlIHRvIGVu YWJsZSBvciBkaXNhYmxlIGRvd25zdHJlYW0gcG9ydHMuCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2kzYy9odWIuYyBiL2RyaXZlcnMvaTNjL2h1Yi5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBp bmRleCAwMDAwMDAwMDAwMDAwLi5lODc0NGI1MTcyMzQwCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2RyaXZlcnMvaTNjL2h1Yi5jCj4gQEAgLTAsMCArMSw0ODMgQEAKClsgLi4uIF0KCj4gK3N0YXRp YyBpbnQgaTNjX2h1Yl9kb19kYWEoc3RydWN0IGkzY19odWIgKmh1YiwKPiArCQkJICBzdHJ1Y3Qg aTNjX21hc3Rlcl9jb250cm9sbGVyICpjb250cm9sbGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgaTNjX21h c3Rlcl9jb250cm9sbGVyICpwYXJlbnQ7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlmICghaHViIHx8 ICFodWItPmh1Yl9kZXYpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJcGFyZW50ID0gaTNj X2Rldl9nZXRfbWFzdGVyKGh1Yi0+aHViX2Rldi0+ZGVzYyk7Cj4gKwlpZiAoIXBhcmVudCkKPiAr CQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlpM2NfaHViX2VuYWJsZV9wb3J0KGNvbnRyb2xsZXIp Owo+ICsJcmV0ID0gaTNjX21hc3Rlcl9kb19kYWEocGFyZW50KTsKCltTZXZlcml0eTogQ3JpdGlj YWxdClNpbmNlIGBpM2NfbWFzdGVyX2RvX2RhYSgpYCBleGVjdXRlcyB0aGUgREFBIHNlcXVlbmNl IG5hdGl2ZWx5IG9uIHRoZSBwYXJlbnQKY29udHJvbGxlciwgd2lsbCB0aGUgbmV3bHkgZGlzY292 ZXJlZCBkZXZpY2VzIGJlIGFsbG9jYXRlZCBhbmQgYXR0YWNoZWQKZGlyZWN0bHkgdG8gdGhlIHBh cmVudCBidXMgaW5zdGVhZCBvZiB0aGlzIHZpcnR1YWwgaHViJ3MgYnVzPyAKCklmIHRoZXkgYXJl IGF0dGFjaGVkIHRvIHRoZSBwYXJlbnQgYnVzLCB3b24ndCBzdWJzZXF1ZW50IHRyYW5zZmVycyBj b21wbGV0ZWx5CmJ5cGFzcyBgaTNjX2h1Yl9tYXN0ZXJfcHJpdl94ZmVycygpYCwgY2F1c2luZyBj b21tdW5pY2F0aW9uIHdpdGggdGhlc2UKZHluYW1pY2FsbHkgZW51bWVyYXRlZCBkZXZpY2VzIHRv IGZhaWw/CgpbU2V2ZXJpdHk6IEhpZ2hdCklzIHRoZXJlIGEgcmlzayBvZiBicmVha2luZyBlbGVj dHJpY2FsIGlzb2xhdGlvbiBoZXJlPyBgaTNjX2h1Yl9lbmFibGVfcG9ydCgpYAppcyBjYWxsZWQg YmVmb3JlIGFjcXVpcmluZyBhbnkgcGFyZW50IGJ1cyBsb2Nrcy4gCgpJZiBtdWx0aXBsZSB0aHJl YWRzIG9wZXJhdGUgb24gZGlmZmVyZW50IHZpcnR1YWwgY29udHJvbGxlcnMgY29uY3VycmVudGx5 LApjb3VsZCB0aGV5IHBoeXNpY2FsbHkgZW5hYmxlIG11bHRpcGxlIGRvd25zdHJlYW0gcG9ydHMg YXQgdGhlIHNhbWUgdGltZQpiZWZvcmUgdGhlIGJ1cyBsb2NrIGlzIGFjcXVpcmVkPwoKPiArCWkz Y19odWJfZGlzYWJsZV9wb3J0KGNvbnRyb2xsZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30K ClsgLi4uIF0KCj4gK3N0YXRpYyBpbnQgaTNjX2h1Yl9zZW5kX2NjY19jbWQoc3RydWN0IGkzY19o dWIgKmh1YiwKPiArCQkJCXN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKmNvbnRyb2xsZXIs Cj4gKwkJCQlzdHJ1Y3QgaTNjX2NjY19jbWQgKmNtZCkKPiArewo+ICsJc3RydWN0IGkzY19tYXN0 ZXJfY29udHJvbGxlciAqcGFyZW50Owo+ICsJaW50IHJldDsKPiArCj4gKwlpZiAoIWh1YiB8fCAh aHViLT5odWJfZGV2KQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsKPiArCXBhcmVudCA9IGkzY19k ZXZfZ2V0X21hc3RlcihodWItPmh1Yl9kZXYtPmRlc2MpOwo+ICsJaWYgKCFwYXJlbnQpCj4gKwkJ cmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJaTNjX2h1Yl9lbmFibGVfcG9ydChjb250cm9sbGVyKTsK PiArCXJldCA9IGkzY19tYXN0ZXJfc2VuZF9jY2NfY21kKHBhcmVudCwgY21kKTsKCltTZXZlcml0 eTogSGlnaF0KU2ltaWxhciB0byBgaTNjX2h1Yl9kb19kYWEoKWAsIGRvZXMgY2FsbGluZyBgaTNj X2h1Yl9lbmFibGVfcG9ydCgpYCB3aXRob3V0IGEKbG9jayByaXNrIGVuYWJsaW5nIG11bHRpcGxl IHBvcnRzIGNvbmN1cnJlbnRseSBpZiBtdWx0aXBsZSBDQ0MgY29tbWFuZHMgYXJlCmlzc3VlZCBv biBkaWZmZXJlbnQgcG9ydHM/Cgo+ICsJaTNjX2h1Yl9kaXNhYmxlX3BvcnQoY29udHJvbGxlcik7 Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQoKWyAuLi4gXQoKPiArc3RhdGljIGludCBpM2NfaHVi X21hc3Rlcl9wcml2X3hmZXJzKHN0cnVjdCBpM2NfZGV2X2Rlc2MgKmRldiwKPiArCQkJCSAgICAg c3RydWN0IGkzY194ZmVyICp4ZmVycywKPiArCQkJCSAgICAgaW50IG54ZmVycywKPiArCQkJCSAg ICAgZW51bSBpM2NfeGZlcl9tb2RlIG1vZGUpCj4gK3sKClsgLi4uIF0KCj4gKwlpZiAoaHViX2Fk ZHIgIT0gdGFyZ2V0X2FkZHIpIHsKPiArCQlkb3duX3dyaXRlKCZwYXJlbnQtPmJ1cy5sb2NrKTsK PiArCQlodWJfZGV2LT5pbmZvLmR5bl9hZGRyID0gdGFyZ2V0X2FkZHI7Cj4gKwo+ICsJCXJldCA9 IGkzY19tYXN0ZXJfcmVhdHRhY2hfaTNjX2Rldl9sb2NrZWQoaHViX2RldiwgaHViX2FkZHIpOwo+ ICsJCXVwX3dyaXRlKCZwYXJlbnQtPmJ1cy5sb2NrKTsKPiArCQlpZiAocmV0KSB7Cj4gKwkJCWh1 Yl9kZXYtPmluZm8uZHluX2FkZHIgPSBodWJfYWRkcjsKPiArCQkJZ290byBkaXNhYmxlOwo+ICsJ CX0KPiArCX0KPiArCj4gKwlyZXQgPSBpM2NfZGV2aWNlX2RvX3hmZXJzKGh1Yi0+aHViX2Rldiwg eGZlcnMsIG54ZmVycywgbW9kZSk7CgpbU2V2ZXJpdHk6IENyaXRpY2FsXQpEb2VzIGRyb3BwaW5n IGBwYXJlbnQtPmJ1cy5sb2NrYCBiZWZvcmUgY2FsbGluZyBgaTNjX2RldmljZV9kb194ZmVycygp YCBleHBvc2UKYSByYWNlIGNvbmRpdGlvbj8gCgpJZiBtdWx0aXBsZSBkb3duc3RyZWFtIHBvcnRz IGluaXRpYXRlIHRyYW5zZmVycyBjb25jdXJyZW50bHksIGNvdWxkIHRoZXkKb3ZlcndyaXRlIHRo ZSBzaGFyZWQgYGh1Yl9kZXYtPmluZm8uZHluX2FkZHJgIGJlZm9yZSB0aGUgdHJhbnNmZXIgY29t cGxldGVzLApjYXVzaW5nIHBhY2tldHMgdG8gYmUgcm91dGVkIHRvIHRoZSB3cm9uZyBwaHlzaWNh bCBkZXZpY2U/Cgo+ICsKPiArCWlmIChodWJfYWRkciAhPSB0YXJnZXRfYWRkcikgewo+ICsJCWRv d25fd3JpdGUoJnBhcmVudC0+YnVzLmxvY2spOwo+ICsJCWh1Yl9kZXYtPmluZm8uZHluX2FkZHIg PSBodWJfYWRkcjsKPiArCj4gKwkJeGZlcl9yZXQgPSBpM2NfbWFzdGVyX3JlYXR0YWNoX2kzY19k ZXZfbG9ja2VkKGh1Yl9kZXYsCj4gKwkJCQkJCQkgICAgICB0YXJnZXRfYWRkcik7CgpbU2V2ZXJp dHk6IENyaXRpY2FsXQpDb3VsZCBwYXNzaW5nIGB0YXJnZXRfYWRkcmAgYXMgdGhlIG9sZCBhZGRy ZXNzIGNvcnJ1cHQgdGhlIHBhcmVudCBidXMgc3RhdGU/CgpgaTNjX21hc3Rlcl9yZWF0dGFjaF9p M2NfZGV2X2xvY2tlZCgpYCBmcmVlcyB0aGUgb2xkIGFkZHJlc3Mgc2xvdCBpbiB0aGUgYnVzCnNs b3QgbWFwLiBXaWxsIHRoaXMgZXJyb25lb3VzbHkgbWFyayBgdGFyZ2V0X2FkZHJgIGFzIGBJM0Nf QUREUl9TTE9UX0ZSRUVgCm9uIHRoZSBwYXJlbnQgYnVzPwoKPiArCj4gKwkJdXBfd3JpdGUoJnBh cmVudC0+YnVzLmxvY2spOwo+ICsJCWlmICghcmV0KQo+ICsJCQlyZXQgPSB4ZmVyX3JldDsKPiAr CX0KPiArZGlzYWJsZToKPiArCWkzY19odWJfZGlzYWJsZV9wb3J0KGNvbnRyb2xsZXIpOwo+ICsJ cmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBpM2NfaHViX2F0dGFjaF9pMmNfZGV2 KHN0cnVjdCBpMmNfZGV2X2Rlc2MgKmRldikKPiArewo+ICsJcmV0dXJuIDA7Cj4gK30KClsgLi4u IF0KCj4gK3N0YXRpYyBpbnQgaTNjX2h1Yl9pMmNfeGZlcnMoc3RydWN0IGkyY19kZXZfZGVzYyAq ZGV2LAo+ICsJCQkgICAgIHN0cnVjdCBpMmNfbXNnICp4ZmVycywgaW50IG54ZmVycykKPiArewo+ ICsJcmV0dXJuIC1FT1BOT1RTVVBQOwo+ICt9CgpbU2V2ZXJpdHk6IE1lZGl1bV0KSXMgaXQgaW50 ZW50aW9uYWwgdG8gcmV0dXJuIGAwYCBmcm9tIGBpM2NfaHViX2F0dGFjaF9pMmNfZGV2KClgIHdo aWxlIHJlamVjdGluZwphbGwgSTJDIHRyYW5zZmVycyB3aXRoIGAtRU9QTk9UU1VQUGA/IAoKV291 bGQgaXQgYmUgc2FmZXIgdG8gcmV0dXJuIGFuIGVycm9yIGZyb20gdGhlIGF0dGFjaCBjYWxsYmFj ayB0byBjbGVhbmx5CnByZXZlbnQgSTJDIGRyaXZlciBiaW5kaW5nIGlmIHRoZSBodWIgZG9lcyBu b3Qgc3VwcG9ydCBJMkMgZm9yd2FyZGluZz8KClsgLi4uIF0KCj4gK3N0YXRpYyBpbnQgaTNjX2h1 Yl9tYXN0ZXJfc2VuZF9jY2NfY21kKHN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKmNvbnRy b2xsZXIsCj4gKwkJCQkgICAgICAgc3RydWN0IGkzY19jY2NfY21kICpjbWQpCj4gK3sKPiArCXN0 cnVjdCBpM2NfaHViX2NvbnRyb2xsZXIgKmh1Yl9jb250cm9sbGVyOwo+ICsJc3RydWN0IGkzY19o dWIgKmh1YjsKPiArCj4gKwlodWJfY29udHJvbGxlciA9IGRldl9nZXRfZHJ2ZGF0YSgmY29udHJv bGxlci0+ZGV2KTsKPiArCWlmICghaHViX2NvbnRyb2xsZXIgfHwgIWh1Yl9jb250cm9sbGVyLT5o dWIpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJaHViID0gaHViX2NvbnRyb2xsZXItPmh1 YjsKPiArCj4gKwlpZiAoIWh1Yi0+aHViX2RldikKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4g KwlpZiAoY21kLT5pZCA9PSBJM0NfQ0NDX1JTVERBQSh0cnVlKSkKPiArCQlyZXR1cm4gMDsKCltT ZXZlcml0eTogSGlnaF0KRG9lcyBzaWxlbnRseSBkcm9wcGluZyB0aGUgYnJvYWRjYXN0IFJTVERB QSBjb21tYW5kIHByZXZlbnQgZG93bnN0cmVhbSBkZXZpY2VzCmZyb20gYmVpbmcgY29ycmVjdGx5 IHJlc2V0IGJ5IHRoZSBodWI/IAoKSWYgdGhlIGNvbW1hbmQgaXMgZHJvcHBlZCBpbnN0ZWFkIG9m IGJlaW5nIGZvcndhcmRlZCB0byB0aGUgZG93bnN0cmVhbSBwb3J0cywKd2lsbCBkZXZpY2VzIHJl dGFpbiB0aGVpciBvbGQgZHluYW1pYyBhZGRyZXNzZXMgYW5kIGZhaWwgdG8gcmUtaW5pdGlhbGl6 ZQpkdXJpbmcgaG90LXBsdWcgcmVjb3Zlcnk/Cgo+ICsKPiArCXJldHVybiBpM2NfaHViX3NlbmRf Y2NjX2NtZChodWIsIGNvbnRyb2xsZXIsIGNtZCk7Cj4gK30KClsgLi4uIF0KCj4gK3N0YXRpYyBp bnQgaTNjX2h1Yl9yZXF1ZXN0X2liaShzdHJ1Y3QgaTNjX2Rldl9kZXNjICpkZXNjLAo+ICsJCQkg ICAgICAgY29uc3Qgc3RydWN0IGkzY19pYmlfc2V0dXAgKnJlcSkKPiArewoKWyAuLi4gXQoKPiAr CXJldCA9IGkzY19tYXN0ZXJfZGlyZWN0X2F0dGFjaF9pM2NfZGV2X2xvY2tlZChwYXJlbnQsIGRl c2MpOwo+ICsJaWYgKHJldCkgewo+ICsJCWkzY19odWJfdXBkYXRlX2Rlc2NfcGFyZW50KCZkZXNj LT5jb21tb24sIG9yaWdfcGFyZW50KTsKPiArCQl1cF93cml0ZSgmcGFyZW50LT5idXMubG9jayk7 Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlrZnJlZShkZXNjLT5pYmkpOwoKW1NldmVy aXR5OiBDcml0aWNhbF0KRG9lcyBmcmVlaW5nIGBkZXNjLT5pYmlgIGhlcmUgbGVhayBgZGVzYy0+ aWJpLT53cWA/CgpXaGVuIHRoZSBjb3JlIGZ1bmN0aW9uIGBpM2NfZGV2X3JlcXVlc3RfaWJpX2xv Y2tlZCgpYCBhbGxvY2F0ZXMgYGliaWAsIGl0IGFsc28KYWxsb2NhdGVzIGBpYmktPndxYC4gCgpB bHNvLCBpZiB0aGUgaW5uZXIgY2FsbCB0byBgaTNjX2Rldl9yZXF1ZXN0X2liaV9sb2NrZWQoKWAg ZmFpbHMsIHRoaXMgZnVuY3Rpb24KcmV0dXJucyBhbiBlcnJvciB0byB0aGUgb3JpZ2luYWwgY29y ZSBjYWxsZXIuIFdpbGwgdGhlIG91dGVyIGNhbGxlcidzIGVycm9yCnBhdGggZXhlY3V0ZSBga2Zy ZWUoaWJpKWAgb24gaXRzIGxvY2FsIHZhcmlhYmxlLCByZXN1bHRpbmcgaW4gYSBkb3VibGUtZnJl ZQpzaW5jZSBpdCB3YXMgYWxyZWFkeSBmcmVlZCBoZXJlPwoKPiArCWRlc2MtPmliaSA9IE5VTEw7 Cj4gKwlyZXQgPSBpM2NfZGV2X3JlcXVlc3RfaWJpX2xvY2tlZChkZXNjLCByZXEpOwo+ICsJaWYg KHJldCkKPiArCQlpM2NfbWFzdGVyX2RpcmVjdF9kZXRhY2hfaTNjX2Rldl9sb2NrZWQoZGVzYyk7 Cj4gKwo+ICsJaTNjX2h1Yl91cGRhdGVfZGVzY19wYXJlbnQoJmRlc2MtPmNvbW1vbiwgb3JpZ19w YXJlbnQpOwo+ICsKPiArCXVwX3dyaXRlKCZwYXJlbnQtPmJ1cy5sb2NrKTsKPiArCj4gKwlyZXR1 cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpM2NfaHViX2ZyZWVfaWJpKHN0cnVjdCBp M2NfZGV2X2Rlc2MgKmRlc2MpCj4gK3sKClsgLi4uIF0KCj4gKwlpM2NfaHViX2VuYWJsZV9wb3J0 KGNvbnRyb2xsZXIpOwo+ICsKPiArCWRvd25fd3JpdGUoJnBhcmVudC0+YnVzLmxvY2spOwo+ICsJ b3JpZ19wYXJlbnQgPSBpM2NfaHViX3VwZGF0ZV9kZXNjX3BhcmVudCgmZGVzYy0+Y29tbW9uLCBw YXJlbnQpOwo+ICsJaTNjX21hc3Rlcl9kaXJlY3RfZGV0YWNoX2kzY19kZXZfbG9ja2VkKGRlc2Mp Owo+ICsJaTNjX2Rldl9mcmVlX2liaV9sb2NrZWQoZGVzYyk7CgpbU2V2ZXJpdHk6IENyaXRpY2Fs XQpDYW4gdGhpcyByZWN1cnNpdmUgY2FsbCB0byBgaTNjX2Rldl9mcmVlX2liaV9sb2NrZWQoZGVz YylgIGNhdXNlIGEgbnVsbApwb2ludGVyIGRlcmVmZXJlbmNlPwoKV2hlbiB0aGUgY29yZSBpbml0 aWFsbHkgY2FsbHMgYGkzY19kZXZfZnJlZV9pYmlfbG9ja2VkKGRlc2MpYCwgaXQgaW52b2tlcwp0 aGlzIGh1YiBjYWxsYmFjay4gVGhlIGlubmVyIGNhbGwgaGVyZSBzdWNjZXNzZnVsbHkgZnJlZXMg YGRlc2MtPmliaWAgYW5kIHNldHMKaXQgdG8gbnVsbC4gCgpXaGVuIGNvbnRyb2wgcmV0dXJucyB0 byB0aGUgb3V0ZXIgY29yZSBmdW5jdGlvbiwgaXQgdW5jb25kaXRpb25hbGx5IGV2YWx1YXRlczoK CiAgICBpZiAoZGV2LT5pYmktPndxKSB7CgpXaWxsIHRoaXMgaW1tZWRpYXRlbHkgZGVyZWZlcmVu Y2UgdGhlIG51bGwgcG9pbnRlcj8KCj4gKwlpM2NfaHViX3VwZGF0ZV9kZXNjX3BhcmVudCgmZGVz Yy0+Y29tbW9uLCBvcmlnX3BhcmVudCk7Cj4gKwl1cF93cml0ZSgmcGFyZW50LT5idXMubG9jayk7 Cj4gKwo+ICsJaTNjX2h1Yl9kaXNhYmxlX3BvcnQoY29udHJvbGxlcik7Cj4gK30KClsgLi4uIF0K Cj4gK3N0YXRpYyB2b2lkIGkzY19odWJfcmVjeWNsZV9pYmlfc2xvdChzdHJ1Y3QgaTNjX2Rldl9k ZXNjICpkZXNjLAo+ICsJCQkJICAgICBzdHJ1Y3QgaTNjX2liaV9zbG90ICpzbG90KQo+ICt7Cj4g K30KCltTZXZlcml0eTogQ3JpdGljYWxdCkRvZXMgbGVhdmluZyB0aGlzIGZ1bmN0aW9uIGVtcHR5 IHBlcm1hbmVudGx5IGxlYWsgaGFyZHdhcmUgSUJJIHNsb3RzPwoKV2hlbiB0aGUgY29yZSBmaW5p c2hlcyBwcm9jZXNzaW5nIGFuIElCSSwgaXQgcmV0dXJucyB0aGUgc2xvdCB0byB0aGUgdmlydHVh bApjb250cm9sbGVyLiBCZWNhdXNlIHRoaXMgZG9lc24ndCBmb3J3YXJkIHRoZSByZWN5Y2xlIHJl cXVlc3QgdG8gdGhlIHBhcmVudApoYXJkd2FyZSBjb250cm9sbGVyLCB3aWxsIHRoZSBwYXJlbnQg Y29udHJvbGxlciBldmVudHVhbGx5IGV4aGF1c3QgaXRzIGhhcmR3YXJlCnNsb3RzIGFuZCBwZXJt YW5lbnRseSBzdG9wIHByb2Nlc3NpbmcgSUJJcz8KCi0tIApTYXNoaWtvIEFJIHJldmlldyDCtyBo dHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjA2MTcxMTAzNTUuMTU5MTg0NC0xLWxh a3NoYXkucGlwbGFuaUBueHAuY29tP3BhcnQ9NQoKLS0gCmxpbnV4LWkzYyBtYWlsaW5nIGxpc3QK bGludXgtaTNjQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1pM2MK