mtd: bcm47: convert kzalloc to avoid invalid access
PATCH RESEND 1/2 mtd: bcm47: convert kzalloc to avoid invalid access
mtd is just member of bcm47xxsflash, so we should free bcm47xxsflash not its member. So I use devm_kazlloc instead of kazlloc to avoid it.
* Changelog:
convert to devm_kzalloc
--- drivers/mtd/devices/bcm47xxsflash.c | 16 ++++------------ 1 files changed, 4 insertions(+), 12 deletions(-)
drivers/mtd/devices/bcm47xxsflash.c +4 -12
@@ -54,11 +54,9 @@ static int bcm47xxsflash_bcma_probe(struct platform_device *pdev)struct bcm47xxsflash *b47s;int err; - b47s =kzalloc (sizeof (*b47s),GFP_KERNEL ); -if (!b47s) { - err = -ENOMEM ; - goto out; - } + b47s =devm_kzalloc (&pdev->dev,sizeof (*b47s),GFP_KERNEL ); +if (!b47s) +return -ENOMEM ; sflash->priv = b47s; b47s->bcma_cc = container_of(sflash, struct bcma_drv_cc, sflash);
@@ -81,15 +79,10 @@ static int bcm47xxsflash_bcma_probe(struct platform_device *pdev) err =mtd_device_parse_register (&b47s->mtd, probes,NULL ,NULL ,0 );if (err) {pr_err ("Failed to register MTD device: %d\n" , err); - goto err_dev_reg; +return err; }return 0 ; - -err_dev_reg: -kfree (&b47s->mtd); -out: -return err; }static int bcm47xxsflash_bcma_remove (struct platform_device *pdev)
@@ -98,7 +91,6 @@ static int bcm47xxsflash_bcma_remove(struct platform_device *pdev)struct bcm47xxsflash *b47s = sflash->priv;mtd_device_unregister (&b47s->mtd); -kfree (b47s);return 0 ; }
Signature · 1 line
1.7.1
Quoted 2 lines · Libo Chen
mtd is just member of bcm47xxsflash, so we should free bcm47xxsflash not its member. So I use
devm_kazllocinstead of kazlloc to avoid it.
You may amend commit message, but technically you have my
Quoted 45 lines
drivers/mtd/devices/bcm47xxsflash.c +4
-13@@ -54,11 +54,9 @@ static int bcm47xxsflash_bcma_probe(struct platform_device *pdev)struct bcm47xxsflash *b47s;int err; - b47s =kzalloc (sizeof (*b47s),GFP_KERNEL ); -if (!b47s) { - err = -ENOMEM ; - goto out; - } + b47s =devm_kzalloc (&pdev->dev,sizeof (*b47s),GFP_KERNEL ); +if (!b47s) +return -ENOMEM ; sflash->priv = b47s; b47s->bcma_cc = container_of(sflash, struct bcma_drv_cc, sflash);@@ -81,15 +79,10 @@ static int bcm47xxsflash_bcma_probe(struct platform_device *pdev) err =mtd_device_parse_register (&b47s->mtd, probes,NULL ,NULL ,0 );if (err) {pr_err ("Failed to register MTD device: %d\n" , err); - goto err_dev_reg; +return err; }return 0 ; - -err_dev_reg: -kfree (&b47s->mtd); -out: -return err; }static int bcm47xxsflash_bcma_remove (struct platform_device *pdev)@@ -98,7 +91,6 @@ static int bcm47xxsflash_bcma_remove(struct platform_device *pdev)struct bcm47xxsflash *b47s = sflash->priv;mtd_device_unregister (&b47s->mtd); -kfree (b47s);return 0 ; } --
Quoted 3 lines
1.7.1
--
With Best Regards,
Andy Shevchenko
2013/5/30 Libo Chen <[email protected]>:
Quoted 2 lines
mtd is just member of bcm47xxsflash, so we should free bcm47xxsflash not its member. So I use
devm_kazllocinstead of kazlloc to avoid it.
I think you should use
mtd: bcm47xxsflash:
prefix for both patches, but Artem or David may want to comment on that.
Nice trick with that devm_kzalloc, I didn't know it.
Signature · 1 line
Rafał
Quoted 9 lines · Libo Chen
mtd is just member of bcm47xxsflash, so we should free bcm47xxsflash not its member. So I use
devm_kazllocinstead of kazlloc to avoid it.* Changelog:
convert todevm_kzallocSigned-off-by Libo chen <[email protected]>Suggested-by Andy Shevchenko <[email protected]>
Resolved a conflict and pushed to l2-mtd.git. Thanks!
Brian