diff options
-rw-r--r-- | drivers/net/ethernet/ibm/ehea/ehea.h | 1 | ||||
-rw-r--r-- | drivers/net/ethernet/ibm/ehea/ehea_main.c | 13 |
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 | ||
932 | static int ehea_poll(struct napi_struct *napi, int budget) | 931 | static 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 | ||