提交 0a139e79 编写于 作者: T Tejun Heo 提交者: Jeff Garzik

[PATCH] libata: ahci: remove ata_port_start/stop() calls

This patch removes unnecessary ata_port_start/stop() calls from
ahci_port_start/stop().
Signed-off-by: NTejun Heo <htejun@gmail.com>
上级 62ba2841
...@@ -304,26 +304,19 @@ static int ahci_port_start(struct ata_port *ap) ...@@ -304,26 +304,19 @@ static int ahci_port_start(struct ata_port *ap)
struct device *dev = ap->host_set->dev; struct device *dev = ap->host_set->dev;
struct ahci_host_priv *hpriv = ap->host_set->private_data; struct ahci_host_priv *hpriv = ap->host_set->private_data;
struct ahci_port_priv *pp; struct ahci_port_priv *pp;
int rc;
void *mem, *mmio = ap->host_set->mmio_base; void *mem, *mmio = ap->host_set->mmio_base;
void *port_mmio = ahci_port_base(mmio, ap->port_no); void *port_mmio = ahci_port_base(mmio, ap->port_no);
dma_addr_t mem_dma; dma_addr_t mem_dma;
rc = ata_port_start(ap);
if (rc)
return rc;
pp = kmalloc(sizeof(*pp), GFP_KERNEL); pp = kmalloc(sizeof(*pp), GFP_KERNEL);
if (!pp) { if (!pp)
rc = -ENOMEM; return -ENOMEM;
goto err_out;
}
memset(pp, 0, sizeof(*pp)); memset(pp, 0, sizeof(*pp));
mem = dma_alloc_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, &mem_dma, GFP_KERNEL); mem = dma_alloc_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, &mem_dma, GFP_KERNEL);
if (!mem) { if (!mem) {
rc = -ENOMEM; kfree(pp);
goto err_out_kfree; return -ENOMEM;
} }
memset(mem, 0, AHCI_PORT_PRIV_DMA_SZ); memset(mem, 0, AHCI_PORT_PRIV_DMA_SZ);
...@@ -373,12 +366,6 @@ static int ahci_port_start(struct ata_port *ap) ...@@ -373,12 +366,6 @@ static int ahci_port_start(struct ata_port *ap)
readl(port_mmio + PORT_CMD); /* flush */ readl(port_mmio + PORT_CMD); /* flush */
return 0; return 0;
err_out_kfree:
kfree(pp);
err_out:
ata_port_stop(ap);
return rc;
} }
...@@ -404,7 +391,6 @@ static void ahci_port_stop(struct ata_port *ap) ...@@ -404,7 +391,6 @@ static void ahci_port_stop(struct ata_port *ap)
dma_free_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, dma_free_coherent(dev, AHCI_PORT_PRIV_DMA_SZ,
pp->cmd_slot, pp->cmd_slot_dma); pp->cmd_slot, pp->cmd_slot_dma);
kfree(pp); kfree(pp);
ata_port_stop(ap);
} }
static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg_in) static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg_in)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册