summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2008-09-02 21:06:28 +0000
committermarius <marius@FreeBSD.org>2008-09-02 21:06:28 +0000
commit6a6f30db5a22aab1cca7b11f6053501d5c547681 (patch)
treebafc6bc9159481d8978c382c1c57f77ab609f651 /sys/sparc64
parent5f23a3b5ca609a1597f573305e7e58558a73a897 (diff)
downloadFreeBSD-src-6a6f30db5a22aab1cca7b11f6053501d5c547681.zip
FreeBSD-src-6a6f30db5a22aab1cca7b11f6053501d5c547681.tar.gz
Bypass isa_probe_children(9) and directly call bus_generic_attach(9)
in order to avoid the invasive probes done by identify-routines of ISA drivers, which may access unassigned addresses or those of unrelated devices and thus in turn can trigger master/target aborts as revealed by r182108 and ahc(4). I think that this is also the cause of the hang previously seen on B100 blades during boot. Bypassing isa_probe_children(9) also avoids adding ISA hints, which just can be wrong for sparc64. Reported by: gavin
Diffstat (limited to 'sys/sparc64')
-rw-r--r--sys/sparc64/sparc64/autoconf.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/sparc64/sparc64/autoconf.c b/sys/sparc64/sparc64/autoconf.c
index 438c386..6816156 100644
--- a/sys/sparc64/sparc64/autoconf.c
+++ b/sys/sparc64/sparc64/autoconf.c
@@ -71,8 +71,14 @@ configure(void *dummy)
#endif
root_bus_configure();
#ifdef DEV_ISA
+ /*
+ * We bypass isa_probe_children(9) here in order to avoid
+ * invasive probes done by identify-routines of ISA drivers,
+ * which in turn can trigger master/target aborts, and the
+ * addition of ISA hints, which might erroneously exist.
+ */
if (isa_bus_device != NULL)
- isa_probe_children(isa_bus_device);
+ (void)bus_generic_attach(isa_bus_device);
#endif
}
OpenPOWER on IntegriCloud