summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-05-16 12:54:29 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-05-16 19:15:59 +0200
commit0d188aca536284f3c9650d8857c43c0dd5a81c2c (patch)
tree81f80da7fd4c38420fba98799dc7684e0fc451f8 /drivers
parent16678a3a433a6bcf30e8a7f275a4a9491a7d4e79 (diff)
downloadbarebox-0d188aca536284f3c9650d8857c43c0dd5a81c2c.tar.gz
barebox-0d188aca536284f3c9650d8857c43c0dd5a81c2c.tar.xz
mfd mc13xxxx: Set mc_dev to NULL on failure
The mc13xxx driver correctly bails out on failure, but leaves mc_dev initialized, so a later mc13xxx_get won't fail but returns an invalid pointer. Fix this. While at it, remove some superfluous code from mc13xxx_get. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/mc13xxx.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/mfd/mc13xxx.c b/drivers/mfd/mc13xxx.c
index ad7cb7eceb..f9477a3540 100644
--- a/drivers/mfd/mc13xxx.c
+++ b/drivers/mfd/mc13xxx.c
@@ -38,9 +38,6 @@ static struct mc13xxx *mc_dev;
struct mc13xxx *mc13xxx_get(void)
{
- if (!mc_dev)
- return NULL;
-
return mc_dev;
}
EXPORT_SYMBOL(mc13xxx_get);
@@ -308,6 +305,7 @@ static int mc_probe(struct device_d *dev, enum mc13xxx_mode mode)
rev = mc13xxx_query_revision(mc_dev);
if (rev < 0) {
free(mc_dev);
+ mc_dev = NULL;
return -EINVAL;
}