cxgb4: Stop Rx Queues before freeing it up
authorHariprasad Shenai <hariprasad@chelsio.com>
Mon, 11 Apr 2016 05:37:58 +0000 (11:07 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Apr 2016 16:21:39 +0000 (12:21 -0400)
commitebf4dc2b1b2b9c8c7797f01a952bce3cf0247a4f
tree16a4d0a8f98413ada10b25d77d7d5c036edba015
parent734e00fa02eff5003827abc06a7ebf9449349109
cxgb4: Stop Rx Queues before freeing it up

Stop all Ethernet RX Queues before freeing up various Ingress/Egress
Queues, etc. We were seeing cases of Ingress Queues not getting serviced
during the shutdown process leading to Ingress Paths jamming up through
the chip and blocking the shutdown effort itself.

One such case involved the Firmware sending a "Flush Token" through the
ULP-TX -> ULP-RX path for an Ethernet TX Queue being freed in order to
make sure there weren't any remaining TX Work Requests in the pipeline.
But the return path was stalled by Ingress Data unable to be delivered to
the Host because those Ingress Queues were no longer being serviced.

Based on original work by Casey Leedom <leedom@chelsio.com>

Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
drivers/net/ethernet/chelsio/cxgb4/sge.c
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c