summaryrefslogtreecommitdiff
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorJoel Sing <jsing@cvs.openbsd.org>2010-09-08 15:16:23 +0000
committerJoel Sing <jsing@cvs.openbsd.org>2010-09-08 15:16:23 +0000
commit063786806908e37736b99d757eb1cd58eca3a538 (patch)
tree8188b1653bbe2ce7ac15fd0f5651111a46ecd808 /sys/dev/ata
parent98e3d75e2552c7f1eb522392907416b68fadecfa (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.c4
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