diff options
Diffstat (limited to 'net/bridge/br_device.c')
| -rw-r--r-- | net/bridge/br_device.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 074c59690fc5..f15f9c4a0dd2 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/etherdevice.h> | 17 | #include <linux/etherdevice.h> |
| 18 | #include <linux/ethtool.h> | 18 | #include <linux/ethtool.h> |
| 19 | #include <linux/list.h> | 19 | #include <linux/list.h> |
| 20 | #include <linux/netfilter_bridge.h> | ||
| 20 | 21 | ||
| 21 | #include <asm/uaccess.h> | 22 | #include <asm/uaccess.h> |
| 22 | #include "br_private.h" | 23 | #include "br_private.h" |
| @@ -30,6 +31,13 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) | |||
| 30 | struct net_bridge_mdb_entry *mdst; | 31 | struct net_bridge_mdb_entry *mdst; |
| 31 | struct br_cpu_netstats *brstats = this_cpu_ptr(br->stats); | 32 | struct br_cpu_netstats *brstats = this_cpu_ptr(br->stats); |
| 32 | 33 | ||
| 34 | #ifdef CONFIG_BRIDGE_NETFILTER | ||
| 35 | if (skb->nf_bridge && (skb->nf_bridge->mask & BRNF_BRIDGED_DNAT)) { | ||
| 36 | br_nf_pre_routing_finish_bridge_slow(skb); | ||
| 37 | return NETDEV_TX_OK; | ||
| 38 | } | ||
| 39 | #endif | ||
| 40 | |||
| 33 | brstats->tx_packets++; | 41 | brstats->tx_packets++; |
| 34 | brstats->tx_bytes += skb->len; | 42 | brstats->tx_bytes += skb->len; |
| 35 | 43 | ||
