diff options
author | marius <marius@FreeBSD.org> | 2008-09-02 21:06:28 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2008-09-02 21:06:28 +0000 |
commit | 6a6f30db5a22aab1cca7b11f6053501d5c547681 (patch) | |
tree | bafc6bc9159481d8978c382c1c57f77ab609f651 /sys/sparc64 | |
parent | 5f23a3b5ca609a1597f573305e7e58558a73a897 (diff) | |
download | FreeBSD-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.c | 8 |
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 } |