On Sun, 6 Feb 2005 at 20:26:55 +0900, Tejun Heo wrote: > + if (drive->using_dma && > + !(hwif->no_lba48_dma && block + rq->nr_sectors > 1ULL << 28)) { > + /* DMA */ > + if (hwif->dma_setup(drive)) > + goto fallback_to_pio; > + if (rq_data_dir(rq) == READ) { > + command = lba48 ? WIN_READDMA_EXT : WIN_READDMA; > + if (drive->vdma) > + command = lba48 ? WIN_READ_EXT : WIN_READ; > + } else { > + command = lba48 ? WIN_WRITEDMA_EXT : WIN_WRITEDMA; > + if (drive->vdma) > + command = lba48 ? WIN_WRITE_EXT : WIN_WRITE; > } > - /* fallback to PIO */ > - ide_init_sg_cmd(drive, rq); > + hwif->dma_exec_cmd(drive, command); > + hwif->dma_start(drive); > + return ide_started; > }
Should that be "block + rq->nr_sectors >= 1ULL << 28"? Legal sector numbers for LBA28 range from 0 thru (1 << 28 - 1). LBA28 _capacities_ range from 1 thru (1 << 28) sectors. And why is it using 1ULL some places and 1UL in others in the ide driver? -- Chuck - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/