Index: ata-dma.c =================================================================== RCS file: /home/source/dragonfly/cvs/src/sys/dev/disk/nata/ata-dma.c,v retrieving revision 1.4 diff -u -p -r1.4 ata-dma.c --- ata-dma.c 5 Jun 2007 18:30:40 -0000 1.4 +++ ata-dma.c 18 Jul 2007 06:53:51 -0000 @@ -75,7 +75,7 @@ ata_dmainit(device_t dev) ch->dma->alignment = 2; ch->dma->boundary = 128 * DEV_BSIZE; ch->dma->segsize = 128 * DEV_BSIZE; - ch->dma->max_iosize = 128 * DEV_BSIZE; + ch->dma->max_iosize = 64 * DEV_BSIZE; ch->dma->max_address = BUS_SPACE_MAXADDR_32BIT; } @@ -213,6 +213,7 @@ ata_dmasetprd(void *xsc, bus_dma_segment args->nsegs = nsegs; } +void db_print_backtrace(void); static int ata_dmaload(device_t dev, caddr_t data, int32_t count, int dir, void *addr, int *entries) @@ -237,6 +238,7 @@ ata_dmaload(device_t dev, caddr_t data, if (count > ch->dma->max_iosize) { device_printf(dev, "FAILURE - oversized DMA transfer attempt %d > %d\n", count, ch->dma->max_iosize); + db_print_backtrace(); return EIO; }