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 E423EC43458 for ; Fri, 3 Jul 2026 11:06:41 +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=+AUYf4nVHOjO+A8xjeoRAslCR+7rRB9QvOHcV8MlE3g=; b=yi/cbazT2ecJtP g3UMCpjCkUHoEtK6YvLb8j3qBUnf1tpjJEzVmjjH+ibJi9BIgMli+rvXmFgjQF4hgdw9pO3fEIjow MuSufTpXTigWmKbdY8APm57po6O3XUyeZTboxtsxpJ+5YuFu//0maMQTPqtwbg7+So+gOyPT10Sn2 rJhflr5AnmFpi5aigy4zbF+amD0nM6Sgeq1MkWHj12iVKOv7NVQOoNtWwUDdXcRst7f4AROTcf1O7 OMs/9dud8th5753HrC/b9ZLfstkINi2rHpZdDSZYfanoi4GqcTXcGP33b+0b0pBv8xZcT1t8wQdby wYk4sct7iVRqt/IA8AJA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wfbjF-00000006mTb-2mWs; Fri, 03 Jul 2026 11:06:41 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wfbjE-00000006mTS-2Pn8 for linux-i3c@lists.infradead.org; Fri, 03 Jul 2026 11:06:40 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id E333341B67; Fri, 3 Jul 2026 11:06:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 748421F000E9; Fri, 3 Jul 2026 11:06:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783076799; bh=DSI1frzYQEZ9/cAbNsXxD+2xVyGDPTz5LWKgW9a8/4Y=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=UouzQ2/fRHsHtPOZKD/xEgYaQv6albt8qqj+vI+MYy9pFAAzlM9yf06OYxEa7rL2T dgRQHAwWdOUdNOWkAhtulb/8NARhzwY6wEAGuVPxR7r6WRcb2/vTXAcVp07IYhzEwL rEgk8R30bac5JfT2uU7OdlWIjox5cFai9oXh8aosClIY3lyR0epli7LzKZi7J9wmme CsZZoAO4m2nFyb319YhEvE3zsez8LVYEJIeZT8p/D0qsi/PX2DjxkrY8aY5RvYDgz8 Q5hvWGOIQdgLUpoLNwgREk2ZKi/I5TI8+lZh1uDu00peOIZLeZng2dZVE142H2W0ga 0v6muiACjtnag== From: sashiko-bot@kernel.org Subject: Re: [PATCH v5 2/5] i3c: master: Report actual GET CCC payload length on success To: tze.yee.ng@altera.com Cc: imx@lists.linux.dev, Frank.Li@kernel.org, linux-i3c@lists.infradead.org, "Alexandre Belloni" In-Reply-To: References: Date: Fri, 03 Jul 2026 11:06:38 +0000 Message-Id: <20260703110639.748421F000E9@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 MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIEFESSBhbmQgQ2FkZW5j ZSBJM0MgbWFzdGVyIGRyaXZlcnMgc3Bvb2YgYWN0dWFsX2xlbiwgaGlkaW5nIHNob3J0IHJlYWRz IGFuZCBieXBhc3NpbmcgY29yZSB2YWxpZGF0aW9uLgotIFtIaWdoXSBSZW5lc2FzIEkzQyBtYXN0 ZXIgZHJpdmVyIGxlYXZlcyByeF9jb3VudCBhdCAwIGZvciBzbWFsbCB0cmFuc2ZlcnMsIGJyZWFr aW5nIGRldmljZSBlbnVtZXJhdGlvbi4KLS0KCmNvbW1pdCBiYzYzODM2MTM4ZGVlZDI2ZjJhMzMy YTBjNWUxOWY0YWMwODhkNGFiCkF1dGhvcjogQWRyaWFuIE5nIEhvIFlpbiA8YWRyaWFuLmhvLnlp bi5uZ0BhbHRlcmEuY29tPgoKaTNjOiBtYXN0ZXI6IFJlcG9ydCBhY3R1YWwgR0VUIENDQyBwYXls b2FkIGxlbmd0aCBvbiBzdWNjZXNzCiAgICAKU2V0IGRlc3RzW10ucGF5bG9hZC5hY3R1YWxfbGVu IG9uIHN1Y2Nlc3NmdWwgR0VUIENDQyB0cmFuc2ZlcnMgaW4gSTNDCm1hc3RlciBkcml2ZXJzIHNv IHRoZSBjb3JlIGNhbiBkaXN0aW5ndWlzaCByZXF1ZXN0ZWQgYW5kIHJlY2VpdmVkCmJ1ZmZlciBs ZW5ndGhzLiBTd2l0Y2ggY29yZSBHRVQgaGVscGVycyB0byB1c2UgYWN0dWFsX2xlbiBpbnN0ZWFk IG9mCmxlbiB3aGVuIGludGVycHJldGluZyBHRVQgQ0NDIHJlc3VsdHMuCgpbIC4uLiBdCgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2kzYy9tYXN0ZXIvYWRpLWkzYy1tYXN0ZXIuYyBiL2RyaXZlcnMv aTNjL21hc3Rlci9hZGktaTNjLW1hc3Rlci5jCj4gaW5kZXggMDQ3MDgxYzlmMDY0My4uNjQ3MzVi NDg4NzI2MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2kzYy9tYXN0ZXIvYWRpLWkzYy1tYXN0ZXIu Ywo+ICsrKyBiL2RyaXZlcnMvaTNjL21hc3Rlci9hZGktaTNjLW1hc3Rlci5jClsgLi4uIF0KPiBA QCAtMzYwLDYgKzM2MCw4IEBAIHN0YXRpYyBpbnQgYWRpX2kzY19tYXN0ZXJfc2VuZF9jY2NfY21k KHN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKm0sCj4gIAkJYWRpX2kzY19tYXN0ZXJfdW5x dWV1ZV94ZmVyKG1hc3RlciwgeGZlcik7Cj4gIAo+ICAJY21kLT5lcnIgPSBhZGlfaTNjX2NtZF9n ZXRfZXJyKCZ4ZmVyLT5jbWRzWzBdKTsKPiArCWlmICgheGZlci0+cmV0ICYmIGNtZC0+cm53KQo+ ICsJCWNtZC0+ZGVzdHNbMF0ucGF5bG9hZC5hY3R1YWxfbGVuID0gY21kLT5kZXN0c1swXS5wYXls b2FkLmxlbjsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIHVuY29uZGl0aW9uYWxseSBzZXQg YWN0dWFsX2xlbiB0byB0aGUgcmVxdWVzdGVkIGxlbmd0aCwgZGlzY2FyZGluZwp0aGUgdHJ1ZSBo YXJkd2FyZSB0cmFuc2ZlciBzaXplPwoKQnkgYmxpbmRseSBjb3B5aW5nIHRoZSByZXF1ZXN0ZWQg bGVuZ3RoIGhlcmUsIGl0IHNlZW1zIHRoaXMgZGVmZWF0cyB0aGUgbmV3IEdFVApDQ0MgdmFsaWRh dGlvbiBsb2dpYy4gSWYgYSBkZXZpY2UgcmV0dXJucyAwIGJ5dGVzIG9yIGEgc2hvcnQgcmVhZCwg dGhlIGNvcmUKdmFsaWRhdGlvbiBjb3VsZCBmYWxzZWx5IHBhc3MsIHBvdGVudGlhbGx5IGNhdXNp bmcgdGhlIGtlcm5lbCB0byBwYXJzZQp1bmluaXRpYWxpemVkIG9yIHplcm8tcGFkZGVkIG1lbW9y eSBhcyB2YWxpZCBkZXZpY2UgY2FwYWJpbGl0aWVzLgoKPiAgCj4gIAlyZXR1cm4geGZlci0+cmV0 Owo+ICB9ClsgLi4uIF0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pM2MvbWFzdGVyL2kzYy1tYXN0 ZXItY2Rucy5jIGIvZHJpdmVycy9pM2MvbWFzdGVyL2kzYy1tYXN0ZXItY2Rucy5jCj4gaW5kZXgg NmQyMjE1OTZlYTM1Ny4uMzY5OThlZTQwNzNkNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2kzYy9t YXN0ZXIvaTNjLW1hc3Rlci1jZG5zLmMKPiArKysgYi9kcml2ZXJzL2kzYy9tYXN0ZXIvaTNjLW1h c3Rlci1jZG5zLmMKWyAuLi4gXQo+IEBAIC03MTQsNiArNzE0LDggQEAgc3RhdGljIGludCBjZG5z X2kzY19tYXN0ZXJfc2VuZF9jY2NfY21kKHN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKm0s Cj4gIAo+ICAJcmV0ID0geGZlci0+cmV0Owo+ICAJY21kLT5lcnIgPSBjZG5zX2kzY19jbWRfZ2V0 X2VycigmeGZlci0+Y21kc1swXSk7Cj4gKwlpZiAoIXJldCAmJiBjbWQtPnJudykKPiArCQljbWQt PmRlc3RzWzBdLnBheWxvYWQuYWN0dWFsX2xlbiA9IGNtZC0+ZGVzdHNbMF0ucGF5bG9hZC5sZW47 CgpbU2V2ZXJpdHk6IEhpZ2hdClNpbWlsYXIgdG8gdGhlIEFESSBkcml2ZXIsIGRvZXMgdGhpcyBi eXBhc3MgdGhlIGNvcmUgdmFsaWRhdGlvbiBieQp1bmNvbmRpdGlvbmFsbHkgY29weWluZyB0aGUg cmVxdWVzdGVkIGxlbmd0aD8KCklmIGEgc2hvcnQgcmVhZCBvY2N1cnMsIHRoZSBkcml2ZXIgd2ls bCBpbmNvcnJlY3RseSByZXBvcnQgYSBmdWxsIHJlYWQgaW5zdGVhZApvZiB0aGUgYWN0dWFsIGhh cmR3YXJlIGJ5dGUgY291bnQuCgo+ICAJY2Ruc19pM2NfbWFzdGVyX2ZyZWVfeGZlcih4ZmVyKTsK PiAgCj4gIAlyZXR1cm4gcmV0OwpbIC4uLiBdCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTNjL21h c3Rlci9yZW5lc2FzLWkzYy5jIGIvZHJpdmVycy9pM2MvbWFzdGVyL3JlbmVzYXMtaTNjLmMKPiBp bmRleCBmMzljNDQ5OTIyY2EyLi5mZWM2MTQ3MDA4NDNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv aTNjL21hc3Rlci9yZW5lc2FzLWkzYy5jCj4gKysrIGIvZHJpdmVycy9pM2MvbWFzdGVyL3JlbmVz YXMtaTNjLmMKWyAuLi4gXQo+IEBAIC04MDUsNiArODA1LDggQEAgc3RhdGljIGludCByZW5lc2Fz X2kzY19zZW5kX2NjY19jbWQoc3RydWN0IGkzY19tYXN0ZXJfY29udHJvbGxlciAqbSwKPiAgCXJl dCA9IHhmZXItPnJldDsKPiAgCWlmIChyZXQpCj4gIAkJY2NjLT5lcnIgPSBJM0NfRVJST1JfTTI7 Cj4gKwllbHNlIGlmIChjY2MtPnJudykKPiArCQljY2MtPmRlc3RzWzBdLnBheWxvYWQuYWN0dWFs X2xlbiA9IGNtZC0+cnhfY291bnQ7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBsZWF2ZSBh Y3R1YWxfbGVuIGF0IDAgZm9yIHNtYWxsIHRyYW5zZmVycywgYnJlYWtpbmcgZGV2aWNlCmVudW1l cmF0aW9uPwoKRm9yIHNtYWxsIEdFVCBDQ0MgcmVhZHMsIGlmIHRoZSByZWFkIGJ1ZmZlciBmdWxs IGludGVycnVwdCBkb2Vzbid0CnRyaWdnZXIsIHRoZSB0cmFuc2ZlciBjb21wbGV0ZXMgaW4gcmVu ZXNhc19pM2NfcmVzcF9pc3IoKSB3aGVyZSBpdCBkcmFpbnMgdGhlCnJlbWFpbmluZyBieXRlcyBm cm9tIHRoZSBGSUZPIGJ1dCBkb2Vzbid0IGFjY3VtdWxhdGUgYnl0ZXNfcmVtYWluaW5nIGludG8K Y21kLT5yeF9jb3VudDoKCmRyaXZlcnMvaTNjL21hc3Rlci9yZW5lc2FzLWkzYy5jOnJlbmVzYXNf aTNjX3Jlc3BfaXNyKCkgewogICAgLi4uCiAgICBieXRlc19yZW1haW5pbmcgPSBkYXRhX2xlbiAt IGNtZC0+cnhfY291bnQ7CiAgICBpM2NfcmVhZGxfZmlmbyhpM2MtPnJlZ3MgKyBOVERUQlAwLCBj bWQtPnJ4X2J1ZiwgYnl0ZXNfcmVtYWluaW5nKTsKICAgIC4uLgp9CgpTaW5jZSBjbWQtPnJ4X2Nv dW50IHJlbWFpbnMgMCwgd29uJ3QgdGhpcyBwcm9wYWdhdGUgYW4gYWN0dWFsX2xlbiBvZiAwIHRv IHRoZQpjb3JlLCBjYXVzaW5nIHRoZSBjb3JlIHZhbGlkYXRpb24gdG8gcmVqZWN0IHRoZSB0cmFu c2ZlciB3aXRoIC1FSU8/Cgo+ICAKPiAgCXJldHVybiByZXQ7Cj4gIH0KCi0tIApTYXNoaWtvIEFJ IHJldmlldyDCtyBodHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvY292ZXIuMTc4MzA3NDg1 MC5naXQudHplLnllZS5uZ0BhbHRlcmEuY29tP3BhcnQ9MgoKLS0gCmxpbnV4LWkzYyBtYWlsaW5n IGxpc3QKbGludXgtaTNjQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1pM2MK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA9CF3B8124 for ; Fri, 3 Jul 2026 11:06:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783076801; cv=none; b=F4Zn7yMT53n1IyL4Mj/njqYpNL2mOq9n1Ey1DypdQO4xEE3Qun4bvtaxOhWHmXstx2Hp1Z7gwrDwmRcX79qZEGI2wfJCuJvoEj6NddYNXCtYdT7m/pHbKUue92LEGCkChy9pkF4EjIuCP1id5Jqt2t1gMDElG9yZkf2PyS6Ze5s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783076801; c=relaxed/simple; bh=S1QhCSUz6Qo/MWP4sxF64RizscYS7Vl3rRqlFFZ15y8=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=sZgLG9t0AEHWLn0IEDKkWWQoLZpeuD5mbMdNqF6J8f+1DxDrguCe9kF5vkEgRNlDfR67wgIHA4GUxIopleTX3nTF8/Nc+I20TjxX9fP+WxOVkw/BgSndRyTP9kulRsrLT4FbKzTjyuhfCFQnKzxGtAoIIyPWhb2mYkYNCp4q2qQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UouzQ2/f; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UouzQ2/f" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 748421F000E9; Fri, 3 Jul 2026 11:06:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783076799; bh=DSI1frzYQEZ9/cAbNsXxD+2xVyGDPTz5LWKgW9a8/4Y=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=UouzQ2/fRHsHtPOZKD/xEgYaQv6albt8qqj+vI+MYy9pFAAzlM9yf06OYxEa7rL2T dgRQHAwWdOUdNOWkAhtulb/8NARhzwY6wEAGuVPxR7r6WRcb2/vTXAcVp07IYhzEwL rEgk8R30bac5JfT2uU7OdlWIjox5cFai9oXh8aosClIY3lyR0epli7LzKZi7J9wmme CsZZoAO4m2nFyb319YhEvE3zsez8LVYEJIeZT8p/D0qsi/PX2DjxkrY8aY5RvYDgz8 Q5hvWGOIQdgLUpoLNwgREk2ZKi/I5TI8+lZh1uDu00peOIZLeZng2dZVE142H2W0ga 0v6muiACjtnag== From: sashiko-bot@kernel.org Subject: Re: [PATCH v5 2/5] i3c: master: Report actual GET CCC payload length on success Reply-To: sashiko-reviews@lists.linux.dev To: tze.yee.ng@altera.com Cc: imx@lists.linux.dev, Frank.Li@kernel.org, linux-i3c@lists.infradead.org, "Alexandre Belloni" In-Reply-To: References: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 03 Jul 2026 11:06:38 +0000 Message-Id: <20260703110639.748421F000E9@smtp.kernel.org> Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 2 potential issue(= s) to consider: - [High] ADI and Cadence I3C master drivers spoof actual_len, hiding short = reads and bypassing core validation. - [High] Renesas I3C master driver leaves rx_count at 0 for small transfers= , breaking device enumeration. -- commit bc63836138deed26f2a332a0c5e19f4ac088d4ab Author: Adrian Ng Ho Yin i3c: master: Report actual GET CCC payload length on success =20 Set dests[].payload.actual_len on successful GET CCC transfers in I3C master drivers so the core can distinguish requested and received buffer lengths. Switch core GET helpers to use actual_len instead of len when interpreting GET CCC results. [ ... ] > diff --git a/drivers/i3c/master/adi-i3c-master.c b/drivers/i3c/master/adi= -i3c-master.c > index 047081c9f0643..64735b4887261 100644 > --- a/drivers/i3c/master/adi-i3c-master.c > +++ b/drivers/i3c/master/adi-i3c-master.c [ ... ] > @@ -360,6 +360,8 @@ static int adi_i3c_master_send_ccc_cmd(struct i3c_mas= ter_controller *m, > adi_i3c_master_unqueue_xfer(master, xfer); > =20 > cmd->err =3D adi_i3c_cmd_get_err(&xfer->cmds[0]); > + if (!xfer->ret && cmd->rnw) > + cmd->dests[0].payload.actual_len =3D cmd->dests[0].payload.len; [Severity: High] Does this unconditionally set actual_len to the requested length, discarding the true hardware transfer size? By blindly copying the requested length here, it seems this defeats the new= GET CCC validation logic. If a device returns 0 bytes or a short read, the core validation could falsely pass, potentially causing the kernel to parse uninitialized or zero-padded memory as valid device capabilities. > =20 > return xfer->ret; > } [ ... ] > diff --git a/drivers/i3c/master/i3c-master-cdns.c b/drivers/i3c/master/i3= c-master-cdns.c > index 6d221596ea357..36998ee4073d7 100644 > --- a/drivers/i3c/master/i3c-master-cdns.c > +++ b/drivers/i3c/master/i3c-master-cdns.c [ ... ] > @@ -714,6 +714,8 @@ static int cdns_i3c_master_send_ccc_cmd(struct i3c_ma= ster_controller *m, > =20 > ret =3D xfer->ret; > cmd->err =3D cdns_i3c_cmd_get_err(&xfer->cmds[0]); > + if (!ret && cmd->rnw) > + cmd->dests[0].payload.actual_len =3D cmd->dests[0].payload.len; [Severity: High] Similar to the ADI driver, does this bypass the core validation by unconditionally copying the requested length? If a short read occurs, the driver will incorrectly report a full read inst= ead of the actual hardware byte count. > cdns_i3c_master_free_xfer(xfer); > =20 > return ret; [ ... ] > diff --git a/drivers/i3c/master/renesas-i3c.c b/drivers/i3c/master/renesa= s-i3c.c > index f39c449922ca2..fec614700843f 100644 > --- a/drivers/i3c/master/renesas-i3c.c > +++ b/drivers/i3c/master/renesas-i3c.c [ ... ] > @@ -805,6 +805,8 @@ static int renesas_i3c_send_ccc_cmd(struct i3c_master= _controller *m, > ret =3D xfer->ret; > if (ret) > ccc->err =3D I3C_ERROR_M2; > + else if (ccc->rnw) > + ccc->dests[0].payload.actual_len =3D cmd->rx_count; [Severity: High] Does this leave actual_len at 0 for small transfers, breaking device enumeration? For small GET CCC reads, if the read buffer full interrupt doesn't trigger, the transfer completes in renesas_i3c_resp_isr() where it drains t= he remaining bytes from the FIFO but doesn't accumulate bytes_remaining into cmd->rx_count: drivers/i3c/master/renesas-i3c.c:renesas_i3c_resp_isr() { ... bytes_remaining =3D data_len - cmd->rx_count; i3c_readl_fifo(i3c->regs + NTDTBP0, cmd->rx_buf, bytes_remaining); ... } Since cmd->rx_count remains 0, won't this propagate an actual_len of 0 to t= he core, causing the core validation to reject the transfer with -EIO? > =20 > return ret; > } --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/cover.1783074850.gi= t.tze.yee.ng@altera.com?part=3D2