diff options
-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 | ||