Message ID | 1373955657-10363-1-git-send-email-wangyuhang2014@gmail.com |
---|---|
State | New, archived |
Headers | show |
Dear wangyuhang, > space allocated can not be freed when probe failed, So we use > devm_kzalloc() to instead of kzalloc(). > flash->fast_read is used without being initialized, here > move it to the certain position. > > Signed-off-by: wangyuhang <wangyuhang2014@gmail.com> The commit message is a little unclear, but otherwise I agree with the patch. The rest is I believe up to Artem. > --- > drivers/mtd/devices/m25p80.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c > index 5b6b072..70f3c54 100644 > --- a/drivers/mtd/devices/m25p80.c > +++ b/drivers/mtd/devices/m25p80.c > @@ -955,15 +955,9 @@ static int m25p_probe(struct spi_device *spi) > } > } > > - flash = kzalloc(sizeof *flash, GFP_KERNEL); > + flash = devm_kzalloc(&spi->dev, sizeof *flash, GFP_KERNEL); > if (!flash) > return -ENOMEM; > - flash->command = kmalloc(MAX_CMD_SIZE + (flash->fast_read ? 1 : 0), > - GFP_KERNEL); > - if (!flash->command) { > - kfree(flash); > - return -ENOMEM; > - } > > flash->spi = spi; > mutex_init(&flash->lock); > @@ -1032,6 +1026,11 @@ static int m25p_probe(struct spi_device *spi) > flash->fast_read = true; > #endif > > + flash->command = devm_kzalloc(&spi->dev, > + MAX_CMD_SIZE + (flash->fast_read ? 1 : 0), GFP_KERNEL); > + if (!flash->command) > + return -ENOMEM; > + > if (info->addr_width) > flash->addr_width = info->addr_width; > else { Best regards, Marek Vasut
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c index 5b6b072..70f3c54 100644 --- a/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c @@ -955,15 +955,9 @@ static int m25p_probe(struct spi_device *spi) } } - flash = kzalloc(sizeof *flash, GFP_KERNEL); + flash = devm_kzalloc(&spi->dev, sizeof *flash, GFP_KERNEL); if (!flash) return -ENOMEM; - flash->command = kmalloc(MAX_CMD_SIZE + (flash->fast_read ? 1 : 0), - GFP_KERNEL); - if (!flash->command) { - kfree(flash); - return -ENOMEM; - } flash->spi = spi; mutex_init(&flash->lock); @@ -1032,6 +1026,11 @@ static int m25p_probe(struct spi_device *spi) flash->fast_read = true; #endif + flash->command = devm_kzalloc(&spi->dev, + MAX_CMD_SIZE + (flash->fast_read ? 1 : 0), GFP_KERNEL); + if (!flash->command) + return -ENOMEM; + if (info->addr_width) flash->addr_width = info->addr_width; else {
space allocated can not be freed when probe failed, So we use devm_kzalloc() to instead of kzalloc(). flash->fast_read is used without being initialized, here move it to the certain position. Signed-off-by: wangyuhang <wangyuhang2014@gmail.com> --- drivers/mtd/devices/m25p80.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)