Commit 051fb047 authored by Alex Elder's avatar Alex Elder Committed by Greg Kroah-Hartman

greybus: don't assume subdevs are valid

Most of the disconnect routines for the "subdevs" of a module
blindly assume that initialization of the subdev was successful.

Fix this by checking for null pointers.
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
parent 8fd39e3d
......@@ -135,6 +135,8 @@ void gb_battery_disconnect(struct gb_module *gmod)
struct gb_battery *gb;
gb = gmod->gb_battery;
if (!gb)
return;
power_supply_unregister(&gb->bat);
......
......@@ -92,6 +92,8 @@ void gb_gpio_disconnect(struct gb_module *gmod)
int retval;
gb_gpio_dev = gmod->gb_gpio_dev;
if (!gb_gpio_dev)
return;
retval = gpiochip_remove(&gb_gpio_dev->chip);
kfree(gb_gpio_dev);
......
......@@ -121,6 +121,8 @@ void gb_i2c_disconnect(struct gb_module *gmod)
struct gb_i2c_device *gb_i2c_dev;
gb_i2c_dev = gmod->gb_i2c_dev;
if (!gb_i2c_dev)
return;
i2c_del_adapter(gb_i2c_dev->adapter);
kfree(gb_i2c_dev->adapter);
kfree(gb_i2c_dev);
......
......@@ -71,8 +71,10 @@ void gb_sdio_disconnect(struct gb_module *gmod)
struct gb_sdio_host *host;
host = gmod->gb_sdio_host;
mmc = host->mmc;
if (!host)
return;
mmc = host->mmc;
mmc_remove_host(mmc);
mmc_free_host(mmc);
}
......
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