diff --git a/net/can/isotp.c b/net/can/isotp.c index d1f54273c0bb5b65dcdab01d339a20057e4cc2d2..df6968b28bf41e53a11eaf60a32e8817da54e05e 100644 --- a/net/can/isotp.c +++ b/net/can/isotp.c @@ -971,6 +971,9 @@ static int isotp_sendmsg(struct socket *sock, struct msghdr *msg, size_t size) if (wait_tx_done) { /* 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; } return size;