]> git.hungrycats.org Git - linux/commitdiff
scatterlist address breakage in task file ioctl building
authorJens Axboe <axboe@burns.home.kernel.dk>
Thu, 7 Feb 2002 10:25:28 +0000 (11:25 +0100)
committerJens Axboe <axboe@burns.home.kernel.dk>
Thu, 7 Feb 2002 10:25:28 +0000 (11:25 +0100)
drivers/ide/ide-dma.c

index 47a729d1b7eb33f1d932e1c4e716010c73407e54..edaccf8e59d5e93bd7985a73821f7c7abd04f330 100644 (file)
@@ -266,14 +266,16 @@ static int ide_raw_build_sglist (ide_hwif_t *hwif, struct request *rq)
 #if 1  
        if (sector_count > 128) {
                memset(&sg[nents], 0, sizeof(*sg));
-               sg[nents].address = virt_addr;
+               sg[nents].page = virt_to_page(virt_addr);
+               sg[nents].offset = (unsigned long) virt_addr & ~PAGE_MASK;
                sg[nents].length = 128  * SECTOR_SIZE;
                nents++;
                virt_addr = virt_addr + (128 * SECTOR_SIZE);
                sector_count -= 128;
        }
        memset(&sg[nents], 0, sizeof(*sg));
-       sg[nents].address = virt_addr;
+       sg[nents].page = virt_to_page(virt_addr);
+       sg[nents].offset = (unsigned long) virt_addr & ~PAGE_MASK;
        sg[nents].length =  sector_count  * SECTOR_SIZE;
        nents++;
  #endif