Message ID | 20221101131317.866961-2-yangyingliang@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | mmc: sdio: fixes some leaks | expand |
diff --git a/drivers/mmc/core/sdio_bus.c b/drivers/mmc/core/sdio_bus.c index babf21a0adeb..b9308813a226 100644 --- a/drivers/mmc/core/sdio_bus.c +++ b/drivers/mmc/core/sdio_bus.c @@ -365,6 +365,8 @@ int sdio_add_func(struct sdio_func *func) ret = device_add(&func->dev); if (ret == 0) sdio_func_set_present(func); + else + of_node_put(func->dev.of_node); return ret; }
If device_add() returns error in sdio_add_func(), sdio function is not presented, so the node refcount that hold in sdio_set_of_node() can not be put in sdio_remove_func() which is called from error path. Fix this by calling of_node_put() if device_add() fails. Fixes: 25185f3f31c9 ("mmc: Add SDIO function devicetree subnode parsing") Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> --- drivers/mmc/core/sdio_bus.c | 2 ++ 1 file changed, 2 insertions(+)