linux/drivers/infiniband/hw/hfi1
Michael J. Ruhl 4c009af473 IB/hfi: Only read capability registers if the capability exists
During driver init, various registers are saved to allow restoration
after an FLR or gen3 bump.  Some of these registers are not available
in some circumstances (i.e. Virtual machines).

This bug makes the driver unusable when the PCI device is passed into
a VM, it fails during probe.

Delete unnecessary register read/write, and only access register if
the capability exists.

Cc: <stable@vger.kernel.org> # 4.14.x
Fixes: a618b7e40a ("IB/hfi1: Move saving PCI values to a separate function")
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2017-12-22 10:42:08 -07: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_registers.h RDMA/hfi1: Defer setting VL15 credits to link-up interrupt 2017-06-01 17:04:20 -04:00
chip.c IB/hfi1: Send 'reboot' as planned down remote reason 2017-11-13 15:53:57 -05:00
chip.h IB/hfi1: Reduce 8051 command timeout 2017-11-13 15:53:56 -05: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: Do not allocate PIO send contexts for VNIC 2017-11-13 15:53:57 -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 locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE() 2017-10-25 11:01:08 +02:00
firmware.c IB/hfi1: Add MODULE_FIRMWARE statements 2017-10-18 10:24:02 -04:00
hfi.h IB/hfi: Only read capability registers if the capability exists 2017-12-22 10:42:08 -07:00
init.c IB/hfi1: Do not allocate PIO send contexts for VNIC 2017-11-13 15:53:57 -05:00
intr.c IB/hfi1: Allow MgmtAllowed on B2B setups 2017-11-13 15:53:56 -05:00
iowait.h IB/hfi1: Serve the most starved iowait entry first 2017-07-31 15:17:54 -04:00
Kconfig IB/hfi1: Remove HFI1_VERBS_31BIT_PSN option 2017-08-22 14:22:38 -04:00
mad.c IB/hfi1: Handle initial value of 0 for CCTI setting 2017-11-13 15:53:57 -05:00
mad.h IB/hfi1: Fix a wrapping test to insure the correct timeout 2017-11-13 15:53:57 -05:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01: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_copy.c IB/hfi1: Optimize pio_buf and send_context structs 2016-11-15 16:37:27 -05: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
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: Convert qp_stats debugfs interface to use new iterator API 2017-08-28 19:12:30 -04:00
qp.h IB/hfi1: Convert qp_stats debugfs interface to use new iterator API 2017-08-28 19:12:30 -04: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: Initialize bth1 in 16B rc ack builder 2017-11-30 16:01:28 -07:00
ruc.c Updates for 4.15 kernel merge window 2017-11-15 14:54:53 -08:00
sdma_txreq.h
sdma.c Updates for 4.15 kernel merge window 2017-11-15 14:54:53 -08:00
sdma.h locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE() 2017-10-25 11:01:08 +02:00
sysfs.c IB/hfi1: Fix incorrect available receive user context count 2017-10-04 15:39:44 -04:00
trace_ctxts.h IB/hfi1: Clean up context initialization 2017-05-04 19:31:46 -04:00
trace_dbg.h
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
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
uc.c Updates for 4.15 kernel merge window 2017-11-15 14:54:53 -08:00
ud.c Updates for 4.15 kernel merge window 2017-11-15 14:54:53 -08: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_txreq.c IB/hfi1: Improve local kmem_cache_alloc performance 2017-08-28 19:12:18 -04:00
verbs_txreq.h IB/hfi1: Set hdr_type when tx req is allocated 2017-10-18 10:13:00 -04:00
verbs.c IB/hfi1: Add tx_opcode_stats like the opcode_stats 2017-10-30 14:51:36 -04:00
verbs.h IB/hfi1: Remove HFI1_VERBS_31BIT_PSN option 2017-08-22 14:22:38 -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
vnic.h IB/hfi1: Add support to receive 16B bypass packets 2017-08-22 14:22:37 -04:00