PM / Domains: Don't kfree() the virtual device in the error path

It's not correct to call kfree(dev) when device_register(dev) has failed.

Fix this by calling put_device(dev) instead.

Fixes: 3c095f32a9 ("PM / Domains: Add support for multi PM domains per device to genpd")
Signed-off-by: Ulf Hansson <[email protected]>
Acked-by: Viresh Kumar <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
This commit is contained in:
Ulf Hansson 2019-04-18 12:27:55 +02:00 • committed by Rafael J. Wysocki
commit 71b77697af

View file

@ -2455,7 +2455,7 @@ struct device *genpd_dev_pm_attach_by_id(struct device *dev,
ret = device_register(virt_dev);
if (ret) {
kfree(virt_dev);
put_device(virt_dev);
return ERR_PTR(ret);
}