lkml.org 
[lkml]   [2019]   [Dec]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] board-dm644x-evm: fix 2 missing-check bugs in evm_led_setup()
On Fri, Dec 27, 2019 at 10:39:21AM +0800, Gen Zhang wrote:
> In evm_led_setup(), the allocation result of platform_device_alloc() and
> platform_device_add_data() should be checked.
>
> Signed-off-by: Gen Zhang <blackgod016574@gmail.com>
> ---
> diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
> index 9d87d4e..9cd2785 100644
> --- a/arch/arm/mach-davinci/board-dm644x-evm.c
> +++ b/arch/arm/mach-davinci/board-dm644x-evm.c
> @@ -352,15 +352,20 @@ evm_led_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
> * device unregistration ...
> */
> evm_led_dev = platform_device_alloc("leds-gpio", 0);
> - platform_device_add_data(evm_led_dev,
> + if (!evm_led_dev)
> + return -ENOMEM;
> + status = platform_device_add_data(evm_led_dev,
> &evm_led_data, sizeof evm_led_data);
> + if (status)
> + goto err;
>
> evm_led_dev->dev.parent = &client->dev;
> status = platform_device_add(evm_led_dev);
> - if (status < 0) {
> - platform_device_put(evm_led_dev);
> - evm_led_dev = NULL;
> - }
> + if (status)
> + goto err;
> +err:
> + platform_device_put(evm_led_dev);
> + evm_led_dev = NULL;

Please look again at the above change very closely. You will want to
send an updated patch.

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

\
 
 \ /
  Last update: 2019-12-27 17:02    [W:0.064 / U:0.992 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site