Commit b4fa126b authored by Johan Hovold's avatar Johan Hovold Committed by Stefan Bader

rfkill: gpio: fix memory leak in probe error path

BugLink: http://bugs.launchpad.net/bugs/1774173

commit 4bf01ca2 upstream.

Make sure to free the rfkill device in case registration fails during
probe.

Fixes: 5e7ca393 ("net: rfkill: gpio: convert to resource managed allocation")
Cc: stable <stable@vger.kernel.org>	# 3.13
Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarJuerg Haefliger <juergh@canonical.com>
Signed-off-by: default avatarStefan Bader <stefan.bader@canonical.com>
parent 9d05492c
...@@ -140,13 +140,18 @@ static int rfkill_gpio_probe(struct platform_device *pdev) ...@@ -140,13 +140,18 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
ret = rfkill_register(rfkill->rfkill_dev); ret = rfkill_register(rfkill->rfkill_dev);
if (ret < 0) if (ret < 0)
return ret; goto err_destroy;
platform_set_drvdata(pdev, rfkill); platform_set_drvdata(pdev, rfkill);
dev_info(&pdev->dev, "%s device registered.\n", rfkill->name); dev_info(&pdev->dev, "%s device registered.\n", rfkill->name);
return 0; return 0;
err_destroy:
rfkill_destroy(rfkill->rfkill_dev);
return ret;
} }
static int rfkill_gpio_remove(struct platform_device *pdev) static int rfkill_gpio_remove(struct platform_device *pdev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment