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

Commit b59cedef authored by Axel Lin's avatar Axel Lin Committed by Samuel Ortiz
Browse files

mfd: Fix da903x_add_subdevs error path



This patch fixes da903x_add_subdevs error path:
1. return -ENOMEM if platform_device_alloc() fail.
2. call platform_device_put() if platform_device_add() fail.

Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
Acked-by: default avatarEric Miao <eric.y.miao@gmail.com>
Acked-by: default avatarMike Rapoport <mike@compulab.co.il>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 2c36af7b
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -470,14 +470,20 @@ static int __devinit da903x_add_subdevs(struct da903x_chip *chip,
		subdev = &pdata->subdevs[i];

		pdev = platform_device_alloc(subdev->name, subdev->id);
		if (!pdev) {
			ret = -ENOMEM;
			goto failed;
		}

		pdev->dev.parent = chip->dev;
		pdev->dev.platform_data = subdev->platform_data;

		ret = platform_device_add(pdev);
		if (ret)
		if (ret) {
			platform_device_put(pdev);
			goto failed;
		}
	}
	return 0;

failed: