Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1856de3d authored by Markus Elfring's avatar Markus Elfring Committed by Ulf Hansson
Browse files

mmc: sdricoh_cs: Less checks in sdricoh_init_mmc() after, error detection



This issue was detected by using the Coccinelle software.

Two pointer checks could be repeated by the sdricoh_init_mmc() function
during error handling even if the relevant properties can be determined
for the involved variables before by source code analysis.

* This implementation detail could be improved by adjustments
  for jump targets according to the Linux coding style convention.

* Drop an unnecessary initialisation for the variable "mmc" then.

Signed-off-by: default avatarMarkus Elfring <elfring@users.sourceforge.net>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent c48c5d58
Loading
Loading
Loading
Loading
+8 −12
Original line number Diff line number Diff line
@@ -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)
free_host:
	mmc_free_host(mmc);

unmap_io:
	pci_iounmap(pci_dev, iobase);
	return result;
}