diff --git a/net/core/filter.c b/net/core/filter.c index 3400c7abda13..fb0080e84bd4 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -3930,7 +3930,10 @@ BPF_CALL_5(bpf_setsockopt, struct bpf_sock_ops_kern *, bpf_sock, sk->sk_rcvlowat = val ? : 1; break; case SO_MARK: - sk->sk_mark = val; + if (sk->sk_mark != val) { + sk->sk_mark = val; + sk_dst_reset(sk); + } break; default: ret = -EINVAL;