diff --git a/net/core/skmsg.c b/net/core/skmsg.c index df545748cd6a..dd22ca838754 100644 --- a/net/core/skmsg.c +++ b/net/core/skmsg.c @@ -947,8 +947,13 @@ static void sk_psock_verdict_apply(struct sk_psock *psock, if (sk_psock_test_state(psock, SK_PSOCK_TX_ENABLED)) { skb_queue_tail(&psock->ingress_skb, skb); schedule_work(&psock->work); + err = 0; } spin_unlock_bh(&psock->ingress_lock); + if (err < 0) { + skb_bpf_redirect_clear(skb); + goto out_free; + } } break; case __SK_REDIRECT: