On Tue, Mar 31, 2015 at 09:49:08AM +0530, Varka Bhadram wrote: > We can use devres API for allocating memory. No need of using kfree. > > Signed-off-by: Varka Bhadram <varkab@xxxxxxx> > --- > drivers/gpio/gpio-adp5588.c | 3 +-- > drivers/gpio/gpio-mcp23s08.c | 7 ++++--- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpio/gpio-adp5588.c b/drivers/gpio/gpio-adp5588.c > index 3beed6e..0de8c70 100644 > --- a/drivers/gpio/gpio-adp5588.c > +++ b/drivers/gpio/gpio-adp5588.c > @@ -378,7 +378,7 @@ static int adp5588_gpio_probe(struct i2c_client *client, > return -EIO; > } > > - dev = kzalloc(sizeof(*dev), GFP_KERNEL); > + dev = devm_kzalloc(&client->dev, sizeof(*dev), GFP_KERNEL); > if (dev == NULL) > return -ENOMEM; > > @@ -446,7 +446,6 @@ static int adp5588_gpio_probe(struct i2c_client *client, > err_irq: > adp5588_irq_teardown(dev); > err: > - kfree(dev); > return ret; > } You cannot just switch the allocation to devm_kzalloc without removing the kfree from the remove callback. > diff --git a/drivers/gpio/gpio-mcp23s08.c b/drivers/gpio/gpio-mcp23s08.c > index eea5d7e..a17b81f 100644 > --- a/drivers/gpio/gpio-mcp23s08.c > +++ b/drivers/gpio/gpio-mcp23s08.c > @@ -949,10 +949,12 @@ static int mcp23s08_probe(struct spi_device *spi) > if (!chips) > return -ENODEV; > > - data = kzalloc(sizeof(*data) + chips * sizeof(struct mcp23s08), > - GFP_KERNEL); > + data = devm_kzalloc(&spi->dev, > + sizeof(*data) + chips * sizeof(struct mcp23s08), > + GFP_KERNEL); > if (!data) > return -ENOMEM; > + > spi_set_drvdata(spi, data); > > spi->irq = irq_of_parse_and_map(spi->dev.of_node, 0); > @@ -989,7 +991,6 @@ fail: > continue; > gpiochip_remove(&data->mcp[addr]->chip); > } > - kfree(data); > return status; > } Same bug again. Johan -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html