[PATCH] ahci: kill pp->cmd_tbl_sg
authorTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 12:03:53 +0000 (21:03 +0900)
committerTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 12:03:53 +0000 (21:03 +0900)
With NCQ, there are multiple sg tables, so pp->cmd_tbl_sg doesn't cut
it.  Directly calculate sg table address from pp->cmd_tbl.

Signed-off-by: Tejun Heo <htejun@gmail.com>
drivers/scsi/ahci.c

index 740e7d8..9f974db 100644 (file)
@@ -191,7 +191,6 @@ struct ahci_port_priv {
        dma_addr_t              cmd_slot_dma;
        void                    *cmd_tbl;
        dma_addr_t              cmd_tbl_dma;
-       struct ahci_sg          *cmd_tbl_sg;
        void                    *rx_fis;
        dma_addr_t              rx_fis_dma;
 };
@@ -402,8 +401,6 @@ static int ahci_port_start(struct ata_port *ap)
        pp->cmd_tbl = mem;
        pp->cmd_tbl_dma = mem_dma;
 
-       pp->cmd_tbl_sg = mem + AHCI_CMD_TBL_HDR_SZ;
-
        ap->private_data = pp;
 
        if (hpriv->cap & HOST_CAP_64)
@@ -749,7 +746,7 @@ static unsigned int ahci_fill_sg(struct ata_queued_cmd *qc)
        /*
         * Next, the S/G list.
         */
-       ahci_sg = pp->cmd_tbl_sg;
+       ahci_sg = pp->cmd_tbl + AHCI_CMD_TBL_HDR_SZ;
        ata_for_each_sg(sg, qc) {
                dma_addr_t addr = sg_dma_address(sg);
                u32 sg_len = sg_dma_len(sg);