linux/drivers/infiniband/hw/hfi1
Mitko Haralanov 9636258f10 IB/hfi1: Remove dependence on qp->s_hdrwords
The s_hdrwords variable was used to indicate whether a
packet was already built on a previous iteration of the
send engine. This variable assumed the protection of the
QP's RVT_S_BUSY flag, which was required since the the
QP's s_lock was dropped just prior to the packet being
queued on the one of the egress mechanisms.

Support for multiple send engine instantiations require
that the field not be used due to concurency issues.
The ps.txreq signals the "already built" without the
potential concurency issues.

Fix by getting rid of all s_hdrword usage.   A wrapper
is added to test for the already built case that used to
use s_hdrwords.

What used to be stored in s_hdrwords is now in the txreq.
The PBC is not counted, but is added in the pio/sdma code
paths prior to posting the packet.

Reviewed-by: Don Hiatt <don.hiatt@intel.com>
Signed-off-by: Mitko Haralanov <mitko.haralanov@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-02-01 15:24:32 -07:00
..
Kconfig IB/hfi1: Remove HFI1_VERBS_31BIT_PSN option 2017-08-22 14:22:38 -04:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
affinity.c IB/hfi1: Replace deprecated pci functions with new API 2017-06-27 16:58:11 -04:00
affinity.h IB/hfi1: Name function prototype parameters for affinity module 2017-06-27 16:56:33 -04:00
aspm.h IB/hfi1: Convert timers to use timer_setup() 2017-10-18 11:48:19 -04:00
chip.c IB/hfi1: Re-order IRQ cleanup to address driver cleanup race 2018-02-01 15:24:32 -07:00
chip.h IB/hfi1: Fix infinite loop in 8051 command error path 2018-01-05 13:34:55 -05:00
chip_registers.h RDMA/hfi1: Defer setting VL15 credits to link-up interrupt 2017-06-01 17:04:20 -04:00
common.h IB/hfi1: Eliminate allocation while atomic 2017-10-18 10:12:59 -04:00
debugfs.c Driver core patches for 4.15-rc1 2017-11-16 08:55:30 -08:00
debugfs.h IB/hfi1: Add transmit fault injection feature 2017-04-05 14:45:09 -04:00
device.c infiniband: utilize the new cdev_set_parent function 2017-03-21 06:44:33 +01:00
device.h
driver.c IB/{hfi1, qib}: Fix a concurrency issue with device name in logging 2018-01-05 13:34:55 -05:00
efivar.c IB/hfi1: Check upper-case EFI variables 2017-02-19 09:18:37 -05:00
efivar.h
eprom.c IB/hfi1: Check eeprom config partition validity 2017-09-27 11:10:36 -04:00
eprom.h IB/hfi1: Add ability to read platform config from the EPROM 2016-10-02 08:42:20 -04:00
exp_rcv.c IB/hfi1: Initialize TID lists to avoid crash on cleanup 2017-06-27 16:58:13 -04:00
exp_rcv.h IB/hfi1: Fix bar0 mapping to use write combining 2017-07-31 15:17:54 -04:00
file_ops.c IB/hfi1: Fix for potential refcount leak in hfi1_open_file() 2018-02-01 15:24:32 -07:00
firmware.c IB/hfi1: Fix infinite loop in 8051 command error path 2018-01-05 13:34:55 -05:00
hfi.h IB/hfi1: Re-order IRQ cleanup to address driver cleanup race 2018-02-01 15:24:32 -07:00
init.c IB/hfi1: Fix for early release of sdma context 2018-02-01 15:24:32 -07:00
intr.c IB/hfi1: Allow MgmtAllowed on B2B setups 2017-11-13 15:53:56 -05:00
iowait.h IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
mad.c IB/hfi1: Change slid arg in ingress_pkey_table_fail to 32bit 2017-12-22 13:46:11 -07:00
mad.h IB/hfi1: Fix a wrapping test to insure the correct timeout 2017-11-13 15:53:57 -05:00
mmu_rb.c IB/hfi1: Remove wrapper function in mmu_rb 2017-11-13 15:53:56 -05:00
mmu_rb.h IB/hfi1: Don't remove RB entry when not needed. 2017-06-27 16:56:33 -04:00
opa_compat.h IB/hfi1: Document phys port state bits not used in IB 2017-08-22 14:22:37 -04:00
pcie.c IB/hfi: Only read capability registers if the capability exists 2017-12-22 10:42:08 -07:00
pio.c Updates for 4.15 kernel merge window 2017-11-15 14:54:53 -08:00
pio.h IB/hfi1: Do not allocate PIO send contexts for VNIC 2017-11-13 15:53:57 -05:00
pio_copy.c IB/hfi1: Optimize pio_buf and send_context structs 2016-11-15 16:37:27 -05:00
platform.c IB/hfi1: Only reset QSFP after link up and turn off AOC TX 2017-09-27 11:10:36 -04:00
platform.h IB/hfi1: Define platform_config_table_limits once 2016-12-11 15:29:42 -05:00
qp.c IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
qp.h IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
qsfp.c IB/hfi1: Extend i2c timeout 2016-10-02 08:42:13 -04:00
qsfp.h IB/hfi1: Fetch monitor values on-demand for CableInfo query 2016-08-22 14:31:41 -04:00
rc.c IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
ruc.c IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
sdma.c IB/hfi1: Fix for early release of sdma context 2018-02-01 15:24:32 -07:00
sdma.h IB/hfi1: Fix for early release of sdma context 2018-02-01 15:24:32 -07:00
sdma_txreq.h
sysfs.c IB/hfi1: Fix incorrect available receive user context count 2017-10-04 15:39:44 -04:00
trace.c Merge branch 'hfi1' into k.o/for-next 2017-10-18 10:15:14 -04:00
trace.h IB/hfi1: Extend input hdr tracing for packet type 2017-09-27 11:34:13 -04:00
trace_ctxts.h IB/hfi1: Clean up context initialization 2017-05-04 19:31:46 -04:00
trace_dbg.h IB/hfi1: Separate tracepoints into specific headers 2016-08-02 12:00:54 -04:00
trace_ibhdrs.h IB/hfi1: Fix output trace issues from 16B change 2017-10-04 15:39:44 -04:00
trace_misc.h IB/hfi1: Add traces for TID operations 2017-06-27 16:58:13 -04:00
trace_mmu.h IB/hif1: Remove static tracing from SDMA hot path 2017-08-28 19:12:27 -04:00
trace_rc.h IB/rdmavt, IB/hfi1: Fix timer migration regressions 2017-04-05 14:45:09 -04:00
trace_rx.h IB/hfi1: Extend input hdr tracing for packet type 2017-09-27 11:34:13 -04:00
trace_tx.h IB/hif1: Remove static tracing from SDMA hot path 2017-08-28 19:12:27 -04:00
uc.c IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
ud.c IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
user_exp_rcv.c IB/hfi1: Refactor hfi_user_exp_rcv_invalid() IOCTLs 2017-09-29 11:08:06 -04:00
user_exp_rcv.h IB/hfi1: Move structure definitions from user_exp_rcv.c to user_exp_rcv.h 2017-08-28 19:12:22 -04:00
user_pages.c IB/hfi1: Virtual Network Interface Controller (VNIC) HW support 2017-04-20 15:19:35 -04:00
user_sdma.c Updates for 4.15 kernel merge window 2017-11-15 14:54:53 -08:00
user_sdma.h IB/hfi1: Convert the macro AHG_HEADER_SET into an inline function 2017-09-27 11:34:13 -04:00
verbs.c IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
verbs.h IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
verbs_txreq.c IB/hfi1: Improve local kmem_cache_alloc performance 2017-08-28 19:12:18 -04:00
verbs_txreq.h IB/hfi1: Remove dependence on qp->s_hdrwords 2018-02-01 15:24:32 -07:00
vnic.h IB/hfi1: Add support to receive 16B bypass packets 2017-08-22 14:22:37 -04:00
vnic_main.c IB/hfi1: Do not allocate PIO send contexts for VNIC 2017-11-13 15:53:57 -05:00
vnic_sdma.c IB/hfi1: Improve local kmem_cache_alloc performance 2017-08-28 19:12:18 -04:00