]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
[PATCH] ide-disk: Fix LBA8 DMA
authorDaniel Drake <dsd@gentoo.org>
Thu, 12 May 2005 11:31:27 +0000 (12:31 +0100)
committer <chrisw@vas.sous-sol.org> <>
Fri, 27 May 2005 04:20:05 +0000 (21:20 -0700)
This is from Gentoo's 2.6.11 patchset. A problem was introduced in 2.6.10
where some users could not enable DMA on their disks (particularly ALi15x3
users). This was a small mistake with the no_lba48_dma flag.

I can't find the exact commit but this is definately included in 2.6.12-rc4.

From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Chris Wright <chrisw@osdl.org>
drivers/ide/ide-disk.c

index db55f241f76ffa6c440c3bdd048b6cfccf153358..e41f7c3b978901c67a0097d959befd5b7a8279bb 100644 (file)
@@ -133,6 +133,8 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
        if (hwif->no_lba48_dma && lba48 && dma) {
                if (block + rq->nr_sectors > 1ULL << 28)
                        dma = 0;
+               else
+                       lba48 = 0;
        }
 
        if (!dma) {
@@ -146,7 +148,7 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
        /* FIXME: SELECT_MASK(drive, 0) ? */
 
        if (drive->select.b.lba) {
-               if (drive->addressing == 1) {
+               if (lba48) {
                        task_ioreg_t tasklets[10];
 
                        pr_debug("%s: LBA=0x%012llx\n", drive->name, block);