summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_bus.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2009-09-24 17:03:32 +0000
committermav <mav@FreeBSD.org>2009-09-24 17:03:32 +0000
commit19afb02afb5d91502a5a27446ce6684581d342fc (patch)
tree468335929fb96b87b634a4e2f8ffb1bc4ea40609 /sys/kern/subr_bus.c
parent2109203e5b68efeeceae192765c5416bb960dbce (diff)
downloadFreeBSD-src-19afb02afb5d91502a5a27446ce6684581d342fc.zip
FreeBSD-src-19afb02afb5d91502a5a27446ce6684581d342fc.tar.gz
Do not call BUS_DRIVER_ADDED() for detached buses (attach failed) on
driver load. This fixes crash on atapicam module load on systems, where some ata channels (usually ata1) was probed, but failed to attach. Reviewed by: jhb, imp Tested by: many
Diffstat (limited to 'sys/kern/subr_bus.c')
-rw-r--r--sys/kern/subr_bus.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index f202631..3f51c5c 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -1017,7 +1017,7 @@ devclass_driver_added(devclass_t dc, driver_t *driver)
* Call BUS_DRIVER_ADDED for any existing busses in this class.
*/
for (i = 0; i < dc->maxunit; i++)
- if (dc->devices[i])
+ if (dc->devices[i] && device_is_attached(dc->devices[i]))
BUS_DRIVER_ADDED(dc->devices[i], driver);
/*
OpenPOWER on IntegriCloud