diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2010-02-27 14:41:41 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-28 03:48:43 -0500 |
commit | b33084be192ee1e347d98bb5c9e38a53d98d35e2 (patch) | |
tree | 940c62309437ca5fa087275bc64b4ffd677c79c3 /net/bridge/br_private.h | |
parent | 68b7c895be336b19f4c38d7cb500132fabba0afd (diff) |
bridge: Avoid unnecessary clone on forward path
When the packet is delivered to the local bridge device we may
end up cloning it unnecessarily if no bridge port can receive
the packet in br_flood.
This patch avoids this by moving the skb_clone into br_flood.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r-- | net/bridge/br_private.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 16513793156e..fad5a2669d34 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h | |||
@@ -180,7 +180,8 @@ extern void br_forward(const struct net_bridge_port *to, | |||
180 | struct sk_buff *skb); | 180 | struct sk_buff *skb); |
181 | extern int br_forward_finish(struct sk_buff *skb); | 181 | extern int br_forward_finish(struct sk_buff *skb); |
182 | extern void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb); | 182 | extern void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb); |
183 | extern void br_flood_forward(struct net_bridge *br, struct sk_buff *skb); | 183 | extern void br_flood_forward(struct net_bridge *br, struct sk_buff *skb, |
184 | struct sk_buff *skb2); | ||
184 | 185 | ||
185 | /* br_if.c */ | 186 | /* br_if.c */ |
186 | extern void br_port_carrier_check(struct net_bridge_port *p); | 187 | extern void br_port_carrier_check(struct net_bridge_port *p); |