aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/core/fib_rules.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-09-21 13:35:00 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2011-09-21 13:35:00 -0700
commite5b26a88f13dfe3162acd50490c0c8504af81b26 (patch)
treee2e52996c76dcb6236396f3686a7b4fd6e475405 /net/core/fib_rules.c
parentMerge branch 'for-linus' of git://git.kernel.dk/linux-block (diff)
parentxfrm: Perform a replay check after return from async codepaths (diff)
downloadwireguard-linux-e5b26a88f13dfe3162acd50490c0c8504af81b26.tar.xz
wireguard-linux-e5b26a88f13dfe3162acd50490c0c8504af81b26.zip
Merge git://github.com/davem330/net
* git://github.com/davem330/net: (27 commits) xfrm: Perform a replay check after return from async codepaths fib:fix BUG_ON in fib_nl_newrule when add new fib rule ixgbe: fix possible null buffer error tg3: fix VLAN tagging regression net: pxa168: Fix build errors by including interrupt.h netconsole: switch init_netconsole() to late_initcall gianfar: Fix overflow check and return value for gfar_get_cls_all() ppp_generic: fix multilink fragment MTU calculation (again) GRETH: avoid overwrite IP-stack's IP-frags checksum GRETH: RX/TX bytes were never increased ipv6: fix a possible double free b43: Fix beacon problem in ad-hoc mode Bluetooth: add support for 2011 mac mini Bluetooth: Add MacBookAir4,1 support Bluetooth: Fixed BT ST Channel reg order r8169: do not enable the TBI for anything but the original 8169. r8169: remove erroneous processing of always set bit. r8169: fix WOL setting for 8105 and 8111evl r8169: add MODULE_FIRMWARE for the firmware of 8111evl r8169: fix the reset setting for 8111evl ...
Diffstat (limited to 'net/core/fib_rules.c')
-rw-r--r--net/core/fib_rules.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
index e7ab0c0285b5..3231b468bb72 100644
--- a/net/core/fib_rules.c
+++ b/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;