igb: add a flags value to the ring
This patch adds a flags value to the ring that cleans up some of the last remaining items from the ring in order to help seperate it from the adapter struct. By implementing these flags it becomes possible for different rings to support different functions such as rx checksumming. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
04a5fcaaf0
commit
85ad76b2f9
@@ -279,17 +279,20 @@ static int igb_set_pauseparam(struct net_device *netdev,
|
||||
static u32 igb_get_rx_csum(struct net_device *netdev)
|
||||
{
|
||||
struct igb_adapter *adapter = netdev_priv(netdev);
|
||||
return !(adapter->flags & IGB_FLAG_RX_CSUM_DISABLED);
|
||||
return !!(adapter->rx_ring[0].flags & IGB_RING_FLAG_RX_CSUM);
|
||||
}
|
||||
|
||||
static int igb_set_rx_csum(struct net_device *netdev, u32 data)
|
||||
{
|
||||
struct igb_adapter *adapter = netdev_priv(netdev);
|
||||
int i;
|
||||
|
||||
if (data)
|
||||
adapter->flags &= ~IGB_FLAG_RX_CSUM_DISABLED;
|
||||
else
|
||||
adapter->flags |= IGB_FLAG_RX_CSUM_DISABLED;
|
||||
for (i = 0; i < adapter->num_rx_queues; i++) {
|
||||
if (data)
|
||||
adapter->rx_ring[i].flags |= IGB_RING_FLAG_RX_CSUM;
|
||||
else
|
||||
adapter->rx_ring[i].flags &= ~IGB_RING_FLAG_RX_CSUM;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user