diff options
author | Neil Horman <nhorman@tuxdriver.com> | 2011-07-26 02:05:37 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-07-28 01:39:30 -0400 |
commit | d8873315065f1f527c7c380402cf59b1e1d0ae36 (patch) | |
tree | 41a9c15f75b41657dd5370fe135f16c40b3eab64 /net/ethernet | |
parent | 894dc24ce75aa238ce96422a36b1537ccf2d8831 (diff) |
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 <nhorman@tuxdriver.com>
Reported-by: Jiri Pirko <jpirko@redhat.com>
CC: Robert Olsson <robert.olsson@its.uu.se>
CC: Eric Dumazet <eric.dumazet@gmail.com>
CC: Alexey Dobriyan <adobriyan@gmail.com>
CC: David S. Miller <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ethernet')
-rw-r--r-- | net/ethernet/eth.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c index b8453bd4b09c..27997d35ebd3 100644 --- a/net/ethernet/eth.c +++ b/net/ethernet/eth.c | |||
@@ -340,6 +340,7 @@ void ether_setup(struct net_device *dev) | |||
340 | dev->addr_len = ETH_ALEN; | 340 | dev->addr_len = ETH_ALEN; |
341 | dev->tx_queue_len = 1000; /* Ethernet wants good queues */ | 341 | dev->tx_queue_len = 1000; /* Ethernet wants good queues */ |
342 | dev->flags = IFF_BROADCAST|IFF_MULTICAST; | 342 | dev->flags = IFF_BROADCAST|IFF_MULTICAST; |
343 | dev->priv_flags = IFF_TX_SKB_SHARING; | ||
343 | 344 | ||
344 | memset(dev->broadcast, 0xFF, ETH_ALEN); | 345 | memset(dev->broadcast, 0xFF, ETH_ALEN); |
345 | 346 | ||