[PATCH] sky2: incremental transmit completion

Since a transmit can take several control blocks, the old code waited
until the last control block was marked as done. This code processes
the return values incrementally. This makes slots in the tx ring available
and less chance of getting stuck.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
Stephen Hemminger
2006-09-26 11:57:41 -07:00
committed by Jeff Garzik
parent 9fa1b1f33c
commit 291ea6142b
2 changed files with 49 additions and 50 deletions

View File

@@ -1774,10 +1774,10 @@ struct sky2_status_le {
struct tx_ring_info {
struct sk_buff *skb;
DECLARE_PCI_UNMAP_ADDR(mapaddr);
u16 idx;
DECLARE_PCI_UNMAP_ADDR(maplen);
};
struct ring_info {
struct rx_ring_info {
struct sk_buff *skb;
dma_addr_t mapaddr;
};
@@ -1799,7 +1799,7 @@ struct sky2_port {
u16 tx_last_mss;
u32 tx_tcpsum;
struct ring_info *rx_ring ____cacheline_aligned_in_smp;
struct rx_ring_info *rx_ring ____cacheline_aligned_in_smp;
struct sky2_rx_le *rx_le;
u32 rx_addr64;
u16 rx_next; /* next re to check */