cns3xxx: ethernet: use circular queue checks consistently
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Tue, 7 Aug 2018 09:44:36 +0000 (11:44 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 18 Dec 2018 16:47:45 +0000 (17:47 +0100)
Use the same method for setting queue index pointers consistenly
throughout the source file.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
(backported from 0d283c0180a22610ed5bee988902525dee90cc71)

target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c

index 57308fcfe043bfd96bad250691f3224969d9df0a..4556499429d343ef1cdcad77d7ac43d7b2c2631e 100644 (file)
@@ -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++;
                }
        }