diff options
author | Florian Westphal <fw@strlen.de> | 2014-09-03 17:34:26 +0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2014-09-12 12:35:51 +0400 |
commit | 93f0afe9ce9cb095f1fcb23da8a5897f85d61275 (patch) | |
tree | eb599e78c3295c13c1f6bdf56f6533a98c81121d /drivers/net/ethernet/intel/e1000/e1000.h | |
parent | 2b294b18689c6b68f631535acbcdb6c8e6fa11cf (diff) | |
download | linux-93f0afe9ce9cb095f1fcb23da8a5897f85d61275.tar.xz |
e1000: add and use e1000_rx_buffer info for Rx
e1000 uses the same metadata struct for Rx and Tx. But Tx and Rx have
different requirements.
For Rx, we only need to store a buffer and a DMA address.
Follow-up patch will remove skb for Rx, bringing rx_buffer_info down
to 16 bytes on x86_64.
[ buffer_info is 48 bytes ]
Signed-off-by: Florian Westphal <fw@strlen.de>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/e1000/e1000.h')
-rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/e1000/e1000.h b/drivers/net/ethernet/intel/e1000/e1000.h index 10a0f221b183..81efe3358350 100644 --- a/drivers/net/ethernet/intel/e1000/e1000.h +++ b/drivers/net/ethernet/intel/e1000/e1000.h @@ -160,6 +160,12 @@ struct e1000_buffer { u16 mapped_as_page; }; +struct e1000_rx_buffer { + struct sk_buff *skb; + dma_addr_t dma; + struct page *page; +}; + struct e1000_tx_ring { /* pointer to the descriptor ring memory */ void *desc; @@ -195,7 +201,7 @@ struct e1000_rx_ring { /* next descriptor to check for DD status bit */ unsigned int next_to_clean; /* array of buffer information structs */ - struct e1000_buffer *buffer_info; + struct e1000_rx_buffer *buffer_info; struct sk_buff *rx_skb_top; /* cpu for rx queue */ |