From: sashiko-bot@kernel.org
To: "Michael Zaidman" <michael.zaidman@gmail.com>
Cc: linux-input@vger.kernel.org, linux-serial@vger.kernel.org,
linux-gpio@vger.kernel.org, dmitry.torokhov@gmail.com
Subject: Re: [PATCH v3 16/16] HID: ft260: use lock guards
Date: Sat, 14 Nov 2026 23:21:37 +0000 [thread overview]
Message-ID: <sashiko-outbox-215102@kernel.org> (raw)
In-Reply-To: <20261114230800.1344401-17-michael.zaidman@gmail.com>
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Low] HID: ft260: mixing guard(mutex) with goto cleanup in xfer
functions
--
commit 27addf69822143f9d183be5b9b500ff0df6b356b
Author: Michael Zaidman <michael.zaidman@gmail.com>
HID: ft260: use lock guards
This commit converts mutex_lock() and mutex_unlock() pairs in hid-ft260 to
guard(mutex) and scoped_guard(mutex, ...).
> diff --git a/drivers/hid/hid-ft260.c b/drivers/hid/hid-ft260.c
> index 53321c8d70fd0..716b37cead7dc 100644
> --- a/drivers/hid/hid-ft260.c
> +++ b/drivers/hid/hid-ft260.c
[ ... ]
> @@ -1034,12 +1031,11 @@ static int ft260_i2c_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs,
> struct ft260_device *dev = i2c_get_adapdata(adapter);
> struct hid_device *hdev = dev->hdev;
>
> - mutex_lock(&dev->lock);
> + guard(mutex)(&dev->lock);
>
> ret = hid_hw_power(hdev, PM_HINT_FULLON);
> if (ret < 0) {
> hid_err(hdev, "failed to enter FULLON power mode: %d\n", ret);
> - mutex_unlock(&dev->lock);
> return ret;
> }
>
> @@ -1063,7 +1059,6 @@ static int ft260_i2c_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs,
> ret = num;
> i2c_exit:
> hid_hw_power(hdev, PM_HINT_NORMAL);
> - mutex_unlock(&dev->lock);
> return ret;
> }
>
> @@ -1077,12 +1072,11 @@ static int ft260_smbus_xfer(struct i2c_adapter *adapter, u16 addr, u16 flags,
>
> ft260_dbg("smbus size %d\n", size);
>
> - mutex_lock(&dev->lock);
> + guard(mutex)(&dev->lock);
>
> ret = hid_hw_power(hdev, PM_HINT_FULLON);
> if (ret < 0) {
> hid_err(hdev, "power management error: %d\n", ret);
> - mutex_unlock(&dev->lock);
> return ret;
> }
>
> @@ -1190,7 +1184,6 @@ static int ft260_smbus_xfer(struct i2c_adapter *adapter, u16 addr, u16 flags,
>
> smbus_exit:
> hid_hw_power(hdev, PM_HINT_NORMAL);
> - mutex_unlock(&dev->lock);
> return ret;
> }
[Severity: Low]
This isn't a bug, but ft260_i2c_xfer() and ft260_smbus_xfer() now mix
guard(mutex) with goto-based cleanup at the i2c_exit and smbus_exit labels,
contrary to the cleanup.h convention of not mixing scope-based cleanup with
goto unwinding in the same function.
In ft260_i2c_xfer(), the i2c_exit label can be dropped by calling
hid_hw_power(hdev, PM_HINT_NORMAL) after the if/else block and returning
ret < 0 ? ret : num, while ft260_smbus_xfer() could either factor the
transfer switch into a helper or keep explicit mutex_lock() and
mutex_unlock() alongside smbus_exit.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261114230800.1344401-1-michael.zaidman@gmail.com?part=16
prev parent reply other threads:[~2026-11-14 23:21 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-14 23:07 [PATCH v3 00/16] HID: ft260: add UART and GPIO support, plus I2C fixes Michael Zaidman
2026-11-14 23:07 ` [PATCH v3 01/16] HID: ft260: add serial driver Michael Zaidman
2026-11-14 23:07 ` [PATCH v3 02/16] HID: ft260: uart: fix the " Michael Zaidman
2026-11-14 23:07 ` [PATCH v3 03/16] HID: ft260: add GPIO support Michael Zaidman
2026-11-14 23:25 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 04/16] HID: ft260: i2c: reduce driver module loading time Michael Zaidman
2026-11-14 23:12 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 05/16] HID: ft260: fix sysfs store failure notice for big numbers Michael Zaidman
2026-11-14 23:17 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 06/16] HID: ft260: i2c: reduce bus-error message severity Michael Zaidman
2026-11-14 23:12 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 07/16] HID: ft260: uart: enable flow control Michael Zaidman
2026-11-14 23:19 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 08/16] HID: ft260: uart: add modem pins control via ioctl Michael Zaidman
2026-11-14 23:20 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 09/16] HID: ft260: group sysfs attrs per HID interface Michael Zaidman
2026-11-14 23:14 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 10/16] HID: ft260: i2c: fix large write transaction failure Michael Zaidman
2026-11-14 23:12 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 11/16] HID: ft260: workaround for TN_189 errata endpoint STALL after enumeration Michael Zaidman
2026-11-14 23:07 ` [PATCH v3 12/16] HID: ft260: i2c: abort in-flight transfers with STOP before reset Michael Zaidman
2026-11-14 23:16 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 13/16] HID: ft260: i2c: reject an I2C clock outside the supported range Michael Zaidman
2026-11-14 23:15 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 14/16] HID: ft260: i2c: fix i2c_reset sysfs store return value Michael Zaidman
2026-11-14 23:15 ` sashiko-bot
2026-11-14 23:07 ` [PATCH v3 15/16] HID: ft260: i2c: recover a bus held by a slave Michael Zaidman
2026-11-14 23:25 ` sashiko-bot
2026-11-14 23:08 ` [PATCH v3 16/16] HID: ft260: use lock guards Michael Zaidman
2026-11-14 23:21 ` sashiko-bot [this message]
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=sashiko-outbox-215102@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=michael.zaidman@gmail.com \
--cc=sashiko-reviews@lists.linux.dev \
/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.