linux_dsm_epyc7002/drivers/infiniband/hw/hfi1
Mike Marciniszyn b6eac931b9 IB/hfi1: Prevent kernel QP post send hard lockups
The driver progress routines can call cond_resched() when
a timeslice is exhausted and irqs are enabled.

If the ULP had been holding a spin lock without disabling irqs and
the post send directly called the progress routine, the cond_resched()
could yield allowing another thread from the same ULP to deadlock
on that same lock.

Correct by replacing the current hfi1_do_send() calldown with a unique
one for post send and adding an argument to hfi1_do_send() to indicate
that the send engine is running in a thread.   If the routine is not
running in a thread, avoid calling cond_resched().

CC: <stable@vger.kernel.org> # 4.7.x-
Fixes: Commit 831464ce4b ("IB/hfi1: Don't call cond_resched in atomic mode when sending packets")
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2017-04-28 13:48:01 -04:00
..
affinity.c
affinity.h
aspm.h
chip_registers.h
chip.c
chip.h
common.h IB/hfi1: Use defines from common headers 2017-04-28 13:48:01 -04:00
debugfs.c
debugfs.h
device.c IB/hfi1: Move driver out of staging 2016-05-26 11:35:14 -04:00
device.h
driver.c IB/hfi1: Use defines from common headers 2017-04-28 13:48:01 -04:00
efivar.c
efivar.h
eprom.c
eprom.h
file_ops.c
firmware.c IB/hfi1: Add a patch value to the firmware version string 2017-04-05 14:45:09 -04:00
hfi.h IB/hfi1: Use defines from common headers 2017-04-28 13:48:01 -04:00
init.c
intr.c
iowait.h
Kconfig
mad.c IB/hfi1: Return SC2VL mappings to FM with VL15 instead of ILLEGAL_VL 2017-04-28 13:48:01 -04:00
mad.h
Makefile IB/hfi1: VNIC SDMA support 2017-04-20 15:19:41 -04:00
mmu_rb.c
mmu_rb.h
opa_compat.h
pcie.c
pio_copy.c
pio.c
pio.h IB/hfi: Fix up comments in engine mapping 2017-04-25 15:24:51 -04:00
platform.c
platform.h
qp.c
qp.h IB/hfi1, qib, rdmavt: Move AETH credit functions into rdmavt 2017-02-19 09:18:38 -05:00
qsfp.c
qsfp.h
rc.c IB/hfi1: Use defines from common headers 2017-04-28 13:48:01 -04:00
ruc.c IB/hfi1: Prevent kernel QP post send hard lockups 2017-04-28 13:48:01 -04:00
sdma_txreq.h
sdma.c
sdma.h IB/hfi: Fix up comments in engine mapping 2017-04-25 15:24:51 -04:00
sysfs.c IB/hfi1: Virtual Network Interface Controller (VNIC) HW support 2017-04-20 15:19:35 -04:00
trace_ctxts.h
trace_dbg.h
trace_ibhdrs.h IB/hfi1: Use defines from common headers 2017-04-28 13:48:01 -04:00
trace_misc.h
trace_rc.h
trace_rx.h
trace_tx.h
trace.c IB/hfi1: Add functions to parse 9B headers 2017-04-28 13:48:01 -04:00
trace.h
uc.c IB/hfi1: Add functions to parse 9B headers 2017-04-28 13:48:01 -04:00
ud.c IB/hfi1: Use defines from common headers 2017-04-28 13:48:01 -04:00
user_exp_rcv.c IB/hfi1: Validate the TID count before using it 2017-04-28 13:48:01 -04:00
user_exp_rcv.h
user_pages.c
user_sdma.c IB/hfi1: Coding style improvement (make sizeof use safer) 2017-04-20 16:25:04 -04:00
user_sdma.h
verbs_txreq.c
verbs_txreq.h
verbs.c IB/hfi1: Prevent kernel QP post send hard lockups 2017-04-28 13:48:01 -04:00
verbs.h IB/hfi1: Prevent kernel QP post send hard lockups 2017-04-28 13:48:01 -04:00
vnic_main.c
vnic_sdma.c
vnic.h