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/

Reply via email to