@ -595,21 +595,23 @@ static void eth_complete_tx(struct sw *sw)
desc = & ( tx_ring ) - > desc [ index ] ;
for ( i = 0 ; i < num_used ; i + + ) {
if ( desc - > cown ) {
skb = tx_ring - > buff_tab [ index ] ;
tx_ring - > buff_tab [ index ] = 0 ;
if ( skb )
dev_kfree_skb_any ( skb ) ;
dma_unmap_single ( sw - > dev , tx_ring - > phys_tab [ index ] ,
desc - > sdl , DMA_TO_DEVICE ) ;
if ( + + index = = TX_DESCS ) {
index = 0 ;
desc = & ( tx_ring ) - > desc [ index ] ;
} else {
desc + + ;
}
} else {
if ( ! desc - > cown )
break ;
skb = tx_ring - > buff_tab [ index ] ;
tx_ring - > buff_tab [ index ] = 0 ;
if ( skb )
dev_kfree_skb_any ( skb ) ;
dma_unmap_single ( sw - > dev , tx_ring - > phys_tab [ index ] , desc - > sdl , DMA_TO_DEVICE ) ;
if ( index = = TX_DESCS - 1 ) {
index = 0 ;
desc = & ( tx_ring ) - > desc [ index ] ;
} else {
index + + ;
desc + + ;
}
}
@ -705,10 +707,11 @@ static int eth_poll(struct napi_struct *napi, int budget)
}
received + + ;
if ( + + i = = RX_DESCS ) {
if ( i = = RX_DESCS - 1 ) {
i = 0 ;
desc = & ( rx_ring ) - > desc [ i ] ;
} else {
i + + ;
desc + + ;
}
}