linux/drivers/infiniband
Mike Marciniszyn 18912c4524 IB/hfi1: Close VNIC sdma_progress sleep window
The call to sdma_progress() is called outside the wait lock.

In this case, there is a race condition where sdma_progress() can return
false and the sdma_engine can idle.  If that happens, there will be no
more sdma interrupts to cause the wakeup and the vnic_sdma xmit will hang.

Fix by moving the lock to enclose the sdma_progress() call.

Also, delete the tx_retry. The need for this was removed by:
commit bcad29137a ("IB/hfi1: Serve the most starved iowait entry first")

Fixes: 64551ede6c ("IB/hfi1: VNIC SDMA support")
Reviewed-by: Gary Leshner <Gary.S.Leshner@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-12-06 20:15:36 -07:00
..
core IB/core: Enable getting an object type from a given uobject 2018-12-04 13:46:41 -05:00
hw IB/hfi1: Close VNIC sdma_progress sleep window 2018-12-06 20:15:36 -07:00
sw IB/hfi1: Allow the driver to initialize QP priv struct 2018-12-06 19:59:47 -07:00
ulp IB/core: Make function ib_fmr_pool_unmap return void 2018-11-21 16:13:02 -07:00
Kconfig RDMA: Fix building with CONFIG_MMU=n 2018-10-03 16:01:03 -06:00
Makefile