diff options
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/ata/wd.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/dev/ata/wd.c b/sys/dev/ata/wd.c index d29a9bb9b9c..41e2a51068a 100644 --- a/sys/dev/ata/wd.c +++ b/sys/dev/ata/wd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wd.c,v 1.43 2005/08/27 14:14:48 jsg Exp $ */ +/* $OpenBSD: wd.c,v 1.44 2005/09/01 02:16:56 uwe Exp $ */ /* $NetBSD: wd.c,v 1.193 1999/02/28 17:15:27 explorer Exp $ */ /* @@ -1258,10 +1258,24 @@ bad144intern(struct wd_softc *wd) int wd_get_params(struct wd_softc *wd, u_int8_t flags, struct ataparams *params) { +#ifdef __zaurus__ + /* XXX fix after 3.8 release */ + /* We already have the drive parameters; just return them. */ + if (params == &wd->sc_params && wd->sc_params.atap_cylinders != 0) + return 0; +#endif /* __zaurus__ */ switch (ata_get_params(wd->drvp, flags, params)) { case CMD_AGAIN: return 1; case CMD_ERR: +#ifdef __zaurus__ + /* XXX fix after 3.8 release */ + /* We already have the drive parameters; reuse them. */ + if (wd->sc_params.atap_cylinders != 0) { + *params = wd->sc_params; + return 0; + } +#endif /* __zaurus__ */ /* * We `know' there's a drive here; just assume it's old. * This geometry is only used to read the MBR and print a |