ehea: Fix synchronization between HW and SW send queue
authorAndre Detsch <adetsch@br.ibm.com>
Tue, 17 Aug 2010 05:49:12 +0000 (05:49 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 Aug 2010 06:50:51 +0000 (23:50 -0700)
commit2928db4c3c62552d3caf9ab53ccc6f7ae9865a23
tree17e22bd8583f780a93001220df2b9f178b4f87f9
parent96ac4f6b326450af496e82347e207b0fca7a9090
ehea: Fix synchronization between HW and SW send queue

ehea: Fix synchronization between HW and SW send queue

When memory is added to / removed from a partition via the Memory DLPAR
mechanism, the eHEA driver has to do a couple of things to reflect the
memory change in its own IO address translation tables. This involves
stopping and restarting the HW queues.
During this operation, it is possible that HW and SW pointer into these
queues get out of sync. This results in a situation where packets that
are attached to a send queue are not transmitted immediately, but
delayed until further X packets have been put on the queue.

This patch detects such loss of synchronization, and resets the ehea
port when needed.

Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
Signed-off-by: Andre Detsch <adetsch@br.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ehea/ehea.h
drivers/net/ehea/ehea_main.c