]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge master.kernel.org:/home/rmk/linux-2.6-arm
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 9 Jun 2005 16:04:11 +0000 (09:04 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 9 Jun 2005 16:04:11 +0000 (09:04 -0700)
drivers/scsi/libata-core.c
drivers/scsi/sata_sil.c

index 21d194c6ace38b8595b4d6fb6fcfe8fe2cdf341b..9e58f134f68bf45767813d249220b322a33b005b 100644 (file)
@@ -2577,7 +2577,6 @@ static void __atapi_pio_bytes(struct ata_queued_cmd *qc, unsigned int bytes)
 next_sg:
        sg = &qc->sg[qc->cursg];
 
-next_page:
        page = sg->page;
        offset = sg->offset + qc->cursg_ofs;
 
@@ -2585,6 +2584,7 @@ next_page:
        page = nth_page(page, (offset >> PAGE_SHIFT));
        offset %= PAGE_SIZE;
 
+       /* don't overrun current sg */
        count = min(sg->length - qc->cursg_ofs, bytes);
 
        /* don't cross page boundaries */
@@ -2609,8 +2609,6 @@ next_page:
        kunmap(page);
 
        if (bytes) {
-               if (qc->cursg_ofs < sg->length)
-                       goto next_page;
                goto next_sg;
        }
 }
index 238580d244e697ec22427cda94ce1418a945aa2b..49ed557a4b661e4cfa9569b0d2af72f4375573d8 100644 (file)
@@ -432,7 +432,13 @@ static int sil_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
                writeb(cls, mmio_base + SIL_FIFO_R0);
                writeb(cls, mmio_base + SIL_FIFO_W0);
                writeb(cls, mmio_base + SIL_FIFO_R1);
-               writeb(cls, mmio_base + SIL_FIFO_W2);
+               writeb(cls, mmio_base + SIL_FIFO_W1);
+               if (ent->driver_data == sil_3114) {
+                       writeb(cls, mmio_base + SIL_FIFO_R2);
+                       writeb(cls, mmio_base + SIL_FIFO_W2);
+                       writeb(cls, mmio_base + SIL_FIFO_R3);
+                       writeb(cls, mmio_base + SIL_FIFO_W3);
+               }
        } else
                printk(KERN_WARNING DRV_NAME "(%s): cache line size not set.  Driver may not function\n",
                        pci_name(pdev));