From: sashiko-bot@kernel.org
To: "Guenter Roeck" <linux@roeck-us.net>,
"Hardware Monitoring" <linux-hwmon@vger.kernel.org>
Subject: Re: [PATCH 1/2] hwmon: (gigabyte_waterforce) Make status_report_request_lock IRQ safe
Date: Sat, 31 Oct 2026 22:33:49 +0000 [thread overview]
Message-ID: <sashiko-outbox-192206@kernel.org> (raw)
In-Reply-To: <20261031223131.1855967-1-linux@roeck-us.net>
> waterforce_raw_event() is the HID ->raw_event() callback and acquires
> priv->status_report_request_lock with a plain spin_lock(), while
> waterforce_get_status() acquires the same lock with spin_lock_bh().
>
> Depending on the HID transport and USB host controller driver,
> waterforce_raw_event() can run in process context (e.g. via uhid with
> softirqs and hardirqs enabled), softirq context (USB HCDs using HCD_BH),
> or hard interrupt context (USB HCDs without HCD_BH, such as OHCI/UHCI).
>
> Because spin_lock_bh() in waterforce_get_status() leaves hard interrupts
> enabled, a hard-IRQ URB completion invoking waterforce_raw_event() on the
> same CPU will self-deadlock on status_report_request_lock. Likewise, a
> plain spin_lock() in waterforce_raw_event() when called from process
> context via uhid leaves both softirqs and hardirqs enabled, risking a
> self-deadlock if interrupted by softirq or hardirq raw-event delivery on
> the same CPU.
>
> Use spin_lock_irq() in waterforce_get_status(), which always runs in
> process context, and spin_lock_irqsave() in waterforce_raw_event(), which
> may run with interrupts either enabled or disabled.
>
> Reported-by: Sashiko <sashiko-bot@kernel.org>
> Fixes: 41c71105a845 ("hwmon: (gigabyte_waterforce) Mark status report as received under a spinlock")
> Cc: Aleksa Savic <savicaleksa83@gmail.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261031223131.1855967-1-linux@roeck-us.net?part=1
prev parent reply other threads:[~2026-10-31 22:33 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-31 22:31 [PATCH 1/2] hwmon: (gigabyte_waterforce) Make status_report_request_lock IRQ safe Guenter Roeck
2026-10-31 22:31 ` [PATCH 2/2] hwmon: (gigabyte_waterforce) Protect status report data with spinlock Guenter Roeck
2026-10-31 22:35 ` sashiko-bot
2026-10-31 22:33 ` 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-192206@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux@roeck-us.net \
--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.