Module Name: src
Committed By: bouyer
Date: Tue Oct 9 13:36:07 UTC 2012
Modified Files:
src/sys/dev/ata [tls-maxphys]: atareg.h wd.c
src/sys/dev/ic [tls-maxphys]: ahcisata_core.c ahcisatareg.h
src/sys/dev/pci [tls-maxphys]: acardide.c aceride.c ahcisata_pci.c
artsata.c cmdide.c cypide.c geodeide.c hptide.c iteide.c ixpide.c
jmide.c nside.c optiide.c pciide.c pciide_common.c pdcide.c
pdcsata.c piixide.c rccide.c rdcide.c schide.c siside.c slide.c
stpcide.c svwsata.c toshide.c viaide.c
Log Message:
Support transfers of up to MACHINE_MAXPHYS in all pciide variants, and ahci.
wd(4) limits its maxphys depending on the drives's capability (64k sectors
for LBA48, 256 sectors for LBA and 128 sectors for older devices).
I assumed all pciide controllers could do MACHINE_MAXPHYS transfers, but
this may not be true. The capabilities of each controller variants should be
looked at more closely.
To generate a diff of this commit:
cvs rdiff -u -r1.40 -r1.40.12.1 src/sys/dev/ata/atareg.h
cvs rdiff -u -r1.400 -r1.400.2.1 src/sys/dev/ata/wd.c
cvs rdiff -u -r1.43 -r1.43.2.1 src/sys/dev/ic/ahcisata_core.c
cvs rdiff -u -r1.11 -r1.11.12.1 src/sys/dev/ic/ahcisatareg.h
cvs rdiff -u -r1.30 -r1.30.2.1 src/sys/dev/pci/acardide.c \
src/sys/dev/pci/ahcisata_pci.c
cvs rdiff -u -r1.35 -r1.35.2.1 src/sys/dev/pci/aceride.c
cvs rdiff -u -r1.24 -r1.24.2.1 src/sys/dev/pci/artsata.c \
src/sys/dev/pci/geodeide.c src/sys/dev/pci/ixpide.c \
src/sys/dev/pci/optiide.c
cvs rdiff -u -r1.38 -r1.38.2.1 src/sys/dev/pci/cmdide.c
cvs rdiff -u -r1.29 -r1.29.2.1 src/sys/dev/pci/cypide.c
cvs rdiff -u -r1.33 -r1.33.2.1 src/sys/dev/pci/hptide.c \
src/sys/dev/pci/siside.c
cvs rdiff -u -r1.17 -r1.17.2.1 src/sys/dev/pci/iteide.c
cvs rdiff -u -r1.18 -r1.18.2.1 src/sys/dev/pci/jmide.c
cvs rdiff -u -r1.7 -r1.7.2.1 src/sys/dev/pci/nside.c src/sys/dev/pci/rdcide.c \
src/sys/dev/pci/schide.c
cvs rdiff -u -r1.219.18.1 -r1.219.18.2 src/sys/dev/pci/pciide.c
cvs rdiff -u -r1.57 -r1.57.2.1 src/sys/dev/pci/pciide_common.c
cvs rdiff -u -r1.34 -r1.34.2.1 src/sys/dev/pci/pdcide.c
cvs rdiff -u -r1.25 -r1.25.2.1 src/sys/dev/pci/pdcsata.c
cvs rdiff -u -r1.63 -r1.63.2.1 src/sys/dev/pci/piixide.c
cvs rdiff -u -r1.26 -r1.26.2.1 src/sys/dev/pci/rccide.c \
src/sys/dev/pci/stpcide.c
cvs rdiff -u -r1.28 -r1.28.2.1 src/sys/dev/pci/slide.c
cvs rdiff -u -r1.16 -r1.16.2.1 src/sys/dev/pci/svwsata.c
cvs rdiff -u -r1.9 -r1.9.2.1 src/sys/dev/pci/toshide.c
cvs rdiff -u -r1.83 -r1.83.2.1 src/sys/dev/pci/viaide.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/ata/atareg.h
diff -u src/sys/dev/ata/atareg.h:1.40 src/sys/dev/ata/atareg.h:1.40.12.1
--- src/sys/dev/ata/atareg.h:1.40 Mon Oct 24 20:52:34 2011
+++ src/sys/dev/ata/atareg.h Tue Oct 9 13:36:04 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: atareg.h,v 1.40 2011/10/24 20:52:34 jakllsch Exp $ */
+/* $NetBSD: atareg.h,v 1.40.12.1 2012/10/09 13:36:04 bouyer Exp $ */
/*
* Copyright (c) 1998, 2001 Manuel Bouyer.
@@ -138,6 +138,11 @@
#define WDCC_READDMA_EXT 0x25 /* read 48-bit addressing with DMA */
#define WDCC_WRITEDMA_EXT 0x35 /* write 48-bit addressing with DMA */
+/* max transfer size for READ and WRITE commands */
+#define WDC_SECCNT_MAX (1 << 7)
+#define WDC_SECCNT_MAX_LBA (1 << 8)
+#define WDC_SECCNT_MAX_LBAEXT (1 << 16)
+
#if defined(_KERNEL) || defined(_STANDALONE)
#include <dev/ata/ataconf.h>
Index: src/sys/dev/ata/wd.c
diff -u src/sys/dev/ata/wd.c:1.400 src/sys/dev/ata/wd.c:1.400.2.1
--- src/sys/dev/ata/wd.c:1.400 Tue Jul 31 15:50:34 2012
+++ src/sys/dev/ata/wd.c Tue Oct 9 13:36:04 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: wd.c,v 1.400 2012/07/31 15:50:34 bouyer Exp $ */
+/* $NetBSD: wd.c,v 1.400.2.1 2012/10/09 13:36:04 bouyer Exp $ */
/*
* Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved.
@@ -54,7 +54,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.400 2012/07/31 15:50:34 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.400.2.1 2012/10/09 13:36:04 bouyer Exp $");
#include "opt_ata.h"
@@ -356,17 +356,24 @@ wdattach(device_t parent, device_t self,
wd->sc_capacity28 =
(wd->sc_params.atap_capacity[1] << 16) |
wd->sc_params.atap_capacity[0];
+ wd->sc_dev->dv_maxphys =
+ min(WDC_SECCNT_MAX_LBAEXT * DEV_BSIZE, parent->dv_maxphys);
+
} else if ((wd->sc_flags & WDF_LBA) != 0) {
aprint_verbose(" LBA addressing\n");
wd->sc_capacity28 = wd->sc_capacity =
(wd->sc_params.atap_capacity[1] << 16) |
wd->sc_params.atap_capacity[0];
+ wd->sc_dev->dv_maxphys =
+ min(WDC_SECCNT_MAX_LBA * DEV_BSIZE, parent->dv_maxphys);
} else {
aprint_verbose(" chs addressing\n");
wd->sc_capacity28 = wd->sc_capacity =
wd->sc_params.atap_cylinders *
wd->sc_params.atap_heads *
wd->sc_params.atap_sectors;
+ wd->sc_dev->dv_maxphys =
+ min(WDC_SECCNT_MAX * DEV_BSIZE, parent->dv_maxphys);
}
format_bytes(pbuf, sizeof(pbuf), wd->sc_capacity * DEV_BSIZE);
aprint_normal_dev(self, "%s, %d cyl, %d head, %d sec, "
@@ -488,7 +495,7 @@ wdstrategy(struct buf *bp)
/* Valid request? */
if (bp->b_blkno < 0 ||
(bp->b_bcount % lp->d_secsize) != 0 ||
- (bp->b_bcount / lp->d_secsize) >= (1 << NBBY)) {
+ bp->b_bcount > wd->sc_dev->dv_maxphys) {
bp->b_error = EINVAL;
goto done;
}
@@ -719,9 +726,11 @@ wdstart1(struct wd_softc *wd, struct buf
else
wd->sc_wdc_bio.flags = 0;
if (wd->sc_flags & WDF_LBA48 &&
- (wd->sc_wdc_bio.blkno +
+ ((wd->sc_wdc_bio.blkno +
wd->sc_wdc_bio.bcount / wd->sc_dk.dk_label->d_secsize) >
- wd->sc_capacity28)
+ wd->sc_capacity28 ||
+ (wd->sc_wdc_bio.bcount / wd->sc_dk.dk_label->d_secsize) >
+ WDC_SECCNT_MAX_LBA))
wd->sc_wdc_bio.flags |= ATA_LBA48;
if (wd->sc_flags & WDF_LBA)
wd->sc_wdc_bio.flags |= ATA_LBA;
@@ -862,9 +871,10 @@ wdrestart(void *v)
static void
wdminphys(struct buf *bp)
{
+ device_t wddev = device_lookup(&wd_cd, WDUNIT(bp->b_dev));
- if (bp->b_bcount > (512 * 128)) {
- bp->b_bcount = (512 * 128);
+ if (bp->b_bcount > wddev->dv_maxphys) {
+ bp->b_bcount = wddev->dv_maxphys;
}
minphys(bp);
}
@@ -1625,7 +1635,8 @@ wddump(dev_t dev, daddr_t blkno, void *v
wd->sc_wdc_bio.blkno = blkno;
wd->sc_wdc_bio.flags = ATA_POLL;
if (wd->sc_flags & WDF_LBA48 &&
- (wd->sc_wdc_bio.blkno + nblks) > wd->sc_capacity28)
+ ((wd->sc_wdc_bio.blkno + nblks) > wd->sc_capacity28 ||
+ nblks > WDC_SECCNT_MAX_LBA))
wd->sc_wdc_bio.flags |= ATA_LBA48;
if (wd->sc_flags & WDF_LBA)
wd->sc_wdc_bio.flags |= ATA_LBA;
@@ -2056,8 +2067,7 @@ wdioctlstrategy(struct buf *bp)
*/
if ((bp->b_bcount % wi->wi_softc->sc_dk.dk_label->d_secsize) != 0 ||
- (bp->b_bcount / wi->wi_softc->sc_dk.dk_label->d_secsize) >=
- (1 << NBBY)) {
+ bp->b_bcount > wi->wi_softc->sc_dev->dv_maxphys) {
error = EINVAL;
goto bad;
}
Index: src/sys/dev/ic/ahcisata_core.c
diff -u src/sys/dev/ic/ahcisata_core.c:1.43 src/sys/dev/ic/ahcisata_core.c:1.43.2.1
--- src/sys/dev/ic/ahcisata_core.c:1.43 Mon Aug 20 12:48:47 2012
+++ src/sys/dev/ic/ahcisata_core.c Tue Oct 9 13:36:04 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: ahcisata_core.c,v 1.43 2012/08/20 12:48:47 bouyer Exp $ */
+/* $NetBSD: ahcisata_core.c,v 1.43.2.1 2012/10/09 13:36:04 bouyer Exp $ */
/*
* Copyright (c) 2006 Manuel Bouyer.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.43 2012/08/20 12:48:47 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.43.2.1 2012/10/09 13:36:04 bouyer Exp $");
#include <sys/types.h>
#include <sys/malloc.h>
@@ -393,7 +393,8 @@ ahci_attach(struct ahci_softc *sc)
achp->ahcic_cmd_tbl[j],
(uint64_t)achp->ahcic_bus_cmd_tbl[j]), DEBUG_PROBE);
/* The xfer DMA map */
- error = bus_dmamap_create(sc->sc_dmat, MAXPHYS,
+ error = bus_dmamap_create(sc->sc_dmat,
+ sc->sc_atac.atac_dev->dv_maxphys,
AHCI_NPRD, 0x400000 /* 4MB */, 0,
BUS_DMA_NOWAIT | BUS_DMA_ALLOCNOW,
&achp->ahcic_datad[j]);
@@ -1462,8 +1463,8 @@ ahci_atapibus_attach(struct atabus_softc
static void
ahci_atapi_minphys(struct buf *bp)
{
- if (bp->b_bcount > MAXPHYS)
- bp->b_bcount = MAXPHYS;
+ if (bp->b_bcount > MACHINE_MAXPHYS)
+ bp->b_bcount = MACHINE_MAXPHYS;
minphys(bp);
}
Index: src/sys/dev/ic/ahcisatareg.h
diff -u src/sys/dev/ic/ahcisatareg.h:1.11 src/sys/dev/ic/ahcisatareg.h:1.11.12.1
--- src/sys/dev/ic/ahcisatareg.h:1.11 Wed Nov 2 16:54:50 2011
+++ src/sys/dev/ic/ahcisatareg.h Tue Oct 9 13:36:04 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: ahcisatareg.h,v 1.11 2011/11/02 16:54:50 jakllsch Exp $ */
+/* $NetBSD: ahcisatareg.h,v 1.11.12.1 2012/10/09 13:36:04 bouyer Exp $ */
/*
* Copyright (c) 2006 Manuel Bouyer.
@@ -41,7 +41,7 @@ struct ahci_dma_prd {
#define AHCI_PRD_DBC_IPC 0x80000000 /* interrupt on completion */
} __packed __aligned(8);
-#define AHCI_NPRD ((MAXPHYS/PAGE_SIZE) + 1)
+#define AHCI_NPRD ((MACHINE_MAXPHYS/PAGE_SIZE) + 1)
/* command table: describe a command to send to drive */
struct ahci_cmd_tbl {
Index: src/sys/dev/pci/acardide.c
diff -u src/sys/dev/pci/acardide.c:1.30 src/sys/dev/pci/acardide.c:1.30.2.1
--- src/sys/dev/pci/acardide.c:1.30 Tue Jul 31 15:50:35 2012
+++ src/sys/dev/pci/acardide.c Tue Oct 9 13:36:04 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: acardide.c,v 1.30 2012/07/31 15:50:35 bouyer Exp $ */
+/* $NetBSD: acardide.c,v 1.30.2.1 2012/10/09 13:36:04 bouyer Exp $ */
/*-
* Copyright (c) 2001 Izumi Tsutsui. All rights reserved.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acardide.c,v 1.30 2012/07/31 15:50:35 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acardide.c,v 1.30.2.1 2012/10/09 13:36:04 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -99,6 +99,8 @@ acardide_attach(device_t parent, device_
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/ahcisata_pci.c
diff -u src/sys/dev/pci/ahcisata_pci.c:1.30 src/sys/dev/pci/ahcisata_pci.c:1.30.2.1
--- src/sys/dev/pci/ahcisata_pci.c:1.30 Mon Aug 20 12:48:47 2012
+++ src/sys/dev/pci/ahcisata_pci.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: ahcisata_pci.c,v 1.30 2012/08/20 12:48:47 bouyer Exp $ */
+/* $NetBSD: ahcisata_pci.c,v 1.30.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 2006 Manuel Bouyer.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ahcisata_pci.c,v 1.30 2012/08/20 12:48:47 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ahcisata_pci.c,v 1.30.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/types.h>
#include <sys/malloc.h>
@@ -264,6 +264,8 @@ ahci_pci_attach(device_t parent, device_
bool ahci_bad_64bit;
pci_intr_handle_t intrhandle;
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_atac.atac_dev = self;
if (pci_mapreg_map(pa, AHCI_PCI_ABAR,
Index: src/sys/dev/pci/aceride.c
diff -u src/sys/dev/pci/aceride.c:1.35 src/sys/dev/pci/aceride.c:1.35.2.1
--- src/sys/dev/pci/aceride.c:1.35 Tue Jul 31 15:50:35 2012
+++ src/sys/dev/pci/aceride.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: aceride.c,v 1.35 2012/07/31 15:50:35 bouyer Exp $ */
+/* $NetBSD: aceride.c,v 1.35.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aceride.c,v 1.35 2012/07/31 15:50:35 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aceride.c,v 1.35.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -87,6 +87,8 @@ aceride_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/artsata.c
diff -u src/sys/dev/pci/artsata.c:1.24 src/sys/dev/pci/artsata.c:1.24.2.1
--- src/sys/dev/pci/artsata.c:1.24 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/artsata.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: artsata.c,v 1.24 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: artsata.c,v 1.24.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: artsata.c,v 1.24 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: artsata.c,v 1.24.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include "opt_pciide.h"
@@ -111,6 +111,8 @@ artsata_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/geodeide.c
diff -u src/sys/dev/pci/geodeide.c:1.24 src/sys/dev/pci/geodeide.c:1.24.2.1
--- src/sys/dev/pci/geodeide.c:1.24 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/geodeide.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: geodeide.c,v 1.24 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: geodeide.c,v 1.24.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 2004 Manuel Bouyer.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: geodeide.c,v 1.24 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: geodeide.c,v 1.24.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -93,6 +93,8 @@ geodeide_attach(device_t parent, device_
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/ixpide.c
diff -u src/sys/dev/pci/ixpide.c:1.24 src/sys/dev/pci/ixpide.c:1.24.2.1
--- src/sys/dev/pci/ixpide.c:1.24 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/ixpide.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: ixpide.c,v 1.24 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: ixpide.c,v 1.24.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 2004 The NetBSD Foundation.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ixpide.c,v 1.24 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ixpide.c,v 1.24.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -84,6 +84,8 @@ ixpide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/optiide.c
diff -u src/sys/dev/pci/optiide.c:1.24 src/sys/dev/pci/optiide.c:1.24.2.1
--- src/sys/dev/pci/optiide.c:1.24 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/optiide.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: optiide.c,v 1.24 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: optiide.c,v 1.24.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: optiide.c,v 1.24 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: optiide.c,v 1.24.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -93,6 +93,8 @@ optiide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/cmdide.c
diff -u src/sys/dev/pci/cmdide.c:1.38 src/sys/dev/pci/cmdide.c:1.38.2.1
--- src/sys/dev/pci/cmdide.c:1.38 Mon Sep 3 15:38:17 2012
+++ src/sys/dev/pci/cmdide.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: cmdide.c,v 1.38 2012/09/03 15:38:17 kiyohara Exp $ */
+/* $NetBSD: cmdide.c,v 1.38.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cmdide.c,v 1.38 2012/09/03 15:38:17 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cmdide.c,v 1.38.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -114,6 +114,8 @@ cmdide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/cypide.c
diff -u src/sys/dev/pci/cypide.c:1.29 src/sys/dev/pci/cypide.c:1.29.2.1
--- src/sys/dev/pci/cypide.c:1.29 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/cypide.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: cypide.c,v 1.29 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: cypide.c,v 1.29.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cypide.c,v 1.29 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cypide.c,v 1.29.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -81,6 +81,8 @@ cypide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/hptide.c
diff -u src/sys/dev/pci/hptide.c:1.33 src/sys/dev/pci/hptide.c:1.33.2.1
--- src/sys/dev/pci/hptide.c:1.33 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/hptide.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: hptide.c,v 1.33 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: hptide.c,v 1.33.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hptide.c,v 1.33 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hptide.c,v 1.33.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -97,6 +97,8 @@ hptide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/siside.c
diff -u src/sys/dev/pci/siside.c:1.33 src/sys/dev/pci/siside.c:1.33.2.1
--- src/sys/dev/pci/siside.c:1.33 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/siside.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: siside.c,v 1.33 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: siside.c,v 1.33.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: siside.c,v 1.33 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: siside.c,v 1.33.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -100,6 +100,8 @@ siside_attach(device_t parent, device_t
pcitag_t tag = pa->pa_tag;
pcireg_t csr;
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/iteide.c
diff -u src/sys/dev/pci/iteide.c:1.17 src/sys/dev/pci/iteide.c:1.17.2.1
--- src/sys/dev/pci/iteide.c:1.17 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/iteide.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: iteide.c,v 1.17 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: iteide.c,v 1.17.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: iteide.c,v 1.17 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: iteide.c,v 1.17.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -87,6 +87,8 @@ iteide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/jmide.c
diff -u src/sys/dev/pci/jmide.c:1.18 src/sys/dev/pci/jmide.c:1.18.2.1
--- src/sys/dev/pci/jmide.c:1.18 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/jmide.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: jmide.c,v 1.18 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: jmide.c,v 1.18.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 2007 Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: jmide.c,v 1.18 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: jmide.c,v 1.18.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -159,6 +159,8 @@ jmide_attach(device_t parent, device_t s
struct pciide_product_desc *pp;
int ahci_used = 0;
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_pciide.sc_wdcdev.sc_atac.atac_dev = self;
jp = jmide_lookup(pa->pa_id);
@@ -454,6 +456,8 @@ jmahci_attach(device_t parent, device_t
aprint_naive(": AHCI disk controller\n");
aprint_normal("\n");
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_atac.atac_dev = self;
sc->sc_ahcit = jma->jma_ahcit;
sc->sc_ahcih = jma->jma_ahcih;
Index: src/sys/dev/pci/nside.c
diff -u src/sys/dev/pci/nside.c:1.7 src/sys/dev/pci/nside.c:1.7.2.1
--- src/sys/dev/pci/nside.c:1.7 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/nside.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: nside.c,v 1.7 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: nside.c,v 1.7.2.1 2012/10/09 13:36:05 bouyer Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nside.c,v 1.7 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nside.c,v 1.7.2.1 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -86,6 +86,8 @@ nside_attach(device_t parent, device_t s
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/rdcide.c
diff -u src/sys/dev/pci/rdcide.c:1.7 src/sys/dev/pci/rdcide.c:1.7.2.1
--- src/sys/dev/pci/rdcide.c:1.7 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/rdcide.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: rdcide.c,v 1.7 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: rdcide.c,v 1.7.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*
* Copyright (c) 2011 Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rdcide.c,v 1.7 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rdcide.c,v 1.7.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -74,6 +74,8 @@ rdcide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/schide.c
diff -u src/sys/dev/pci/schide.c:1.7 src/sys/dev/pci/schide.c:1.7.2.1
--- src/sys/dev/pci/schide.c:1.7 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/schide.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: schide.c,v 1.7 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: schide.c,v 1.7.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/* $OpenBSD: pciide.c,v 1.305 2009/11/01 01:50:15 dlg Exp $ */
/*
@@ -57,7 +57,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: schide.c,v 1.7 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: schide.c,v 1.7.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -107,6 +107,8 @@ schide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/pciide.c
diff -u src/sys/dev/pci/pciide.c:1.219.18.1 src/sys/dev/pci/pciide.c:1.219.18.2
--- src/sys/dev/pci/pciide.c:1.219.18.1 Wed Sep 12 06:15:32 2012
+++ src/sys/dev/pci/pciide.c Tue Oct 9 13:36:05 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: pciide.c,v 1.219.18.1 2012/09/12 06:15:32 tls Exp $ */
+/* $NetBSD: pciide.c,v 1.219.18.2 2012/10/09 13:36:05 bouyer Exp $ */
/*
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pciide.c,v 1.219.18.1 2012/09/12 06:15:32 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pciide.c,v 1.219.18.2 2012/10/09 13:36:05 bouyer Exp $");
#include <sys/param.h>
@@ -108,8 +108,7 @@ pciide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
- /* Clamp max transfer size - XXX how to do 128K on pciide? */
- self->dv_maxphys = MIN(parent->dv_maxphys, IDEDMA_BYTE_COUNT_MAX);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
sc->sc_wdcdev.sc_atac.atac_dev = self;
Index: src/sys/dev/pci/pciide_common.c
diff -u src/sys/dev/pci/pciide_common.c:1.57 src/sys/dev/pci/pciide_common.c:1.57.2.1
--- src/sys/dev/pci/pciide_common.c:1.57 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/pciide_common.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: pciide_common.c,v 1.57 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: pciide_common.c,v 1.57.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pciide_common.c,v 1.57 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pciide_common.c,v 1.57.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/malloc.h>
@@ -596,7 +596,8 @@ pciide_channel_dma_setup(struct pciide_c
}
#define NIDEDMA_TABLES(sc) \
- (MAXPHYS/(min((sc)->sc_dma_maxsegsz, PAGE_SIZE)) + 1)
+ (sc->sc_wdcdev.sc_atac.atac_dev->dv_maxphys / \
+ (min((sc)->sc_dma_maxsegsz, PAGE_SIZE)) + 1)
int
pciide_dma_table_setup(struct pciide_softc *sc, int channel, int drive)
@@ -654,7 +655,8 @@ pciide_dma_table_setup(struct pciide_sof
(unsigned long)dma_maps->dmamap_table->dm_segs[0].ds_addr),
DEBUG_PROBE);
/* Create a xfer DMA map for this drive */
- if ((error = bus_dmamap_create(sc->sc_dmat, MAXPHYS,
+ if ((error = bus_dmamap_create(sc->sc_dmat,
+ sc->sc_wdcdev.sc_atac.atac_dev->dv_maxphys,
NIDEDMA_TABLES(sc), sc->sc_dma_maxsegsz, sc->sc_dma_boundary,
BUS_DMA_NOWAIT | BUS_DMA_ALLOCNOW,
&dma_maps->dmamap_xfer)) != 0) {
Index: src/sys/dev/pci/pdcide.c
diff -u src/sys/dev/pci/pdcide.c:1.34 src/sys/dev/pci/pdcide.c:1.34.2.1
--- src/sys/dev/pci/pdcide.c:1.34 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/pdcide.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: pdcide.c,v 1.34 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: pdcide.c,v 1.34.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pdcide.c,v 1.34 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pdcide.c,v 1.34.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -132,6 +132,8 @@ pdcide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/pdcsata.c
diff -u src/sys/dev/pci/pdcsata.c:1.25 src/sys/dev/pci/pdcsata.c:1.25.2.1
--- src/sys/dev/pci/pdcsata.c:1.25 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/pdcsata.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: pdcsata.c,v 1.25 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: pdcsata.c,v 1.25.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*
* Copyright (c) 2004, Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pdcsata.c,v 1.25 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pdcsata.c,v 1.25.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/types.h>
#include <sys/malloc.h>
@@ -214,6 +214,8 @@ pdcsata_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/piixide.c
diff -u src/sys/dev/pci/piixide.c:1.63 src/sys/dev/pci/piixide.c:1.63.2.1
--- src/sys/dev/pci/piixide.c:1.63 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/piixide.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: piixide.c,v 1.63 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: piixide.c,v 1.63.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: piixide.c,v 1.63 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: piixide.c,v 1.63.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -383,6 +383,8 @@ piixide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/rccide.c
diff -u src/sys/dev/pci/rccide.c:1.26 src/sys/dev/pci/rccide.c:1.26.2.1
--- src/sys/dev/pci/rccide.c:1.26 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/rccide.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: rccide.c,v 1.26 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: rccide.c,v 1.26.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*
* Copyright (c) 2003 By Noon Software, Inc. All rights reserved.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rccide.c,v 1.26 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rccide.c,v 1.26.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -103,6 +103,8 @@ rccide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/stpcide.c
diff -u src/sys/dev/pci/stpcide.c:1.26 src/sys/dev/pci/stpcide.c:1.26.2.1
--- src/sys/dev/pci/stpcide.c:1.26 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/stpcide.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: stpcide.c,v 1.26 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: stpcide.c,v 1.26.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: stpcide.c,v 1.26 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: stpcide.c,v 1.26.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -77,6 +77,8 @@ stpcide_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/slide.c
diff -u src/sys/dev/pci/slide.c:1.28 src/sys/dev/pci/slide.c:1.28.2.1
--- src/sys/dev/pci/slide.c:1.28 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/slide.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: slide.c,v 1.28 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: slide.c,v 1.28.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: slide.c,v 1.28 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: slide.c,v 1.28.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -100,6 +100,8 @@ slide_attach(device_t parent, device_t s
struct pciide_softc *sc = device_private(self);
const struct pciide_product_desc *pp = NULL;
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_SYMPHONY)
Index: src/sys/dev/pci/svwsata.c
diff -u src/sys/dev/pci/svwsata.c:1.16 src/sys/dev/pci/svwsata.c:1.16.2.1
--- src/sys/dev/pci/svwsata.c:1.16 Tue Jul 31 15:50:36 2012
+++ src/sys/dev/pci/svwsata.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: svwsata.c,v 1.16 2012/07/31 15:50:36 bouyer Exp $ */
+/* $NetBSD: svwsata.c,v 1.16.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*
* Copyright (c) 2005 Mark Kettenis
@@ -17,7 +17,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svwsata.c,v 1.16 2012/07/31 15:50:36 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: svwsata.c,v 1.16.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -95,6 +95,8 @@ svwsata_attach(device_t parent, device_t
struct pci_attach_args *pa = aux;
struct pciide_softc *sc = device_private(self);
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pciide_common_attach(sc, pa,
Index: src/sys/dev/pci/toshide.c
diff -u src/sys/dev/pci/toshide.c:1.9 src/sys/dev/pci/toshide.c:1.9.2.1
--- src/sys/dev/pci/toshide.c:1.9 Tue Jul 31 15:50:37 2012
+++ src/sys/dev/pci/toshide.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: toshide.c,v 1.9 2012/07/31 15:50:37 bouyer Exp $ */
+/* $NetBSD: toshide.c,v 1.9.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: toshide.c,v 1.9 2012/07/31 15:50:37 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: toshide.c,v 1.9.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -100,6 +100,8 @@ piccolo_attach(device_t parent, device_t
struct pciide_softc *sc = device_private(self);
const struct pciide_product_desc *pp;
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_TOSHIBA2)
Index: src/sys/dev/pci/viaide.c
diff -u src/sys/dev/pci/viaide.c:1.83 src/sys/dev/pci/viaide.c:1.83.2.1
--- src/sys/dev/pci/viaide.c:1.83 Tue Jul 31 15:50:37 2012
+++ src/sys/dev/pci/viaide.c Tue Oct 9 13:36:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: viaide.c,v 1.83 2012/07/31 15:50:37 bouyer Exp $ */
+/* $NetBSD: viaide.c,v 1.83.2.1 2012/10/09 13:36:06 bouyer Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.83 2012/07/31 15:50:37 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.83.2.1 2012/10/09 13:36:06 bouyer Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -391,6 +391,8 @@ viaide_attach(device_t parent, device_t
struct pciide_softc *sc = device_private(self);
const struct pciide_product_desc *pp;
+ self->dv_maxphys = MIN(parent->dv_maxphys, MACHINE_MAXPHYS);
+
sc->sc_wdcdev.sc_atac.atac_dev = self;
pp = viaide_lookup(pa->pa_id);