Message ID | 20180819021641.3068-1-jasonwood2031@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hmc5843_i2c.c: fix missing return value check of devm_regmap_init_i2c() | expand |
On Sun, Aug 19, 2018 at 10:16:41AM +0800, Jiecheng Wu wrote: > Function hmc5843_i2c_probe() defined in > drivers/iio/magnetometer/hmc5843_i2c.c calls devm_regmap_init_i2c() > to initialise managed register map. As the return value of > devm_regmap_init_i2c() will be an ERR_PTR() on error, the return > value must be checked against NULL. Please take a careful look again at what points I suggested in a previous patch you sent. Take a look at a sample patch: https://lore.kernel.org/lkml/20180531112107.13778-1-hdegoede@redhat.com/ * Signed-off-by: * Bugzilla link: * Send to relevant maintainers: himanshu@himanshu-Vostro-3559:~/linux-next$ ./scripts/get_maintainer.pl ~/Downloads/hmc5843_i2c.c-fix-missing-return-value-check-of-devm_regmap_init_i2c.patch Jonathan Cameron <jic23@kernel.org> (maintainer:IIO SUBSYSTEM AND DRIVERS) Hartmut Knaack <knaack.h@gmx.de> (reviewer:IIO SUBSYSTEM AND DRIVERS) Lars-Peter Clausen <lars@metafoo.de> (reviewer:IIO SUBSYSTEM AND DRIVERS) Peter Meerwald-Stadler <pmeerw@pmeerw.net> (reviewer:IIO SUBSYSTEM AND DRIVERS) linux-iio@vger.kernel.org (open list:IIO SUBSYSTEM AND DRIVERS) linux-kernel@vger.kernel.org (open list) * cc stable * Fixes tag: -- would be helpful * correct version numbering with changelog below the '---' (v1->v2->3 ...) All these are documented here: https://www.kernel.org/doc/html/latest/process/submitting-patches.html > --- > drivers/iio/magnetometer/hmc5843_i2c.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/magnetometer/hmc5843_i2c.c b/drivers/iio/magnetometer/hmc5843_i2c.c > index 3de7f44..4911cf8 100644 > --- a/drivers/iio/magnetometer/hmc5843_i2c.c > +++ b/drivers/iio/magnetometer/hmc5843_i2c.c > @@ -14,6 +14,7 @@ > #include <linux/regmap.h> > #include <linux/iio/iio.h> > #include <linux/iio/triggered_buffer.h> > +#include <linux/device.h> This include is not required since #include <linux/iio/iio.h> already includes it.
On Sun, 19 Aug 2018 10:16:41 +0800 Jiecheng Wu <jasonwood2031@gmail.com> wrote: > Function hmc5843_i2c_probe() defined in > drivers/iio/magnetometer/hmc5843_i2c.c calls devm_regmap_init_i2c() > to initialise managed register map. As the return value of > devm_regmap_init_i2c() will be an ERR_PTR() on error, the return > value must be checked against NULL. This text isn't accurate. Checking IS_ERR is definitely not checking against NULL. + the issue with missing signoff etc that has already been raised. Jonathan > --- > drivers/iio/magnetometer/hmc5843_i2c.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/magnetometer/hmc5843_i2c.c b/drivers/iio/magnetometer/hmc5843_i2c.c > index 3de7f44..4911cf8 100644 > --- a/drivers/iio/magnetometer/hmc5843_i2c.c > +++ b/drivers/iio/magnetometer/hmc5843_i2c.c > @@ -14,6 +14,7 @@ > #include <linux/regmap.h> > #include <linux/iio/iio.h> > #include <linux/iio/triggered_buffer.h> > +#include <linux/device.h> > > #include "hmc5843.h" > > @@ -58,8 +59,13 @@ static const struct regmap_config hmc5843_i2c_regmap_config = { > static int hmc5843_i2c_probe(struct i2c_client *cli, > const struct i2c_device_id *id) > { > - return hmc5843_common_probe(&cli->dev, > - devm_regmap_init_i2c(cli, &hmc5843_i2c_regmap_config), > + struct regmap *regmap; > + regmap = devm_regmap_init_i2c(cli, &hmc5843_i2c_regmap_config); > + if (IS_ERR(regmap)) { > + dev_err(&cli->dev, "Failed to initialize i2c regmap\n"); > + return PTR_ERR(regmap); > + } > + return hmc5843_common_probe(&cli->dev, regmap, > id->driver_data, id->name); > } >
diff --git a/drivers/iio/magnetometer/hmc5843_i2c.c b/drivers/iio/magnetometer/hmc5843_i2c.c index 3de7f44..4911cf8 100644 --- a/drivers/iio/magnetometer/hmc5843_i2c.c +++ b/drivers/iio/magnetometer/hmc5843_i2c.c @@ -14,6 +14,7 @@ #include <linux/regmap.h> #include <linux/iio/iio.h> #include <linux/iio/triggered_buffer.h> +#include <linux/device.h> #include "hmc5843.h" @@ -58,8 +59,13 @@ static const struct regmap_config hmc5843_i2c_regmap_config = { static int hmc5843_i2c_probe(struct i2c_client *cli, const struct i2c_device_id *id) { - return hmc5843_common_probe(&cli->dev, - devm_regmap_init_i2c(cli, &hmc5843_i2c_regmap_config), + struct regmap *regmap; + regmap = devm_regmap_init_i2c(cli, &hmc5843_i2c_regmap_config); + if (IS_ERR(regmap)) { + dev_err(&cli->dev, "Failed to initialize i2c regmap\n"); + return PTR_ERR(regmap); + } + return hmc5843_common_probe(&cli->dev, regmap, id->driver_data, id->name); }