aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.h
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2005-12-09 14:35:01 -0500
committerJeff Garzik <jgarzik@pobox.com>2005-12-12 15:27:20 -0500
commit6cdbbdf3055f4657c9d6ccc79257bbcac1a9a1fc (patch)
treec3910bd44972cb55e29a112fa932a35b17910373 /drivers/net/sky2.h
parent734d18684695dd1c6a9527b50e01bba4acab4738 (diff)
[PATCH] sky2: tx/rx ring data structure split
Split Tx and Rx ring into two different data structures. Tx needs the next value (to handle partial status), and Rx always needs the mapaddr (to handle resubmitting same buffer). Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/net/sky2.h')
-rw-r--r--drivers/net/sky2.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h
index 1a91c2d4561c..95518921001c 100644
--- a/drivers/net/sky2.h
+++ b/drivers/net/sky2.h
@@ -1777,10 +1777,15 @@ struct sky2_status_le {
1777 u8 opcode; 1777 u8 opcode;
1778} __attribute((packed)); 1778} __attribute((packed));
1779 1779
1780struct tx_ring_info {
1781 struct sk_buff *skb;
1782 DECLARE_PCI_UNMAP_ADDR(mapaddr);
1783 u16 idx;
1784};
1785
1780struct ring_info { 1786struct ring_info {
1781 struct sk_buff *skb; 1787 struct sk_buff *skb;
1782 dma_addr_t mapaddr; 1788 dma_addr_t mapaddr;
1783 u16 idx;
1784}; 1789};
1785 1790
1786struct sky2_port { 1791struct sky2_port {
@@ -1790,7 +1795,7 @@ struct sky2_port {
1790 u32 msg_enable; 1795 u32 msg_enable;
1791 1796
1792 spinlock_t tx_lock ____cacheline_aligned_in_smp; 1797 spinlock_t tx_lock ____cacheline_aligned_in_smp;
1793 struct ring_info *tx_ring; 1798 struct tx_ring_info *tx_ring;
1794 struct sky2_tx_le *tx_le; 1799 struct sky2_tx_le *tx_le;
1795 u16 tx_cons; /* next le to check */ 1800 u16 tx_cons; /* next le to check */
1796 u16 tx_prod; /* next le to use */ 1801 u16 tx_prod; /* next le to use */