diff --git a/[refs] b/[refs] index b2598335ddb8..fff52c90da65 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b811ce9104a7f7663ddae4f7795a194a103b8f90 +refs/heads/master: 561dac2d410ffac0b57a23b85ae0a623c1a076ca diff --git a/trunk/net/core/fib_rules.c b/trunk/net/core/fib_rules.c index e7ab0c0285b5..3231b468bb72 100644 --- a/trunk/net/core/fib_rules.c +++ b/trunk/net/core/fib_rules.c @@ -384,8 +384,8 @@ static int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg) */ list_for_each_entry(r, &ops->rules_list, list) { if (r->action == FR_ACT_GOTO && - r->target == rule->pref) { - BUG_ON(rtnl_dereference(r->ctarget) != NULL); + r->target == rule->pref && + rtnl_dereference(r->ctarget) == NULL) { rcu_assign_pointer(r->ctarget, rule); if (--ops->unresolved_rules == 0) break;