diff options
author | mav <mav@FreeBSD.org> | 2016-08-18 09:30:55 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2016-08-18 09:30:55 +0000 |
commit | 56a992efae7fbbcab21d464e53c9901371b3a862 (patch) | |
tree | 806450c8b75856f057fb9f7a137583f418d07aa4 /sys/dev/ntb | |
parent | 4ee055dd745c073392e9bf5eb06d2fcefb369e32 (diff) | |
download | FreeBSD-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.c | 3 |
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); |