diff options
author | Kangjie Lu <kjlu@umn.edu> | 2019-03-16 17:08:33 -0500 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2019-04-04 20:20:14 +0100 |
commit | 536cc27deade8f1ec3c1beefa60d5fbe0f6fcb28 (patch) | |
tree | 6d6532e79caa87ca9b69f9f15a8032ca222df5bb /drivers/iio/magnetometer/hmc5843_spi.c | |
parent | a816646f08ce18e8787d241e1dbda5cbc314e5ea (diff) | |
download | linux-536cc27deade8f1ec3c1beefa60d5fbe0f6fcb28.tar.bz2 |
iio: hmc5843: fix potential NULL pointer dereferences
devm_regmap_init_i2c may fail and return NULL. The fix returns
the error when it fails.
Signed-off-by: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/magnetometer/hmc5843_spi.c')
-rw-r--r-- | drivers/iio/magnetometer/hmc5843_spi.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/iio/magnetometer/hmc5843_spi.c b/drivers/iio/magnetometer/hmc5843_spi.c index 535f03a70d63..79b2b707f90e 100644 --- a/drivers/iio/magnetometer/hmc5843_spi.c +++ b/drivers/iio/magnetometer/hmc5843_spi.c @@ -58,6 +58,7 @@ static const struct regmap_config hmc5843_spi_regmap_config = { static int hmc5843_spi_probe(struct spi_device *spi) { int ret; + struct regmap *regmap; const struct spi_device_id *id = spi_get_device_id(spi); spi->mode = SPI_MODE_3; @@ -67,8 +68,12 @@ static int hmc5843_spi_probe(struct spi_device *spi) if (ret) return ret; + regmap = devm_regmap_init_spi(spi, &hmc5843_spi_regmap_config); + if (IS_ERR(regmap)) + return PTR_ERR(regmap); + return hmc5843_common_probe(&spi->dev, - devm_regmap_init_spi(spi, &hmc5843_spi_regmap_config), + regmap, id->driver_data, id->name); } |