aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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