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);

Reply via email to