diff --git a/drivers/staging/android/timed_gpio.c b/drivers/staging/android/timed_gpio.c index e81451425c01..3f69b3481779 100644 --- a/drivers/staging/android/timed_gpio.c +++ b/drivers/staging/android/timed_gpio.c @@ -90,8 +90,9 @@ static int timed_gpio_probe(struct platform_device *pdev) if (!pdata) return -EBUSY; - gpio_data = kzalloc(sizeof(struct timed_gpio_data) * pdata->num_gpios, - GFP_KERNEL); + gpio_data = devm_kzalloc(&pdev->dev, + sizeof(struct timed_gpio_data) * pdata->num_gpios, + GFP_KERNEL); if (!gpio_data) return -ENOMEM; @@ -131,7 +132,6 @@ err_out: timed_output_dev_unregister(&gpio_data[i].dev); gpio_free(gpio_data[i].gpio); } - kfree(gpio_data); return ret; } @@ -147,8 +147,6 @@ static int timed_gpio_remove(struct platform_device *pdev) gpio_free(gpio_data[i].gpio); } - kfree(gpio_data); - return 0; }