ehea: Remove force_irq logic in napi poll routine
authorAnton Blanchard <anton@samba.org>
Fri, 14 Oct 2011 05:31:00 +0000 (05:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Oct 2011 23:00:54 +0000 (19:00 -0400)
commit 18604c548545 (ehea: NAPI multi queue TX/RX path for SMP) added
driver specific logic for exiting napi mode. I'm not sure what it was
trying to solve and it should be up to the network stack to decide when
we are done polling so remove it.

v3:
[cascardo] Fixed extra parentheses.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ehea/ehea.h
drivers/net/ethernet/ibm/ehea/ehea_main.c

index e247927139bafdd71499501b0978b62477cae370..4a4d466e9ce0cb12b7bd6c1a34f92aaa1127c90c 100644 (file)
@@ -383,7 +383,6 @@ struct ehea_port_res {
        u64 tx_bytes;
        u64 rx_packets;
        u64 rx_bytes;
-       u32 poll_counter;
        struct net_lro_mgr lro_mgr;
        struct net_lro_desc lro_desc[MAX_LRO_DESCRIPTORS];
        int sq_restart_flag;
index a6c4192e12f4e8300c3eec487ac54de5e41e352d..4032a0a6b92978e252508df1e26620c0c859f0da 100644 (file)
@@ -926,7 +926,6 @@ static struct ehea_cqe *ehea_proc_cqes(struct ehea_port_res *pr, int my_quota)
        return cqe;
 }
 
-#define EHEA_NAPI_POLL_NUM_BEFORE_IRQ 16
 #define EHEA_POLL_MAX_CQES 65535
 
 static int ehea_poll(struct napi_struct *napi, int budget)
@@ -936,18 +935,13 @@ static int ehea_poll(struct napi_struct *napi, int budget)
        struct net_device *dev = pr->port->netdev;
        struct ehea_cqe *cqe;
        struct ehea_cqe *cqe_skb = NULL;
-       int force_irq, wqe_index;
+       int wqe_index;
        int rx = 0;
 
-       force_irq = (pr->poll_counter > EHEA_NAPI_POLL_NUM_BEFORE_IRQ);
        cqe_skb = ehea_proc_cqes(pr, EHEA_POLL_MAX_CQES);
+       rx += ehea_proc_rwqes(dev, pr, budget - rx);
 
-       if (!force_irq)
-               rx += ehea_proc_rwqes(dev, pr, budget - rx);
-
-       while ((rx != budget) || force_irq) {
-               pr->poll_counter = 0;
-               force_irq = 0;
+       while (rx != budget) {
                napi_complete(napi);
                ehea_reset_cq_ep(pr->recv_cq);
                ehea_reset_cq_ep(pr->send_cq);
@@ -967,7 +961,6 @@ static int ehea_poll(struct napi_struct *napi, int budget)
                rx += ehea_proc_rwqes(dev, pr, budget - rx);
        }
 
-       pr->poll_counter++;
        return rx;
 }