diff options
author | Joel Sing <jsing@cvs.openbsd.org> | 2010-09-08 15:16:23 +0000 |
---|---|---|
committer | Joel Sing <jsing@cvs.openbsd.org> | 2010-09-08 15:16:23 +0000 |
commit | 063786806908e37736b99d757eb1cd58eca3a538 (patch) | |
tree | 8188b1653bbe2ce7ac15fd0f5651111a46ecd808 /sys/dev/ata | |
parent | 98e3d75e2552c7f1eb522392907416b68fadecfa (diff) |
Introduce a disk_lookup() function which calls device_lookup(), before
verifying that the resulting device is present on the disklist. This
avoids a race whereby the disk driver can be accessed as soon as the
softc has been allocated, but before the disk has completed
initialisation and has called disk_attach() (up until this point
dk_label is still a null pointer).
Cut cd(4), sd(4) and wd(4) across to disk_lookup(). All callers of
disk_attach() need to be tested and cut over in due course.
ok deraadt@ krw@
Diffstat (limited to 'sys/dev/ata')
-rw-r--r-- | sys/dev/ata/wd.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/ata/wd.c b/sys/dev/ata/wd.c index d4f140fde9c..67ee928cfe2 100644 --- a/sys/dev/ata/wd.c +++ b/sys/dev/ata/wd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wd.c,v 1.92 2010/09/08 14:47:12 jsing Exp $ */ +/* $OpenBSD: wd.c,v 1.93 2010/09/08 15:16:22 jsing Exp $ */ /* $NetBSD: wd.c,v 1.193 1999/02/28 17:15:27 explorer Exp $ */ /* @@ -183,7 +183,7 @@ bdev_decl(wd); #define wdlock(wd) disk_lock(&(wd)->sc_dk) #define wdunlock(wd) disk_unlock(&(wd)->sc_dk) -#define wdlookup(unit) (struct wd_softc *)device_lookup(&wd_cd, (unit)) +#define wdlookup(unit) (struct wd_softc *)disk_lookup(&wd_cd, (unit)) int |