From af13b4176efa22e0858ee827bedf2d72f69b659c Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 29 Jun 2023 12:29:48 +0200 Subject: [PATCH] 5.10-stable patches added patches: can-isotp-isotp_sendmsg-fix-return-error-fix-on-tx-path.patch --- ...dmsg-fix-return-error-fix-on-tx-path.patch | 44 +++++++++++++++++++ queue-5.10/series | 1 + 2 files changed, 45 insertions(+) create mode 100644 queue-5.10/can-isotp-isotp_sendmsg-fix-return-error-fix-on-tx-path.patch diff --git a/queue-5.10/can-isotp-isotp_sendmsg-fix-return-error-fix-on-tx-path.patch b/queue-5.10/can-isotp-isotp_sendmsg-fix-return-error-fix-on-tx-path.patch new file mode 100644 index 00000000000..d83b14f4fcc --- /dev/null +++ b/queue-5.10/can-isotp-isotp_sendmsg-fix-return-error-fix-on-tx-path.patch @@ -0,0 +1,44 @@ +From e38910c0072b541a91954682c8b074a93e57c09b Mon Sep 17 00:00:00 2001 +From: Oliver Hartkopp +Date: Wed, 7 Jun 2023 09:27:08 +0200 +Subject: can: isotp: isotp_sendmsg(): fix return error fix on TX path + +From: Oliver Hartkopp + +commit e38910c0072b541a91954682c8b074a93e57c09b upstream. + +With commit d674a8f123b4 ("can: isotp: isotp_sendmsg(): fix return +error on FC timeout on TX path") the missing correct return value in +the case of a protocol error was introduced. + +But the way the error value has been read and sent to the user space +does not follow the common scheme to clear the error after reading +which is provided by the sock_error() function. This leads to an error +report at the following write() attempt although everything should be +working. + +Fixes: d674a8f123b4 ("can: isotp: isotp_sendmsg(): fix return error on FC timeout on TX path") +Reported-by: Carsten Schmidt +Signed-off-by: Oliver Hartkopp +Link: https://lore.kernel.org/all/20230607072708.38809-1-socketcan@hartkopp.net +Cc: stable@vger.kernel.org +Signed-off-by: Marc Kleine-Budde +Signed-off-by: Greg Kroah-Hartman +--- + net/can/isotp.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/net/can/isotp.c ++++ b/net/can/isotp.c +@@ -990,8 +990,9 @@ static int isotp_sendmsg(struct socket * + /* wait for complete transmission of current pdu */ + wait_event_interruptible(so->wait, so->tx.state == ISOTP_IDLE); + +- if (sk->sk_err) +- return -sk->sk_err; ++ err = sock_error(sk); ++ if (err) ++ return err; + } + + return size; diff --git a/queue-5.10/series b/queue-5.10/series index a4e21be9183..019cfb8c165 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -1,3 +1,4 @@ media-atomisp-fix-variable-dereferenced-before-check-asd.patch x86-microcode-amd-load-late-on-both-threads-too.patch x86-smp-use-dedicated-cache-line-for-mwait_play_dead.patch +can-isotp-isotp_sendmsg-fix-return-error-fix-on-tx-path.patch -- 2.47.3