Skip to content

Commit 5a700e7

Browse files
tititiou36lag-linaro
authored andcommitted
mfd: cgbc-core: Fix error handling paths in cgbc_init_device()
If an error occurs after a cgbc_session_request() call, it should be balanced by a corresponding cgbc_session_release(), as already done in the remove function. Fixes: 6f1067c ("mfd: Add Congatec Board Controller driver") Signed-off-by: Christophe JAILLET <[email protected]> Reviewed-by: Thomas Richard <[email protected]> Link: https://lore.kernel.org/r/83194335554146efc52c331993f083bd765db6f9.1730205085.git.christophe.jaillet@wanadoo.fr Signed-off-by: Lee Jones <[email protected]>
1 parent 76c6217 commit 5a700e7

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

drivers/mfd/cgbc-core.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,9 +321,18 @@ static int cgbc_init_device(struct cgbc_device_data *cgbc)
321321

322322
ret = cgbc_get_version(cgbc);
323323
if (ret)
324-
return ret;
324+
goto release_session;
325+
326+
ret = mfd_add_devices(cgbc->dev, -1, cgbc_devs, ARRAY_SIZE(cgbc_devs),
327+
NULL, 0, NULL);
328+
if (ret)
329+
goto release_session;
325330

326-
return mfd_add_devices(cgbc->dev, -1, cgbc_devs, ARRAY_SIZE(cgbc_devs), NULL, 0, NULL);
331+
return 0;
332+
333+
release_session:
334+
cgbc_session_release(cgbc);
335+
return ret;
327336
}
328337

329338
static int cgbc_probe(struct platform_device *pdev)

0 commit comments

Comments
 (0)