linux_dsm_epyc7002/drivers/infiniband/hw/hfi1
Mike Marciniszyn fa8dac3968 IB/hfi1: Fix another case where pq is left on waitlist
The commit noted below fixed a case where a pq is left on the sdma wait
list.

It however missed another case.

user_sdma_send_pkts() has two calls from hfi1_user_sdma_process_request().

If the first one fails as indicated by -EBUSY, the pq will be placed on
the waitlist as by design.

If the second call then succeeds, the pq is still on the waitlist setting
up a race with the interrupt handler if a subsequent request uses a
different SDMA engine

Fix by deleting the first call.

The use of pcount and the intent to send a short burst of packets followed
by the larger balance of packets was never correctly implemented, because
the two calls always send pcount packets no matter what.  A subsequent
patch will correct that issue.

Fixes: 9a293d1e21 ("IB/hfi1: Ensure pq is not left on waitlist")
Link: https://lore.kernel.org/r/20200504130917.175613.43231.stgit@awfm-01.aw.intel.com
Cc: <stable@vger.kernel.org>
Reviewed-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2020-05-12 11:47:48 -03:00
..
affinity.c RDMA/hfi1: Fix memory leak in _dev_comp_vect_mappings_create 2020-02-11 11:35:45 -04:00
affinity.h
aspm.c
aspm.h
chip_registers.h IB/hfi1: Add RcvShortLengthErrCnt to hfi1stats 2020-01-10 10:57:17 -04:00
chip.c IB/hfi1: Add RcvShortLengthErrCnt to hfi1stats 2020-01-10 10:57:17 -04:00
chip.h IB/hfi1: Add RcvShortLengthErrCnt to hfi1stats 2020-01-10 10:57:17 -04:00
common.h IB/hfi1: Add accessor API routines to access context members 2020-01-03 16:44:49 -04:00
debugfs.c IB/hfi1: List all receive contexts from debugfs 2020-01-03 16:44:50 -04:00
debugfs.h
device.c
device.h
driver.c IB/hfi1: Add software counter for ctxt0 seq drop 2020-01-10 10:57:17 -04:00
efivar.c infiniband: hfi1: Use EFI GetVariable only when available 2020-02-23 21:59:42 +01:00
efivar.h
eprom.c
eprom.h
exp_rcv.c
exp_rcv.h
fault.c IB/hfi1: Use scnprintf() for avoiding potential buffer overflow 2020-03-26 15:06:14 -03:00
fault.h
file_ops.c IB/hfi1: Remove kobj from hfi1_devdata 2020-03-18 19:53:47 -03:00
firmware.c
hfi.h IB/hfi1: Remove kobj from hfi1_devdata 2020-03-18 19:53:47 -03:00
init.c IB/hfi1: Remove kobj from hfi1_devdata 2020-03-18 19:53:47 -03:00
intr.c
iowait.c IB/hfi1: Don't cancel unused work item 2020-01-03 16:41:51 -04:00
iowait.h
Kconfig
mad.c RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
mad.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
Makefile
mmu_rb.c
mmu_rb.h
msix.c IB/hfi1: Fix logical condition in msix_request_irq 2020-01-25 15:33:53 -04:00
msix.h IB/hfi1: Decouple IRQ name from type 2020-01-10 10:57:17 -04:00
opa_compat.h
opfn.c
opfn.h
pcie.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
pio_copy.c
pio.c
pio.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
platform.c IB/hfi1: remove redundant assignment to variable ret 2019-11-25 10:31:47 -04:00
platform.h
qp.c
qp.h
qsfp.c
qsfp.h
rc.c IB/hfi1: use true,false for bool variable 2020-01-03 19:13:59 -04:00
rc.h
ruc.c
sdma_txreq.h
sdma.c RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
sdma.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
sysfs.c IB/hfi1: Call kobject_put() when kobject_init_and_add() fails 2020-03-27 13:13:36 -03:00
tid_rdma.c IB/hfi1: Adjust flow PSN with the correct resync_psn 2020-01-03 16:48:01 -04:00
tid_rdma.h
trace_ctxts.h IB/hfi1: Add accessor API routines to access context members 2020-01-03 16:44:49 -04:00
trace_dbg.h
trace_ibhdrs.h
trace_iowait.h
trace_misc.h
trace_mmu.h
trace_rc.h
trace_rx.h IB/hfi1: Add fast and slow handlers for receive context 2020-01-10 10:57:16 -04:00
trace_tid.h ftrace: Rework event_create_dir() 2019-11-27 07:44:25 +01:00
trace_tx.h ftrace: Rework event_create_dir() 2019-11-27 07:44:25 +01:00
trace.c
trace.h
uc.c
ud.c
user_exp_rcv.c IB/hfi1: Close window for pq and request coliding 2020-02-11 11:41:31 -04:00
user_exp_rcv.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
user_pages.c mm, tree-wide: rename put_user_page*() to unpin_user_page*() 2020-01-31 10:30:38 -08:00
user_sdma.c IB/hfi1: Fix another case where pq is left on waitlist 2020-05-12 11:47:48 -03:00
user_sdma.h
verbs_txreq.c
verbs_txreq.h
verbs.c IB/hfi1, qib: Ensure RCU is locked when accessing list 2020-03-02 11:10:21 -04:00
verbs.h treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
vnic_main.c IB/hfi1: Add accessor API routines to access context members 2020-01-03 16:44:49 -04:00
vnic_sdma.c
vnic.h