diff --git a/sys/dev/ata/wd.c b/sys/dev/ata/wd.c index 77e4ed867b5e..e0f9f38879e6 100644 --- a/sys/dev/ata/wd.c +++ b/sys/dev/ata/wd.c @@ -1,4 +1,4 @@ -/* $NetBSD: wd.c,v 1.255 2003/06/29 17:03:47 bouyer Exp $ */ +/* $NetBSD: wd.c,v 1.256 2003/06/29 19:28:16 bouyer Exp $ */ /* * Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved. @@ -66,7 +66,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.255 2003/06/29 17:03:47 bouyer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.256 2003/06/29 19:28:16 bouyer Exp $"); #ifndef WDCDEBUG #define WDCDEBUG @@ -711,7 +711,7 @@ __wdstart(wd, bp) wd->sc_wdc_bio.flags = ATA_SINGLE; else wd->sc_wdc_bio.flags = 0; - if (wd->sc_flags & WDF_LBA48) + if (wd->sc_flags & WDF_LBA48 && wd->sc_wdc_bio.blkno > 0xffffff) wd->sc_wdc_bio.flags |= ATA_LBA48; if (wd->sc_flags & WDF_LBA) wd->sc_wdc_bio.flags |= ATA_LBA; @@ -1543,7 +1543,7 @@ again: wd->sc_wdc_bio.flags = ATA_POLL; if (wddumpmulti == 1) wd->sc_wdc_bio.flags |= ATA_SINGLE; - if (wd->sc_flags & WDF_LBA48) + if (wd->sc_flags & WDF_LBA48 && blkno > 0xffffff) wd->sc_wdc_bio.flags |= ATA_LBA48; if (wd->sc_flags & WDF_LBA) wd->sc_wdc_bio.flags |= ATA_LBA;