Message ID | 20181002210826.2588925-1-arnd@arndb.de |
---|---|
State | New |
Headers | show |
Series | regulator/mfd: fix pointer-to-int cast | expand |
Hello Arnd, On Tue, Oct 02, 2018 at 11:07:32PM +0200, Arnd Bergmann wrote: > gcc points out that a pointer is longer than an int on 64-bit > architectures, and that casting between the two may be dangerous: > > drivers/mfd/rohm-bd718x7.c: In function 'bd718xx_i2c_probe': > drivers/mfd/rohm-bd718x7.c:101:23: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] > > In this driver it is correct, we just need the right kind of cast > to avoid the warning. > > Fixes: 494edd266b94 ("regulator/mfd: Support ROHM BD71847 power management IC") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/mfd/rohm-bd718x7.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mfd/rohm-bd718x7.c b/drivers/mfd/rohm-bd718x7.c > index 161c8aac6d86..e66d59190a82 100644 > --- a/drivers/mfd/rohm-bd718x7.c > +++ b/drivers/mfd/rohm-bd718x7.c > @@ -98,7 +98,7 @@ static int bd718xx_i2c_probe(struct i2c_client *i2c, > return -ENOMEM; > > bd718xx->chip_irq = i2c->irq; > - bd718xx->chip_type = (unsigned int) > + bd718xx->chip_type = (uintptr_t) > of_device_get_match_data(&i2c->dev); > bd718xx->dev = &i2c->dev; > dev_set_drvdata(&i2c->dev, bd718xx); Big thanks for this activity =) I also got heads up mail from linux-next so I also did a patch fixing this. I think Mark alrady applied that patch to his tree. (https://lore.kernel.org/lkml/20181002145901.899D41121A41@debutante.sirena.org.uk/) Br, Matti Vaittinen
diff --git a/drivers/mfd/rohm-bd718x7.c b/drivers/mfd/rohm-bd718x7.c index 161c8aac6d86..e66d59190a82 100644 --- a/drivers/mfd/rohm-bd718x7.c +++ b/drivers/mfd/rohm-bd718x7.c @@ -98,7 +98,7 @@ static int bd718xx_i2c_probe(struct i2c_client *i2c, return -ENOMEM; bd718xx->chip_irq = i2c->irq; - bd718xx->chip_type = (unsigned int) + bd718xx->chip_type = (uintptr_t) of_device_get_match_data(&i2c->dev); bd718xx->dev = &i2c->dev; dev_set_drvdata(&i2c->dev, bd718xx);
gcc points out that a pointer is longer than an int on 64-bit architectures, and that casting between the two may be dangerous: drivers/mfd/rohm-bd718x7.c: In function 'bd718xx_i2c_probe': drivers/mfd/rohm-bd718x7.c:101:23: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] In this driver it is correct, we just need the right kind of cast to avoid the warning. Fixes: 494edd266b94 ("regulator/mfd: Support ROHM BD71847 power management IC") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/mfd/rohm-bd718x7.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.18.0