diff options
| author | Patrick McHardy <kaber@trash.net> | 2008-11-26 15:30:48 -0800 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-11-26 15:30:48 -0800 | 
| commit | efbbced361f3ff4ff9e85310ccff894185c4d904 (patch) | |
| tree | 75d01067543302efebf5c254c3c4887da26138c3 | |
| parent | 7e5ab54296a41f590c9cbc976e1c86272f3a7e00 (diff) | |
macvlan: don't broadcast PAUSE frames to macvlan devices
PAUSE frames are only relevant for the real device, broadcasting them
to all macvlan devices can cause a significant load increase.
Reported-by: Ben Greear <greearb@candelatech.com>
Tested-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/net/macvlan.c | 3 | 
1 files changed, 3 insertions, 0 deletions
| diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 42394505bb50..590039cbb146 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -70,6 +70,9 @@ static void macvlan_broadcast(struct sk_buff *skb,  	struct sk_buff *nskb;  	unsigned int i; +	if (skb->protocol == htons(ETH_P_PAUSE)) +		return; +  	for (i = 0; i < MACVLAN_HASH_SIZE; i++) {  		hlist_for_each_entry_rcu(vlan, n, &port->vlan_hash[i], hlist) {  			dev = vlan->dev; | 
