From 0f636cfe8d93e1b36168d9524de44b33c42daaaf Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Sun, 27 Sep 2026 12:43:41 +0900 Subject: [PATCH] firewire: cdev: wake up client from queue_event() only when any event is available The in_shutdown member of client structure is set only when releasing file descriptor, thus no need to wake up the client itself. Link: https://lore.kernel.org/r/20260927034343.28076-3-o-takashi@sakamocchi.jp Signed-off-by: Takashi Sakamoto --- drivers/firewire/core-cdev.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c index 5c05cec0f8f8..d1188c101e84 100644 --- a/drivers/firewire/core-cdev.c +++ b/drivers/firewire/core-cdev.c @@ -338,13 +338,14 @@ static void queue_event(struct client *client, struct event *event, event->v[1].size = size1; scoped_guard(spinlock_irqsave, &client->lock) { - if (client->in_shutdown) + if (client->in_shutdown) { kfree(event); - else + } else { list_add_tail(&event->link, &client->event_list); - } - wake_up_interruptible(&client->wait); + wake_up_interruptible(&client->wait); + } + } } static int dequeue_event(struct client *client,