diff options
Diffstat (limited to 'net/core/skmsg.c')
-rw-r--r-- | net/core/skmsg.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/skmsg.c b/net/core/skmsg.c index 93bffaad2135..6832eeb4b785 100644 --- a/net/core/skmsg.c +++ b/net/core/skmsg.c | |||
@@ -585,12 +585,12 @@ EXPORT_SYMBOL_GPL(sk_psock_destroy); | |||
585 | 585 | ||
586 | void sk_psock_drop(struct sock *sk, struct sk_psock *psock) | 586 | void sk_psock_drop(struct sock *sk, struct sk_psock *psock) |
587 | { | 587 | { |
588 | rcu_assign_sk_user_data(sk, NULL); | ||
589 | sk_psock_cork_free(psock); | 588 | sk_psock_cork_free(psock); |
590 | sk_psock_zap_ingress(psock); | 589 | sk_psock_zap_ingress(psock); |
591 | sk_psock_restore_proto(sk, psock); | ||
592 | 590 | ||
593 | write_lock_bh(&sk->sk_callback_lock); | 591 | write_lock_bh(&sk->sk_callback_lock); |
592 | sk_psock_restore_proto(sk, psock); | ||
593 | rcu_assign_sk_user_data(sk, NULL); | ||
594 | if (psock->progs.skb_parser) | 594 | if (psock->progs.skb_parser) |
595 | sk_psock_stop_strp(sk, psock); | 595 | sk_psock_stop_strp(sk, psock); |
596 | write_unlock_bh(&sk->sk_callback_lock); | 596 | write_unlock_bh(&sk->sk_callback_lock); |