ehea: fix delayed packet processing
authorJan-Bernd Themann <ossthema@de.ibm.com>
Tue, 15 Jun 2010 05:35:16 +0000 (05:35 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 17 Jun 2010 01:05:26 +0000 (18:05 -0700)
In the eHEA poll function an rmb() is required. Without that some packets
on the receive queue are not seen and thus delayed until the next interrupt
is handled for the same receive queue.

Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ehea/ehea_main.c

index f547894ff48fc3a02317548dafe8ec900e5044e2..fd890faf51749e67e56012d123b5a9e0c07297a9 100644 (file)
@@ -867,6 +867,7 @@ static int ehea_poll(struct napi_struct *napi, int budget)
                ehea_reset_cq_ep(pr->send_cq);
                ehea_reset_cq_n1(pr->recv_cq);
                ehea_reset_cq_n1(pr->send_cq);
+               rmb();
                cqe = ehea_poll_rq1(pr->qp, &wqe_index);
                cqe_skb = ehea_poll_cq(pr->send_cq);