powerpc/ps3: Fix memory leak in device init
Subsystems (2)
PATCH 1/1 powerpc/ps3: Fix memory leak in device init
From: Masakazu Mokuno <[email protected]>
Free dynamically allocated device data structures when device registration fails. This fixes memory leakage when the registration fails.
Signed-off-by Masakazu Mokuno <[email protected]>
Signed-off-by Geoff Levand <[email protected]>
--- arch/powerpc/platforms/ps3/device-init.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-)
arch/powerpc/platforms/ps3/device-init.c +24 -5
@@ -314,11 +314,17 @@ static int __init ps3_setup_vuart_device result =ps3_system_bus_device_register (&p->dev); -if (result) +if (result) {pr_debug ("%s:%d ps3_system_bus_device_register failed\n" , __func__, __LINE__); - + goto fail_device_register; + }pr_debug (" <- %s:%d\n" , __func__, __LINE__); +return 0 ; + +fail_device_register: +kfree (p); +pr_debug (" <- %s:%d fail\n" , __func__, __LINE__);return result; }
@@ -463,11 +469,17 @@ static int __init ps3_register_sound_dev result =ps3_system_bus_device_register (&p->dev); -if (result) +if (result) {pr_debug ("%s:%d ps3_system_bus_device_register failed\n" , __func__, __LINE__); - + goto fail_device_register; + }pr_debug (" <- %s:%d\n" , __func__, __LINE__); +return 0 ; + +fail_device_register: +kfree (p); +pr_debug (" <- %s:%d failed\n" , __func__, __LINE__);return result; }
@@ -491,11 +503,18 @@ static int __init ps3_register_graphics_ result =ps3_system_bus_device_register (&p->dev); -if (result) +if (result) {pr_debug ("%s:%d ps3_system_bus_device_register failed\n" , __func__, __LINE__); + goto fail_device_register; + }pr_debug (" <- %s:%d\n" , __func__, __LINE__); +return 0 ; + +fail_device_register: +kfree (p); +pr_debug (" <- %s:%d failed\n" , __func__, __LINE__);return result; }