svn commit: r303266 - head/sys/dev/ntb/ntb_hw
Alexander Motin
mav at FreeBSD.org
Sun Jul 24 14:42:13 UTC 2016
Author: mav
Date: Sun Jul 24 14:42:11 2016
New Revision: 303266
URL: https://svnweb.freebsd.org/changeset/base/303266
Log:
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.
Modified:
head/sys/dev/ntb/ntb_hw/ntb_hw.c
Modified: head/sys/dev/ntb/ntb_hw/ntb_hw.c
==============================================================================
--- head/sys/dev/ntb/ntb_hw/ntb_hw.c Sun Jul 24 11:05:23 2016 (r303265)
+++ head/sys/dev/ntb/ntb_hw/ntb_hw.c Sun Jul 24 14:42:11 2016 (r303266)
@@ -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);
More information about the svn-src-all
mailing list