mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
soc: microchip: mpfs-sys-controller: fix resource leak on probe error
In mpfs_sys_controller_probe(), when device_get_match_data() returns
NULL, it returns -EINVAL directly without freeing the mbox channel
or the allocated sys_controller memory, causing a resource leak.
Fixes: 63b5305ad8 ("soc: microchip: mpfs-sys-controller: add support for pic64gx")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
This commit is contained in:
parent
254f49634e
commit
75ef233975
|
|
@ -158,8 +158,8 @@ static int mpfs_sys_controller_probe(struct platform_device *pdev)
|
|||
|
||||
of_data = (struct mpfs_syscon_config *) device_get_match_data(dev);
|
||||
if (!of_data) {
|
||||
dev_err(dev, "Error getting match data\n");
|
||||
return -EINVAL;
|
||||
ret = dev_err_probe(dev, -EINVAL, "Error getting match data\n");
|
||||
goto out_free_channel;
|
||||
}
|
||||
|
||||
for (i = 0; i < of_data->nb_subdevs; i++) {
|
||||
|
|
@ -173,6 +173,8 @@ static int mpfs_sys_controller_probe(struct platform_device *pdev)
|
|||
|
||||
return 0;
|
||||
|
||||
out_free_channel:
|
||||
mbox_free_channel(sys_controller->chan);
|
||||
out_free:
|
||||
kfree(sys_controller);
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user