diff options
| -rw-r--r-- | net/core/filter.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/core/filter.c b/net/core/filter.c index d9076e609fca..d9ea51b47f35 100644 --- a/net/core/filter.c +++ b/net/core/filter.c | |||
| @@ -4132,7 +4132,10 @@ BPF_CALL_5(bpf_setsockopt, struct bpf_sock_ops_kern *, bpf_sock, | |||
| 4132 | sk->sk_rcvlowat = val ? : 1; | 4132 | sk->sk_rcvlowat = val ? : 1; |
| 4133 | break; | 4133 | break; |
| 4134 | case SO_MARK: | 4134 | case SO_MARK: |
| 4135 | sk->sk_mark = val; | 4135 | if (sk->sk_mark != val) { |
| 4136 | sk->sk_mark = val; | ||
| 4137 | sk_dst_reset(sk); | ||
| 4138 | } | ||
| 4136 | break; | 4139 | break; |
| 4137 | default: | 4140 | default: |
| 4138 | ret = -EINVAL; | 4141 | ret = -EINVAL; |
