diff options
Diffstat (limited to 'net')
| -rw-r--r-- | net/ipv6/fib6_rules.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c index ee4aa43ad973..2fbc71d90187 100644 --- a/net/ipv6/fib6_rules.c +++ b/net/ipv6/fib6_rules.c | |||
| @@ -129,7 +129,7 @@ static int fib6_rule_match(struct fib_rule *rule, struct flowi *fl, int flags) | |||
| 129 | return 0; | 129 | return 0; |
| 130 | 130 | ||
| 131 | #ifdef CONFIG_IPV6_ROUTE_FWMARK | 131 | #ifdef CONFIG_IPV6_ROUTE_FWMARK |
| 132 | if ((r->fwmark ^ fl->fl6_fwmark) / r->fwmask) | 132 | if ((r->fwmark ^ fl->fl6_fwmark) & r->fwmask) |
| 133 | return 0; | 133 | return 0; |
| 134 | #endif | 134 | #endif |
| 135 | 135 | ||
| @@ -256,7 +256,7 @@ static int fib6_rule_fill(struct fib_rule *rule, struct sk_buff *skb, | |||
| 256 | if (rule6->fwmark) | 256 | if (rule6->fwmark) |
| 257 | NLA_PUT_U32(skb, FRA_FWMARK, rule6->fwmark); | 257 | NLA_PUT_U32(skb, FRA_FWMARK, rule6->fwmark); |
| 258 | 258 | ||
| 259 | if (rule6->fwmask) | 259 | if (rule6->fwmask || rule6->fwmark) |
| 260 | NLA_PUT_U32(skb, FRA_FWMASK, rule6->fwmask); | 260 | NLA_PUT_U32(skb, FRA_FWMASK, rule6->fwmask); |
| 261 | #endif | 261 | #endif |
| 262 | 262 | ||
