Skip to content

Commit

Permalink
bridge: Use BR_INPUT_SKB_CB on xmit path
Browse files Browse the repository at this point in the history
this patch makes BR_INPUT_SKB_CB available on the xmit path so
that we could avoid passing the br pointer around for the purpose
of collecting device statistics.

Signed-off-by: Herbert Xu <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
herbertx authored and davem330 committed Feb 28, 2010
1 parent b33084b commit 6088a53
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
2 changes: 2 additions & 0 deletions net/bridge/br_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev)
const unsigned char *dest = skb->data;
struct net_bridge_fdb_entry *dst;

BR_INPUT_SKB_CB(skb)->brdev = dev;

dev->stats.tx_packets++;
dev->stats.tx_bytes += skb->len;

Expand Down
5 changes: 3 additions & 2 deletions net/bridge/br_forward.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ static void br_flood(struct net_bridge *br, struct sk_buff *skb,
{
struct net_bridge_port *p;
struct net_bridge_port *prev;
struct net_device *dev = BR_INPUT_SKB_CB(skb)->brdev;

prev = NULL;

Expand All @@ -120,7 +121,7 @@ static void br_flood(struct net_bridge *br, struct sk_buff *skb,
struct sk_buff *skb2;

if ((skb2 = skb_clone(skb, GFP_ATOMIC)) == NULL) {
br->dev->stats.tx_dropped++;
dev->stats.tx_dropped++;
goto out;
}

Expand All @@ -137,7 +138,7 @@ static void br_flood(struct net_bridge *br, struct sk_buff *skb,
if (skb0) {
skb = skb_clone(skb, GFP_ATOMIC);
if (!skb) {
br->dev->stats.tx_dropped++;
dev->stats.tx_dropped++;
goto out;
}
}
Expand Down

0 comments on commit 6088a53

Please sign in to comment.