net: add IFF_SKB_TX_SHARED flag to priv_flags

Pktgen attempts to transmit shared skbs to net devices, which can't be used by
some drivers as they keep state information in skbs.  This patch adds a flag
marking drivers as being able to handle shared skbs in their tx path.  Drivers
are defaulted to being unable to do so, but calling ether_setup enables this
flag, as 90% of the drivers calling ether_setup touch real hardware and can
handle shared skbs.  A subsequent patch will audit drivers to ensure that the
flag is set properly

Signed-off-by: Neil Horman <[email protected]>
Reported-by: Jiri Pirko <[email protected]>
CC: Robert Olsson <[email protected]>
CC: Eric Dumazet <[email protected]>
CC: Alexey Dobriyan <[email protected]>
CC: David S. Miller <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
Neil Horman 2011-07-26 06:05:37 +00:00 • committed by David S. Miller
commit d887331506
3 changed files with 8 additions and 3 deletions

View file

@ -340,6 +340,7 @@ void ether_setup(struct net_device *dev)
dev->addr_len = ETH_ALEN;
dev->tx_queue_len = 1000; /* Ethernet wants good queues */
dev->flags = IFF_BROADCAST|IFF_MULTICAST;
dev->priv_flags = IFF_TX_SKB_SHARING;
memset(dev->broadcast, 0xFF, ETH_ALEN);