summaryrefslogtreecommitdiff
path: root/net/netfilter/core.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-11-03 21:05:43 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2011-11-03 21:05:43 -0700
commit6dbbd92522a13bcd5003829cbed30bc38a3d0362 (patch)
treeb486642d7392b81d89f159d65fd556a432e78d16 /net/netfilter/core.c
parentd6748066ad0e8b2514545998f8367ebb3906f299 (diff)
parente1cfb67acd5e890bbad695000d2c997bfb7f1756 (diff)
downloadlinux-3.10-6dbbd92522a13bcd5003829cbed30bc38a3d0362.tar.gz
linux-3.10-6dbbd92522a13bcd5003829cbed30bc38a3d0362.tar.bz2
linux-3.10-6dbbd92522a13bcd5003829cbed30bc38a3d0362.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (45 commits) be2net: Add detect UE feature for Lancer be2net: Prevent CQ full condition for Lancer be2net: Fix disabling multicast promiscous mode be2net: Fix endian issue in RX filter command af_packet: de-inline some helper functions MAINTAINERS: Add can-gw include to maintained files net: Add back alignment for size for __alloc_skb net: add missing bh_unlock_sock() calls l2tp: fix race in l2tp_recv_dequeue() ixgbevf: Update release version ixgbe: DCB, return max for IEEE traffic classes ixgbe: fix reading of the buffer returned by the firmware ixgbe: Fix compiler warnings ixgbe: fix smatch splat due to missing NULL check ixgbe: fix disabling of Tx laser at probe ixgbe: Fix link issues caused by a reset while interface is down igb: Fix for I347AT4 PHY cable length unit detection e100: make sure vlan support isn't advertised on old adapters e1000e: demote a debugging WARN to a debug log message net: fix typo in drivers/net/ethernet/xilinx/ll_temac_main.c ...
Diffstat (limited to 'net/netfilter/core.c')
-rw-r--r--net/netfilter/core.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/net/netfilter/core.c b/net/netfilter/core.c
index 3346829ea07..afca6c78948 100644
--- a/net/netfilter/core.c
+++ b/net/netfilter/core.c
@@ -180,17 +180,16 @@ next_hook:
if (ret == 0)
ret = -EPERM;
} else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) {
- ret = nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
- verdict >> NF_VERDICT_QBITS);
- if (ret < 0) {
- if (ret == -ECANCELED)
+ int err = nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
+ verdict >> NF_VERDICT_QBITS);
+ if (err < 0) {
+ if (err == -ECANCELED)
goto next_hook;
- if (ret == -ESRCH &&
+ if (err == -ESRCH &&
(verdict & NF_VERDICT_FLAG_QUEUE_BYPASS))
goto next_hook;
kfree_skb(skb);
}
- ret = 0;
}
rcu_read_unlock();
return ret;