This is a note to let you know that I've just added the patch titled can: isotp: handle wait_event_interruptible() return values to the 5.15-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: can-isotp-handle-wait_event_interruptible-return-values.patch and it can be found in the queue-5.15 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From stable-owner@xxxxxxxxxxxxxxx Tue Oct 31 10:30:57 2023 From: Oliver Hartkopp <socketcan@xxxxxxxxxxxx> Date: Tue, 31 Oct 2023 10:30:22 +0100 Subject: can: isotp: handle wait_event_interruptible() return values To: gregkh@xxxxxxxxxxxxxxxxxxx, stable@xxxxxxxxxxxxxxx, sashal@xxxxxxxxxx Cc: linux-can@xxxxxxxxxxxxxxx, lukas.magel@xxxxxxxxxx, patches@xxxxxxxxxxxxxxx, maxime.jayat@xxxxxxxxxxxxxxxxx, mkl@xxxxxxxxxxxxxx, michal.sojka@xxxxxxx, Oliver Hartkopp <socketcan@xxxxxxxxxxxx> Message-ID: <20231031093025.2699-5-socketcan@xxxxxxxxxxxx> From: Oliver Hartkopp <socketcan@xxxxxxxxxxxx> commit 823b2e42720f96f277940c37ea438b7c5ead51a4 upstream When wait_event_interruptible() has been interrupted by a signal the tx.state value might not be ISOTP_IDLE. Force the state machines into idle state to inhibit the timer handlers to continue working. Fixes: 866337865f37 ("can: isotp: fix tx state handling for echo tx processing") Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Oliver Hartkopp <socketcan@xxxxxxxxxxxx> Link: https://lore.kernel.org/all/20230112192347.1944-1-socketcan@xxxxxxxxxxxx Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- net/can/isotp.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/net/can/isotp.c +++ b/net/can/isotp.c @@ -1071,6 +1071,10 @@ static int isotp_release(struct socket * /* wait for complete transmission of current pdu */ wait_event_interruptible(so->wait, so->tx.state == ISOTP_IDLE); + /* force state machines to be idle also when a signal occurred */ + so->tx.state = ISOTP_IDLE; + so->rx.state = ISOTP_IDLE; + spin_lock(&isotp_notifier_lock); while (isotp_busy_notifier == so) { spin_unlock(&isotp_notifier_lock); Patches currently in stable-queue which might be from stable-owner@xxxxxxxxxxxxxxx are queue-5.15/ext4-avoid-overlapping-preallocations-due-to-overflow.patch queue-5.15/can-isotp-isotp_bind-do-not-validate-unused-address-information.patch queue-5.15/can-isotp-set-max-pdu-size-to-64-kbyte.patch queue-5.15/can-isotp-isotp_bind-return-einval-on-incorrect-can-id-formatting.patch queue-5.15/ext4-fix-bug-in-ext4_mb_new_inode_pa-due-to-overflow.patch queue-5.15/rpmsg-fix-calling-device_lock-on-non-initialized-device.patch queue-5.15/can-isotp-isotp_sendmsg-fix-tx-state-detection-and-wait-behavior.patch queue-5.15/rpmsg-constify-local-variable-in-field-store-macro.patch queue-5.15/rpmsg-glink-release-driver_override.patch queue-5.15/driver-platform-add-helper-for-safer-setting-of-driver_override.patch queue-5.15/can-isotp-check-can-address-family-in-isotp_bind.patch queue-5.15/rpmsg-fix-kfree-of-static-memory-on-setting-driver_override.patch queue-5.15/can-isotp-add-local-echo-tx-processing-and-tx-without-fc.patch queue-5.15/can-isotp-handle-wait_event_interruptible-return-values.patch queue-5.15/rpmsg-fix-possible-refcount-leak-in-rpmsg_register_device_override.patch queue-5.15/ext4-add-two-helper-functions-extent_logical_end-and-pa_logical_end.patch