summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/sparc/dev/presto.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/arch/sparc/dev/presto.c b/sys/arch/sparc/dev/presto.c
index f79450dc536..17337f75072 100644
--- a/sys/arch/sparc/dev/presto.c
+++ b/sys/arch/sparc/dev/presto.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: presto.c,v 1.7 2007/06/01 00:07:48 krw Exp $ */
+/* $OpenBSD: presto.c,v 1.8 2007/06/04 16:38:58 krw Exp $ */
/*
* Copyright (c) 2003, Miodrag Vallat.
* All rights reserved.
@@ -71,7 +71,7 @@ struct presto_softc {
void prestostrategy(struct buf *);
void presto_attach(struct device *, struct device *, void *);
-void presto_getdisklabel(struct presto_softc *);
+void presto_getdisklabel(dev_t, struct presto_softc *);
int presto_match(struct device *, void *, void *);
struct cfattach presto_ca = {
@@ -167,9 +167,6 @@ presto_attach(struct device *parent, struct device *self, void *args)
sc->sc_dk.dk_driver = &presto_dk;
sc->sc_dk.dk_name = sc->sc_dev.dv_xname;
disk_attach(&sc->sc_dk);
-
- /* read the disk label immediately */
- presto_getdisklabel(sc);
}
/*
@@ -216,6 +213,9 @@ prestoopen(dev_t dev, int flag, int fmt, struct proc *proc)
if (sc == NULL)
return (ENXIO);
+ /* read the disk label */
+ presto_getdisklabel(dev, sc);
+
/* only allow valid partitions */
part = DISKPART(dev);
if (part != RAW_PART &&
@@ -368,7 +368,7 @@ prestoioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *proc)
* Read the disklabel. If none is present, use a fictitious one instead.
*/
void
-presto_getdisklabel(struct presto_softc *sc)
+presto_getdisklabel(dev_t dev, struct presto_softc *sc)
{
struct disklabel *lp = sc->sc_dk.dk_label;
@@ -392,6 +392,6 @@ presto_getdisklabel(struct presto_softc *sc)
lp->d_magic2 = DISKMAGIC;
lp->d_checksum = dkcksum(lp);
- readdisklabel(DISKLABELDEV(sc->sc_dev.dv_unit), prestostrategy,
- sc->sc_dk.dk_label, sc->sc_dk.dk_cpulabel, 0);
+ readdisklabel(DISKLABELDEV(dev), prestostrategy, sc->sc_dk.dk_label,
+ sc->sc_dk.dk_cpulabel, 0);
}