diff options
| -rw-r--r-- | drivers/scsi/ahci.c | 22 | 
1 files changed, 4 insertions, 18 deletions
| diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c index 9a547ca9c864..c5623694d10f 100644 --- a/drivers/scsi/ahci.c +++ b/drivers/scsi/ahci.c @@ -304,26 +304,19 @@ static int ahci_port_start(struct ata_port *ap)  	struct device *dev = ap->host_set->dev;  	struct ahci_host_priv *hpriv = ap->host_set->private_data;  	struct ahci_port_priv *pp; -	int rc;  	void *mem, *mmio = ap->host_set->mmio_base;  	void *port_mmio = ahci_port_base(mmio, ap->port_no);  	dma_addr_t mem_dma; -	rc = ata_port_start(ap); -	if (rc) -		return rc; -  	pp = kmalloc(sizeof(*pp), GFP_KERNEL); -	if (!pp) { -		rc = -ENOMEM; -		goto err_out; -	} +	if (!pp) +		return -ENOMEM;  	memset(pp, 0, sizeof(*pp));  	mem = dma_alloc_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, &mem_dma, GFP_KERNEL);  	if (!mem) { -		rc = -ENOMEM; -		goto err_out_kfree; +		kfree(pp); +		return -ENOMEM;  	}  	memset(mem, 0, AHCI_PORT_PRIV_DMA_SZ); @@ -373,12 +366,6 @@ static int ahci_port_start(struct ata_port *ap)  	readl(port_mmio + PORT_CMD); /* flush */  	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)  	dma_free_coherent(dev, AHCI_PORT_PRIV_DMA_SZ,  			  pp->cmd_slot, pp->cmd_slot_dma);  	kfree(pp); -	ata_port_stop(ap);  }  static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg_in) | 
