diff --git a/net/can/isotp.c b/net/can/isotp.c index 4fcd8162fad4..16ebc187af1c 100644 --- a/net/can/isotp.c +++ b/net/can/isotp.c @@ -990,8 +990,9 @@ static int isotp_sendmsg(struct socket *sock, struct msghdr *msg, size_t size) /* 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;