diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-03-15 08:43:49 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-03-15 08:43:49 +0100 |
commit | 280def1e1c17d35b21206881937d4498bcc1f503 (patch) | |
tree | 6e40d88144f06dce56338c60073b85b36207f1ef /include/linux/can | |
parent | 3d82be8be6fdf38543fa3ae9c35beda4a8a8d067 (diff) | |
parent | 1e28eed17697bcf343c6743f0028cc3b5dd88bf0 (diff) |
Merge 5.12-rc3 into tty-next
Resolves a merge issue with:
drivers/tty/hvc/hvcs.c
and we want the tty/serial fixes from 5.12-rc3 in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/can')
-rw-r--r-- | include/linux/can/skb.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/can/skb.h b/include/linux/can/skb.h index 685f34cfba20..d438eb058069 100644 --- a/include/linux/can/skb.h +++ b/include/linux/can/skb.h @@ -65,8 +65,12 @@ static inline void can_skb_reserve(struct sk_buff *skb) static inline void can_skb_set_owner(struct sk_buff *skb, struct sock *sk) { - if (sk) { - sock_hold(sk); + /* If the socket has already been closed by user space, the + * refcount may already be 0 (and the socket will be freed + * after the last TX skb has been freed). So only increase + * socket refcount if the refcount is > 0. + */ + if (sk && refcount_inc_not_zero(&sk->sk_refcnt)) { skb->destructor = sock_efree; skb->sk = sk; } |