From: Greg KH <gregkh@linuxfoundation.org>
To: Eli Billauer <eli.billauer@gmail.com>
Cc: arnd@arndb.de, linux-kernel@vger.kernel.org, corbet@lwn.net
Subject: Re: [PATCH v3 1/7] char: xillybus: Improve control of execution flow with mutexes
Date: Fri, 31 Jul 2026 14:24:33 +0200 [thread overview]
Message-ID: <2026073126-sandpaper-passcode-f739@gregkh> (raw)
In-Reply-To: <20260724094302.50761-2-eli.billauer@gmail.com>
On Fri, Jul 24, 2026 at 11:42:56AM +0200, Eli Billauer wrote:
> This commit addresses two issues by using mutexes:
>
> (1) Add a mutex to protect the fifo_buf_order global variable. The
> purpose of this variable is avoid repeated failed calls to
> __get_free_pages() for allocating FIFO memory, when the chunk
> size was too big. However, if two drivers are initialized at the
> same time, fifo_init() may run in parallel, and fifo_buf_order
> may be reduced too much. This is a far-fetched scenario, now
> completely prevented by fifo_buf_order_mutex.
>
> (2) setup_channels() acquires process_in_mutex to prevent
> process_bulk_in() from accessing the xillyusb_dev struct. With
> correctly working hardware, process_bulk_in() is never called while
> setup_channels() runs, because the device has no reason to send data
> in that phase. The mutex ensures that process_bulk_in() does not
> touch the members that setup_channels() alters.
>
> There is no similar protection for data flow in the other direction,
> because during the setup process, the only outbound data is the
> BULK endpoint used for commands, and it remains untouched after its
> initial setup.
>
> Assisted-by: Deepseek:v4-pro Kimi:K2.6 ChatGPT:GPT-5.5 Claude:Sonnet-4.6
> Signed-off-by: Eli Billauer <eli.billauer@gmail.com>
> ---
>
> Notes:
> Changes v2->v3:
> -- Add Assisted-by tag to description
>
> No change on v1->v2.
>
> drivers/char/xillybus/xillyusb.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/char/xillybus/xillyusb.c b/drivers/char/xillybus/xillyusb.c
> index 34e7ad3bcab3..a28e6416cb01 100644
> --- a/drivers/char/xillybus/xillyusb.c
> +++ b/drivers/char/xillybus/xillyusb.c
> @@ -50,6 +50,7 @@ MODULE_LICENSE("GPL v2");
> static const char xillyname[] = "xillyusb";
>
> static unsigned int fifo_buf_order;
> +static DEFINE_MUTEX(fifo_buf_order_mutex);
> static struct workqueue_struct *wakeup_wq;
>
> #define USB_VENDOR_ID_XILINX 0x03fd
> @@ -375,6 +376,8 @@ static int fifo_init(struct xillyfifo *fifo,
>
> unsigned int log2_fifo_buf_size;
>
> + guard(mutex)(&fifo_buf_order_mutex);
Sashiko rightly complains that using guard() combined with goto in this
function is ripe for disaster. Are you sure the compiler will work
properly for this?
thanks,
greg k-h
next prev parent reply other threads:[~2026-07-31 12:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-24 9:42 [PATCH v3 0/7] char: xillybus: Harden driver and improve code quality Eli Billauer
2026-07-24 9:42 ` [PATCH v3 1/7] char: xillybus: Improve control of execution flow with mutexes Eli Billauer
2026-07-31 12:24 ` Greg KH [this message]
2026-07-24 9:42 ` [PATCH v3 2/7] char: xillybus: Remove duplicate error path code Eli Billauer
2026-07-31 12:25 ` Greg KH
2026-07-24 9:42 ` [PATCH v3 3/7] char: xillybus: Avoid possible bandwidth inefficiency Eli Billauer
2026-07-24 9:42 ` [PATCH v3 4/7] char: xillybus: Use unsigned arithmetic for jiffies differences Eli Billauer
2026-07-24 9:43 ` [PATCH v3 5/7] char: xillybus: Integer arithmetic improvements Eli Billauer
2026-07-24 9:43 ` [PATCH v3 6/7] char: xillybus: Add defensive sanity checks Eli Billauer
2026-07-24 9:43 ` [PATCH v3 7/7] char: xillybus: Ignore and report unsolicited interrupts Eli Billauer
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=2026073126-sandpaper-passcode-f739@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=arnd@arndb.de \
--cc=corbet@lwn.net \
--cc=eli.billauer@gmail.com \
--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.