From: Triet Hoang <triet.hoang.dev@gmail.com>
To: andi.shyti@kernel.org
Cc: bence98@sch.bme.hu, linux-i2c@vger.kernel.org,
linux-kernel@vger.kernel.org,
Triet Hoang <triet.hoang.dev@gmail.com>
Subject: [PATCH v3] i2c: cp2615: handle allocation failure
Date: Sat, 29 Aug 2026 11:22:07 +0700 [thread overview]
Message-ID: <20260829042207.27323-1-triet.hoang.dev@gmail.com> (raw)
Check the result of kzalloc_obj() and return -ENOMEM
when the allocation fails instead of passing a NULL pointer
to the message initialization helpers, which would return -EINVAL.
Also separate kzalloc_obj() calls from variable declarations.
Signed-off-by: Triet Hoang <triet.hoang.dev@gmail.com>
---
Changes in v2:
- Clarify the commit message to describe the actual behavior change.
- Fix coding style regression
Changes in v3:
- Separate kzalloc_obj() calls from variable declarations.
---
drivers/i2c/busses/i2c-cp2615.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/drivers/i2c/busses/i2c-cp2615.c b/drivers/i2c/busses/i2c-cp2615.c
index 951de6249834..62192e919744 100644
--- a/drivers/i2c/busses/i2c-cp2615.c
+++ b/drivers/i2c/busses/i2c-cp2615.c
@@ -124,10 +124,15 @@ static int cp2615_check_status(enum cp2615_i2c_status status)
static int
cp2615_i2c_send(struct usb_interface *usbif, struct cp2615_i2c_transfer *i2c_w)
{
- struct cp2615_iop_msg *msg = kzalloc_obj(*msg);
struct usb_device *usbdev = interface_to_usbdev(usbif);
- int res = cp2615_init_i2c_msg(msg, i2c_w);
+ struct cp2615_iop_msg *msg;
+ int res;
+
+ msg = kzalloc_obj(*msg);
+ if (!msg)
+ return -ENOMEM;
+ res = cp2615_init_i2c_msg(msg, i2c_w);
if (!res)
res = usb_bulk_msg(usbdev, usb_sndbulkpipe(usbdev, IOP_EP_OUT),
msg, ntohs(msg->length), NULL, 0);
@@ -171,11 +176,16 @@ cp2615_i2c_recv(struct usb_interface *usbif, unsigned char tag, void *buf)
/* Checks if the IOP is functional by querying the part's ID */
static int cp2615_check_iop(struct usb_interface *usbif)
{
- struct cp2615_iop_msg *msg = kzalloc_obj(*msg);
- struct cp2615_iop_accessory_info *info = (struct cp2615_iop_accessory_info *)&msg->data;
struct usb_device *usbdev = interface_to_usbdev(usbif);
- int res = cp2615_init_iop_msg(msg, iop_GetAccessoryInfo, NULL, 0);
+ struct cp2615_iop_msg *msg;
+ struct cp2615_iop_accessory_info *info;
+ int res;
+
+ msg = kzalloc_obj(*msg);
+ if (!msg)
+ return -ENOMEM;
+ res = cp2615_init_iop_msg(msg, iop_GetAccessoryInfo, NULL, 0);
if (res)
goto out;
@@ -194,6 +204,7 @@ static int cp2615_check_iop(struct usb_interface *usbif)
goto out;
}
+ info = (struct cp2615_iop_accessory_info *)&msg->data;
switch (ntohs(info->part_id)) {
case PART_ID_A01:
dev_dbg(&usbif->dev, "Found A01 part. (WARNING: errata exists!)\n");
--
2.53.0
next reply other threads:[~2026-08-29 4:22 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-29 4:22 Triet Hoang [this message]
2026-09-06 18:00 ` [PATCH v3] i2c: cp2615: handle allocation failure Markus Elfring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260829042207.27323-1-triet.hoang.dev@gmail.com \
--to=triet.hoang.dev@gmail.com \
--cc=andi.shyti@kernel.org \
--cc=bence98@sch.bme.hu \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.