From: Oliver Hartkopp <socketcan@hartkopp.net>
To: gregkh@linuxfoundation.org, stable@vger.kernel.org, sashal@kernel.org
Cc: linux-can@vger.kernel.org, lukas.magel@posteo.net,
patches@lists.linux.dev, maxime.jayat@mobile-devices.fr,
mkl@pengutronix.de, michal.sojka@cvut.cz,
Oliver Hartkopp <socketcan@hartkopp.net>
Subject: [PATCH stable 5.15 4/7] can: isotp: handle wait_event_interruptible() return values
Date: Tue, 31 Oct 2023 10:30:22 +0100 [thread overview]
Message-ID: <20231031093025.2699-5-socketcan@hartkopp.net> (raw)
In-Reply-To: <20231031093025.2699-1-socketcan@hartkopp.net>
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@vger.kernel.org
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Link: https://lore.kernel.org/all/20230112192347.1944-1-socketcan@hartkopp.net
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
net/can/isotp.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/net/can/isotp.c b/net/can/isotp.c
index 82e56f3dd2c6..683010c71a8a 100644
--- a/net/can/isotp.c
+++ b/net/can/isotp.c
@@ -1069,10 +1069,14 @@ static int isotp_release(struct socket *sock)
net = sock_net(sk);
/* 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);
schedule_timeout_uninterruptible(1);
spin_lock(&isotp_notifier_lock);
--
2.34.1
next prev parent reply other threads:[~2023-10-31 9:30 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-31 9:30 [PATCH stable 5.15 0/7] can: isotp: upgrade to latest 6.1 LTS code base Oliver Hartkopp
2023-10-31 9:30 ` [PATCH stable 5.15 1/7] can: isotp: set max PDU size to 64 kByte Oliver Hartkopp
2023-11-06 11:19 ` Patch "can: isotp: set max PDU size to 64 kByte" has been added to the 5.15-stable tree gregkh
2023-10-31 9:30 ` [PATCH stable 5.15 2/7] can: isotp: isotp_bind(): return -EINVAL on incorrect CAN ID formatting Oliver Hartkopp
2023-11-06 11:19 ` Patch "can: isotp: isotp_bind(): return -EINVAL on incorrect CAN ID formatting" has been added to the 5.15-stable tree gregkh
2023-10-31 9:30 ` [PATCH stable 5.15 3/7] can: isotp: check CAN address family in isotp_bind() Oliver Hartkopp
2023-11-06 11:19 ` Patch "can: isotp: check CAN address family in isotp_bind()" has been added to the 5.15-stable tree gregkh
2023-10-31 9:30 ` Oliver Hartkopp [this message]
2023-11-06 11:19 ` Patch "can: isotp: handle wait_event_interruptible() return values" " gregkh
2023-10-31 9:30 ` [PATCH stable 5.15 5/7] can: isotp: add local echo tx processing and tx without FC Oliver Hartkopp
2023-11-06 11:19 ` Patch "can: isotp: add local echo tx processing and tx without FC" has been added to the 5.15-stable tree gregkh
2023-10-31 9:30 ` [PATCH stable 5.15 6/7] can: isotp: isotp_bind(): do not validate unused address information Oliver Hartkopp
2023-11-06 11:19 ` Patch "can: isotp: isotp_bind(): do not validate unused address information" has been added to the 5.15-stable tree gregkh
2023-10-31 9:30 ` [PATCH stable 5.15 7/7] can: isotp: isotp_sendmsg(): fix TX state detection and wait behavior Oliver Hartkopp
2023-11-06 11:19 ` Patch "can: isotp: isotp_sendmsg(): fix TX state detection and wait behavior" has been added to the 5.15-stable tree gregkh
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=20231031093025.2699-5-socketcan@hartkopp.net \
--to=socketcan@hartkopp.net \
--cc=gregkh@linuxfoundation.org \
--cc=linux-can@vger.kernel.org \
--cc=lukas.magel@posteo.net \
--cc=maxime.jayat@mobile-devices.fr \
--cc=michal.sojka@cvut.cz \
--cc=mkl@pengutronix.de \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@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.