diff options
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/mpr/mpr.c | 6 | ||||
| -rw-r--r-- | sys/dev/mps/mps.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/sys/dev/mpr/mpr.c b/sys/dev/mpr/mpr.c index 1a75707cbe33..6aff753edc7b 100644 --- a/sys/dev/mpr/mpr.c +++ b/sys/dev/mpr/mpr.c @@ -677,7 +677,11 @@ mpr_iocfacts_allocate(struct mpr_softc *sc, uint8_t attaching) return (error); } - if ((error = mpr_pci_setup_interrupts(sc)) != 0) { + /* + * XXX If the number of MSI-X vectors changes during re-init, this + * won't see it and adjust. + */ + if (attaching && (error = mpr_pci_setup_interrupts(sc)) != 0) { mpr_dprint(sc, MPR_INIT|MPR_ERROR, "Failed to setup interrupts\n"); mpr_free(sc); diff --git a/sys/dev/mps/mps.c b/sys/dev/mps/mps.c index 8bc461db3ab4..c5fb0ee614ce 100644 --- a/sys/dev/mps/mps.c +++ b/sys/dev/mps/mps.c @@ -665,7 +665,11 @@ mps_iocfacts_allocate(struct mps_softc *sc, uint8_t attaching) return (error); } - if ((error = mps_pci_setup_interrupts(sc)) != 0) { + /* + * XXX If the number of MSI-X vectors changes during re-init, this + * won't see it and adjust. + */ + if (attaching && (error = mps_pci_setup_interrupts(sc)) != 0) { mps_dprint(sc, MPS_INIT|MPS_FAULT, "Failed to setup " "interrupts\n"); mps_free(sc); |
