linux_dsm_epyc7002/drivers/infiniband/hw/qib
Todd Rimmer 4ccf28a26c IB/qib: Correct ordering of reregister vs. port active events
When a port first goes active with SMA Set(PortInfo) and reregister
bit set, the driver sends up the reregister event followed by a port
active event.

The problem is that in response to reregister event most apps try to
issue a SA query of some sort, but that fails because port is not
active.

The qib driver needs to a trivial change to correct this behavior.

This issue has been there for a while; however the recent serdes work
has probably made the delay between the reregister event and the
active event larger and hence opened the race far enough so that its
being seen more often.

The patch also changes the clientrereg local to a u8 and saves off the
rereg bit into it.  The code following the nested subn_get_portinfo()
now restores that bit per o14-12.2.1 with a logical OR from that copy.

Reviewed-by: Ram Vepa <ram.vepa@qlogic.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2012-05-14 12:38:28 -07:00
..
Kconfig RDMA: Add netlink infrastructure 2011-05-20 11:46:11 -07:00
Makefile IB/qib: Use request_firmware() to load SD7220 firmware 2010-07-08 13:27:05 -07:00
qib_6120_regs.h IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib_7220_regs.h IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib_7220.h IB/qib: Eliminate 64-bit jiffies use 2012-01-03 20:52:12 -08:00
qib_7322_regs.h IB/qib: Mask hardware error during link reset 2010-07-06 14:13:20 -07:00
qib_common.h IB/qib: Allow PSM to select from multiple port assignment algorithms 2010-07-21 11:39:36 -07:00
qib_cq.c IB/qib: Generate completion callback on errors 2011-01-10 17:42:19 -08:00
qib_diag.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
qib_dma.c IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib_driver.c IB/qib: Add prefetch for eager buffers 2012-05-14 12:36:18 -07:00
qib_eeprom.c IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib_file_ops.c IB/qib: Correct sense on freectxts increment and decrement 2011-12-19 09:19:34 -08:00
qib_fs.c infiniband: umode_t noise, including open-coded S_ISDIR() 2012-01-03 22:55:03 -05:00
qib_iba6120.c IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00
qib_iba7220.c IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00
qib_iba7322.c IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00
qib_init.c IB/qib: Fix style issues 2012-01-03 20:51:42 -08:00
qib_intr.c IB/qib: Ensure that LOS and DFE are being turned off 2011-06-17 11:56:59 -07:00
qib_keys.c IB/qib: Fix refcount leak in lkey/rkey validation 2011-01-10 17:42:23 -08:00
qib_mad.c IB/qib: Correct ordering of reregister vs. port active events 2012-05-14 12:38:28 -07:00
qib_mad.h IB/pma: Add include file for IBA performance counters definitions 2011-07-18 21:04:35 -07:00
qib_mmap.c IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib_mr.c IB/qib: RDMA lkey/rkey validation is inefficient for large MRs 2011-01-10 17:42:22 -08:00
qib_pcie.c IB/qib: Add logic for affinity hint 2012-02-25 17:45:49 -08:00
qib_pio_copy.c IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib_qp.c IB/qib: Precompute timeout jiffies to optimize latency 2011-10-21 09:38:56 -07:00
qib_qsfp.c IB/qib: Fix over-scheduling of QSFP work 2011-11-28 12:17:33 -08:00
qib_qsfp.h IB/qib: Eliminate 64-bit jiffies use 2012-01-03 20:52:12 -08:00
qib_rc.c IB: Change CQE "csum_ok" field to a bit flag 2012-03-08 12:34:27 -08:00
qib_ruc.c IB/qib: Remove s_lock around header validation 2011-10-21 09:38:57 -07:00
qib_sd7220.c IB/qib: Fix style issues 2012-01-03 20:51:42 -08:00
qib_sdma.c infiniband: add moduleparam.h to drivers/infiniband as required 2011-10-31 19:31:36 -04:00
qib_srq.c RDMA/core: Add SRQ type field 2011-10-13 09:13:26 -07:00
qib_sysfs.c IB/qib: Fix style issues 2012-01-03 20:51:42 -08:00
qib_twsi.c Fix common misspellings 2011-03-31 11:26:23 -03:00
qib_tx.c IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00
qib_uc.c IB: Change CQE "csum_ok" field to a bit flag 2012-03-08 12:34:27 -08:00
qib_ud.c Fix common misspellings 2011-03-31 11:26:23 -03:00
qib_user_pages.c mm: distinguish between mlocked and pinned pages 2011-10-31 17:30:46 -07:00
qib_user_sdma.c Fix common misspellings 2011-03-31 11:26:23 -03:00
qib_user_sdma.h IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib_verbs_mcast.c IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib_verbs.c IB/qib: Optimize locking for get_txreq() 2012-01-03 20:53:31 -08:00
qib_verbs.h IB/qib: Precompute timeout jiffies to optimize latency 2011-10-21 09:38:56 -07:00
qib_wc_ppc64.c IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib_wc_x86_64.c IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters 2010-05-23 21:44:54 -07:00
qib.h IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00