summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2017-05-14 14:04:25 +0000
committermarius <marius@FreeBSD.org>2017-05-14 14:04:25 +0000
commitbb5dae3f631153c9c528095117091bb75406e419 (patch)
tree7a612a5c2101b06e6356cc966fb945be7a7bc1e7
parent212b9baa3d46447fee3cba507fa1b734842a2af9 (diff)
downloadFreeBSD-src-bb5dae3f631153c9c528095117091bb75406e419.zip
FreeBSD-src-bb5dae3f631153c9c528095117091bb75406e419.tar.gz
MFC: r317578
Fix a bug introduced as part of r287726; use the right device_t for determining the softc of the bridge in psycho_route_interrupt(). [1] While at it, update the corresponding comment that the code in question is also necessary for U30s in addition to E450s (a fact that has been known for ages). PR: 218478 [1] Submitted by: Yoshihiko Iwama [1]
-rw-r--r--sys/sparc64/pci/psycho.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/sparc64/pci/psycho.c b/sys/sparc64/pci/psycho.c
index 496df96..27891ff 100644
--- a/sys/sparc64/pci/psycho.c
+++ b/sys/sparc64/pci/psycho.c
@@ -942,14 +942,14 @@ psycho_route_interrupt(device_t bridge, device_t dev, int pin)
if (pin > 4)
return (pin);
/*
- * Guess the INO; we always assume that this is a non-OBIO
- * device, and that pin is a "real" intpin number. Determine
- * the mapping register to be used by the slot number.
- * We only need to do this on E450s, it seems; here, the slot numbers
- * for bus A are one-based, while those for bus B seemingly have an
- * offset of 2 (hence the factor of 3 below).
+ * Guess the INO; we always assume that this is a non-OBIO device,
+ * and that pin is a "real" intpin number. Determine the mapping
+ * register to be used by the slot number.
+ * We only need to do this on E450s and U30s, though; here, the
+ * slot numbers for bus A are one-based, while those for bus B
+ * seemingly have an offset of 2 (hence the factor of 3 below).
*/
- sc = device_get_softc(dev);
+ sc = device_get_softc(bridge);
intrmap = PSR_PCIA0_INT_MAP +
8 * (pci_get_slot(dev) - 1 + 3 * sc->sc_half);
mintr = INTINO(PSYCHO_READ8(sc, intrmap)) + pin - 1;
OpenPOWER on IntegriCloud