Commit 222ca96b authored by Anton Blanchard's avatar Anton Blanchard Committed by David S. Miller

ehea: Remove force_irq logic in napi poll routine

commit 18604c54 (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: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarThadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b9564468
...@@ -383,7 +383,6 @@ struct ehea_port_res { ...@@ -383,7 +383,6 @@ struct ehea_port_res {
u64 tx_bytes; u64 tx_bytes;
u64 rx_packets; u64 rx_packets;
u64 rx_bytes; u64 rx_bytes;
u32 poll_counter;
struct net_lro_mgr lro_mgr; struct net_lro_mgr lro_mgr;
struct net_lro_desc lro_desc[MAX_LRO_DESCRIPTORS]; struct net_lro_desc lro_desc[MAX_LRO_DESCRIPTORS];
int sq_restart_flag; int sq_restart_flag;
......
...@@ -926,7 +926,6 @@ static struct ehea_cqe *ehea_proc_cqes(struct ehea_port_res *pr, int my_quota) ...@@ -926,7 +926,6 @@ static struct ehea_cqe *ehea_proc_cqes(struct ehea_port_res *pr, int my_quota)
return cqe; return cqe;
} }
#define EHEA_NAPI_POLL_NUM_BEFORE_IRQ 16
#define EHEA_POLL_MAX_CQES 65535 #define EHEA_POLL_MAX_CQES 65535
static int ehea_poll(struct napi_struct *napi, int budget) 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,18 +935,13 @@ static int ehea_poll(struct napi_struct *napi, int budget)
struct net_device *dev = pr->port->netdev; struct net_device *dev = pr->port->netdev;
struct ehea_cqe *cqe; struct ehea_cqe *cqe;
struct ehea_cqe *cqe_skb = NULL; struct ehea_cqe *cqe_skb = NULL;
int force_irq, wqe_index; int wqe_index;
int rx = 0; int rx = 0;
force_irq = (pr->poll_counter > EHEA_NAPI_POLL_NUM_BEFORE_IRQ);
cqe_skb = ehea_proc_cqes(pr, EHEA_POLL_MAX_CQES); cqe_skb = ehea_proc_cqes(pr, EHEA_POLL_MAX_CQES);
if (!force_irq)
rx += ehea_proc_rwqes(dev, pr, budget - rx); rx += ehea_proc_rwqes(dev, pr, budget - rx);
while ((rx != budget) || force_irq) { while (rx != budget) {
pr->poll_counter = 0;
force_irq = 0;
napi_complete(napi); napi_complete(napi);
ehea_reset_cq_ep(pr->recv_cq); ehea_reset_cq_ep(pr->recv_cq);
ehea_reset_cq_ep(pr->send_cq); ehea_reset_cq_ep(pr->send_cq);
...@@ -967,7 +961,6 @@ static int ehea_poll(struct napi_struct *napi, int budget) ...@@ -967,7 +961,6 @@ static int ehea_poll(struct napi_struct *napi, int budget)
rx += ehea_proc_rwqes(dev, pr, budget - rx); rx += ehea_proc_rwqes(dev, pr, budget - rx);
} }
pr->poll_counter++;
return rx; return rx;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment