diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-19 21:43:50 -0400 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-19 21:43:50 -0400 | 
| commit | fbb5ba92766a0a7803635f053220c325d26def9c (patch) | |
| tree | 4cf6d9ed725b5d1254d4d29f5750c37676173490 /net/bridge/br_input.c | |
| parent | 4fe1103201057e74f630b1cb8d8d49bd6ce0e666 (diff) | |
| parent | bc8a5397433e4effbaddfa7e462d10b3c060cabb (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  ipv4: make default for INET_LRO consistent with help text
  net: fix skb_seq_read returning wrong offset/length for page frag data
  pkt_sched: gen_estimator: use 64 bit intermediate counters for bps
  be2net: add two new pci device ids to pci device table
  sch_teql: should not dereference skb after ndo_start_xmit()
  tcp: fix MSG_PEEK race check
  Doc: fixed descriptions on /proc/sys/net/core/* and /proc/sys/net/unix/*
  Neterion: *FIFO1_DMA_ERR set twice, should 2nd be *FIFO2_DMA_ERR?
  mv643xx_eth: fix PPC DMA breakage
  bonding: fix link down handling in 802.3ad mode
  bridge: fix initial packet flood if !STP
  bridge: relay bridge multicast pkgs if !STP
  NET: Meth: Fix unsafe mix of irq and non-irq spinlocks.
  mlx4_en: Fix not deleted napi structures
  ipconfig: handle case of delayed DHCP server
  netpoll: don't dereference NULL dev from np
  wimax/i2400m: fix device crash: fix optimization in _roq_queue_update_ws
Diffstat (limited to 'net/bridge/br_input.c')
| -rw-r--r-- | net/bridge/br_input.c | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index 30b88777c3df..5ee1a3682bf2 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c | |||
| @@ -134,6 +134,10 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb) | |||
| 134 | if (skb->protocol == htons(ETH_P_PAUSE)) | 134 | if (skb->protocol == htons(ETH_P_PAUSE)) | 
| 135 | goto drop; | 135 | goto drop; | 
| 136 | 136 | ||
| 137 | /* If STP is turned off, then forward */ | ||
| 138 | if (p->br->stp_enabled == BR_NO_STP && dest[5] == 0) | ||
| 139 | goto forward; | ||
| 140 | |||
| 137 | if (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev, | 141 | if (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev, | 
| 138 | NULL, br_handle_local_finish)) | 142 | NULL, br_handle_local_finish)) | 
| 139 | return NULL; /* frame consumed by filter */ | 143 | return NULL; /* frame consumed by filter */ | 
| @@ -141,6 +145,7 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb) | |||
| 141 | return skb; /* continue processing */ | 145 | return skb; /* continue processing */ | 
| 142 | } | 146 | } | 
| 143 | 147 | ||
| 148 | forward: | ||
| 144 | switch (p->state) { | 149 | switch (p->state) { | 
| 145 | case BR_STATE_FORWARDING: | 150 | case BR_STATE_FORWARDING: | 
| 146 | rhook = rcu_dereference(br_should_route_hook); | 151 | rhook = rcu_dereference(br_should_route_hook); | 
