summaryrefslogtreecommitdiffstats
path: root/sys/dev/ntb
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2016-08-18 09:30:55 +0000
committermav <mav@FreeBSD.org>2016-08-18 09:30:55 +0000
commit56a992efae7fbbcab21d464e53c9901371b3a862 (patch)
tree806450c8b75856f057fb9f7a137583f418d07aa4 /sys/dev/ntb
parent4ee055dd745c073392e9bf5eb06d2fcefb369e32 (diff)
downloadFreeBSD-src-56a992efae7fbbcab21d464e53c9901371b3a862.zip
FreeBSD-src-56a992efae7fbbcab21d464e53c9901371b3a862.tar.gz
MFC r303266: Postpone ntb_get_msix_info() till we need to negotiate MSIX.
Calling it earlier increases the window when MSIX info may change. This change does not solve the problem completely, but seems logical. Complete solution should probably include link reset in case of MSIX remap to trigger new negotiation, but we have no way to get notified about that now.
Diffstat (limited to 'sys/dev/ntb')
-rw-r--r--sys/dev/ntb/ntb_hw/ntb_hw.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/ntb/ntb_hw/ntb_hw.c b/sys/dev/ntb/ntb_hw/ntb_hw.c
index 071ef42..89f447e 100644
--- a/sys/dev/ntb/ntb_hw/ntb_hw.c
+++ b/sys/dev/ntb/ntb_hw/ntb_hw.c
@@ -1084,8 +1084,6 @@ ntb_init_isr(struct ntb_softc *ntb)
ntb_create_msix_vec(ntb, num_vectors);
rc = ntb_setup_msix(ntb, num_vectors);
- if (rc == 0 && HAS_FEATURE(ntb, NTB_SB01BASE_LOCKUP))
- ntb_get_msix_info(ntb);
}
if (rc != 0) {
device_printf(ntb->device,
@@ -2715,6 +2713,7 @@ ntb_exchange_msix(void *ctx)
if (ntb->peer_msix_done)
goto msix_done;
+ ntb_get_msix_info(ntb);
for (i = 0; i < XEON_NONLINK_DB_MSIX_BITS; i++) {
ntb_peer_spad_write(ntb->device, NTB_MSIX_DATA0 + i,
ntb->msix_data[i].nmd_data);
OpenPOWER on IntegriCloud