mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-13 15:06:01 +07:00
6199c8961e
If a port has an M_Key lease set, the M_Key protect bits set to 1, and a SubnSet arrives with an invalid M_Key, an M_Key mismatch trap is generated, the lease timer begins as expected, and eventually the M_Key protect bits will be set back to 0 as per the spec. However, if any other SMP with an invalid M_Key arrives, the lease timer is expired and the M_Key protect bits remain in force. This is not according to to spec. In particular, C14-17 says that a lease timer that is underway is not affected by protection level checks (ie, at protection level 1, a SubnGet with a bad M_Key may be successful, but does not stop the timer), and C14-19 says that the timer shall stop when a valid M_Key has been received. C14-19 is the only compliance statement that specifies a stopping condition for the timer. This behavior is magnified if the port's Master SM LID attribute points at itself. In that case, the M_Key mismatch trap is sufficient to expire the timer, and the mkey lease attribute is rendered useless. Reviewed-by: Ram Vepa <ram.vepa@qlogic.com> Signed-off-by: Jim Foraker <foraker1@llnl.gov> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <roland@purestorage.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
qib_6120_regs.h | ||
qib_7220_regs.h | ||
qib_7220.h | ||
qib_7322_regs.h | ||
qib_common.h | ||
qib_cq.c | ||
qib_diag.c | ||
qib_dma.c | ||
qib_driver.c | ||
qib_eeprom.c | ||
qib_file_ops.c | ||
qib_fs.c | ||
qib_iba6120.c | ||
qib_iba7220.c | ||
qib_iba7322.c | ||
qib_init.c | ||
qib_intr.c | ||
qib_keys.c | ||
qib_mad.c | ||
qib_mad.h | ||
qib_mmap.c | ||
qib_mr.c | ||
qib_pcie.c | ||
qib_pio_copy.c | ||
qib_qp.c | ||
qib_qsfp.c | ||
qib_qsfp.h | ||
qib_rc.c | ||
qib_ruc.c | ||
qib_sd7220.c | ||
qib_sdma.c | ||
qib_srq.c | ||
qib_sysfs.c | ||
qib_twsi.c | ||
qib_tx.c | ||
qib_uc.c | ||
qib_ud.c | ||
qib_user_pages.c | ||
qib_user_sdma.c | ||
qib_user_sdma.h | ||
qib_verbs_mcast.c | ||
qib_verbs.c | ||
qib_verbs.h | ||
qib_wc_ppc64.c | ||
qib_wc_x86_64.c | ||
qib.h |