|
@@ -400,7 +400,7 @@ static int sdricoh_init_mmc(struct pci_dev *pci_dev,
|
|
|
{
|
|
|
int result;
|
|
|
void __iomem *iobase;
|
|
|
- struct mmc_host *mmc = NULL;
|
|
|
+ struct mmc_host *mmc;
|
|
|
struct sdricoh_host *host;
|
|
|
struct device *dev = &pcmcia_dev->dev;
|
|
|
/* map iomem */
|
|
@@ -419,7 +419,7 @@ static int sdricoh_init_mmc(struct pci_dev *pci_dev,
|
|
|
if (readl(iobase + R104_VERSION) != 0x4000) {
|
|
|
dev_dbg(dev, "no supported mmc controller found\n");
|
|
|
result = -ENODEV;
|
|
|
- goto err;
|
|
|
+ goto unmap_io;
|
|
|
}
|
|
|
/* allocate privdata */
|
|
|
mmc = pcmcia_dev->priv =
|
|
@@ -427,7 +427,7 @@ static int sdricoh_init_mmc(struct pci_dev *pci_dev,
|
|
|
if (!mmc) {
|
|
|
dev_err(dev, "mmc_alloc_host failed\n");
|
|
|
result = -ENOMEM;
|
|
|
- goto err;
|
|
|
+ goto unmap_io;
|
|
|
}
|
|
|
host = mmc_priv(mmc);
|
|
|
|
|
@@ -451,8 +451,7 @@ static int sdricoh_init_mmc(struct pci_dev *pci_dev,
|
|
|
if (sdricoh_reset(host)) {
|
|
|
dev_dbg(dev, "could not reset\n");
|
|
|
result = -EIO;
|
|
|
- goto err;
|
|
|
-
|
|
|
+ goto free_host;
|
|
|
}
|
|
|
|
|
|
result = mmc_add_host(mmc);
|
|
@@ -461,13 +460,10 @@ static int sdricoh_init_mmc(struct pci_dev *pci_dev,
|
|
|
dev_dbg(dev, "mmc host registered\n");
|
|
|
return 0;
|
|
|
}
|
|
|
-
|
|
|
-err:
|
|
|
- if (iobase)
|
|
|
- pci_iounmap(pci_dev, iobase);
|
|
|
- if (mmc)
|
|
|
- mmc_free_host(mmc);
|
|
|
-
|
|
|
+free_host:
|
|
|
+ mmc_free_host(mmc);
|
|
|
+unmap_io:
|
|
|
+ pci_iounmap(pci_dev, iobase);
|
|
|
return result;
|
|
|
}
|
|
|
|