aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/ibm
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2011-10-14 01:31:00 -0400
committerDavid S. Miller <davem@davemloft.net>2011-10-17 19:00:54 -0400
commit222ca96b69ae8afb2ad13b99070b09309e7d9657 (patch)
tree839c50af6f1728cd4ddc479b44ab45ec8dd78d2b /drivers/net/ethernet/ibm
parentb95644685d530de5e9f9658bd8087e50840b831d (diff)
ehea: Remove force_irq logic in napi poll routine
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>
Diffstat (limited to 'drivers/net/ethernet/ibm')
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea.h1
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_main.c13
2 files changed, 3 insertions, 11 deletions
diff --git a/drivers/net/ethernet/ibm/ehea/ehea.h b/drivers/net/ethernet/ibm/ehea/ehea.h
index e247927139b..4a4d466e9ce 100644
--- a/drivers/net/ethernet/ibm/ehea/ehea.h
+++ b/drivers/net/ethernet/ibm/ehea/ehea.h
@@ -383,7 +383,6 @@ struct ehea_port_res {
383 u64 tx_bytes; 383 u64 tx_bytes;
384 u64 rx_packets; 384 u64 rx_packets;
385 u64 rx_bytes; 385 u64 rx_bytes;
386 u32 poll_counter;
387 struct net_lro_mgr lro_mgr; 386 struct net_lro_mgr lro_mgr;
388 struct net_lro_desc lro_desc[MAX_LRO_DESCRIPTORS]; 387 struct net_lro_desc lro_desc[MAX_LRO_DESCRIPTORS];
389 int sq_restart_flag; 388 int sq_restart_flag;
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c
index a6c4192e12f..4032a0a6b92 100644
--- a/drivers/net/ethernet/ibm/ehea/ehea_main.c
+++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c
@@ -926,7 +926,6 @@ static struct ehea_cqe *ehea_proc_cqes(struct ehea_port_res *pr, int my_quota)
926 return cqe; 926 return cqe;
927} 927}
928 928
929#define EHEA_NAPI_POLL_NUM_BEFORE_IRQ 16
930#define EHEA_POLL_MAX_CQES 65535 929#define EHEA_POLL_MAX_CQES 65535
931 930
932static int ehea_poll(struct napi_struct *napi, int budget) 931static int ehea_poll(struct napi_struct *napi, int budget)
@@ -936,18 +935,13 @@ static int ehea_poll(struct napi_struct *napi, int budget)
936 struct net_device *dev = pr->port->netdev; 935 struct net_device *dev = pr->port->netdev;
937 struct ehea_cqe *cqe; 936 struct ehea_cqe *cqe;
938 struct ehea_cqe *cqe_skb = NULL; 937 struct ehea_cqe *cqe_skb = NULL;
939 int force_irq, wqe_index; 938 int wqe_index;
940 int rx = 0; 939 int rx = 0;
941 940
942 force_irq = (pr->poll_counter > EHEA_NAPI_POLL_NUM_BEFORE_IRQ);
943 cqe_skb = ehea_proc_cqes(pr, EHEA_POLL_MAX_CQES); 941 cqe_skb = ehea_proc_cqes(pr, EHEA_POLL_MAX_CQES);
942 rx += ehea_proc_rwqes(dev, pr, budget - rx);
944 943
945 if (!force_irq) 944 while (rx != budget) {
946 rx += ehea_proc_rwqes(dev, pr, budget - rx);
947
948 while ((rx != budget) || force_irq) {
949 pr->poll_counter = 0;
950 force_irq = 0;
951 napi_complete(napi); 945 napi_complete(napi);
952 ehea_reset_cq_ep(pr->recv_cq); 946 ehea_reset_cq_ep(pr->recv_cq);
953 ehea_reset_cq_ep(pr->send_cq); 947 ehea_reset_cq_ep(pr->send_cq);
@@ -967,7 +961,6 @@ static int ehea_poll(struct napi_struct *napi, int budget)
967 rx += ehea_proc_rwqes(dev, pr, budget - rx); 961 rx += ehea_proc_rwqes(dev, pr, budget - rx);
968 } 962 }
969 963
970 pr->poll_counter++;
971 return rx; 964 return rx;
972} 965}
973 966