mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
fa8dac3968
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:
|
||
---|---|---|
.. | ||
affinity.c | ||
affinity.h | ||
aspm.c | ||
aspm.h | ||
chip_registers.h | ||
chip.c | ||
chip.h | ||
common.h | ||
debugfs.c | ||
debugfs.h | ||
device.c | ||
device.h | ||
driver.c | ||
efivar.c | ||
efivar.h | ||
eprom.c | ||
eprom.h | ||
exp_rcv.c | ||
exp_rcv.h | ||
fault.c | ||
fault.h | ||
file_ops.c | ||
firmware.c | ||
hfi.h | ||
init.c | ||
intr.c | ||
iowait.c | ||
iowait.h | ||
Kconfig | ||
mad.c | ||
mad.h | ||
Makefile | ||
mmu_rb.c | ||
mmu_rb.h | ||
msix.c | ||
msix.h | ||
opa_compat.h | ||
opfn.c | ||
opfn.h | ||
pcie.c | ||
pio_copy.c | ||
pio.c | ||
pio.h | ||
platform.c | ||
platform.h | ||
qp.c | ||
qp.h | ||
qsfp.c | ||
qsfp.h | ||
rc.c | ||
rc.h | ||
ruc.c | ||
sdma_txreq.h | ||
sdma.c | ||
sdma.h | ||
sysfs.c | ||
tid_rdma.c | ||
tid_rdma.h | ||
trace_ctxts.h | ||
trace_dbg.h | ||
trace_ibhdrs.h | ||
trace_iowait.h | ||
trace_misc.h | ||
trace_mmu.h | ||
trace_rc.h | ||
trace_rx.h | ||
trace_tid.h | ||
trace_tx.h | ||
trace.c | ||
trace.h | ||
uc.c | ||
ud.c | ||
user_exp_rcv.c | ||
user_exp_rcv.h | ||
user_pages.c | ||
user_sdma.c | ||
user_sdma.h | ||
verbs_txreq.c | ||
verbs_txreq.h | ||
verbs.c | ||
verbs.h | ||
vnic_main.c | ||
vnic_sdma.c | ||
vnic.h |