diff options
| -rw-r--r-- | drivers/mtd/nand/txx9ndfmc.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/mtd/nand/txx9ndfmc.c b/drivers/mtd/nand/txx9ndfmc.c index 5f919e63b29b..488088eff2ca 100644 --- a/drivers/mtd/nand/txx9ndfmc.c +++ b/drivers/mtd/nand/txx9ndfmc.c | |||
| @@ -336,20 +336,21 @@ static int __init txx9ndfmc_probe(struct platform_device *dev) | |||
| 336 | txx9_priv->cs = i; | 336 | txx9_priv->cs = i; |
| 337 | txx9_priv->mtdname = kasprintf(GFP_KERNEL, "%s.%u", | 337 | txx9_priv->mtdname = kasprintf(GFP_KERNEL, "%s.%u", |
| 338 | dev_name(&dev->dev), i); | 338 | dev_name(&dev->dev), i); |
| 339 | if (!txx9_priv->mtdname) { | ||
| 340 | kfree(txx9_priv); | ||
| 341 | dev_err(&dev->dev, | ||
| 342 | "Unable to allocate TXx9 NDFMC MTD device name.\n"); | ||
| 343 | continue; | ||
| 344 | } | ||
| 345 | } else { | 339 | } else { |
| 346 | txx9_priv->cs = -1; | 340 | txx9_priv->cs = -1; |
| 347 | txx9_priv->mtdname = dev_name(&dev->dev); | 341 | txx9_priv->mtdname = kstrdup(dev_name(&dev->dev), |
| 342 | GFP_KERNEL); | ||
| 343 | } | ||
| 344 | if (!txx9_priv->mtdname) { | ||
| 345 | kfree(txx9_priv); | ||
| 346 | dev_err(&dev->dev, "Unable to allocate MTD name.\n"); | ||
| 347 | continue; | ||
| 348 | } | 348 | } |
| 349 | if (plat->wide_mask & (1 << i)) | 349 | if (plat->wide_mask & (1 << i)) |
| 350 | chip->options |= NAND_BUSWIDTH_16; | 350 | chip->options |= NAND_BUSWIDTH_16; |
| 351 | 351 | ||
| 352 | if (nand_scan(mtd, 1)) { | 352 | if (nand_scan(mtd, 1)) { |
| 353 | kfree(txx9_priv->mtdname); | ||
| 353 | kfree(txx9_priv); | 354 | kfree(txx9_priv); |
| 354 | continue; | 355 | continue; |
| 355 | } | 356 | } |
| @@ -391,8 +392,7 @@ static int __exit txx9ndfmc_remove(struct platform_device *dev) | |||
| 391 | kfree(drvdata->parts[i]); | 392 | kfree(drvdata->parts[i]); |
| 392 | #endif | 393 | #endif |
| 393 | del_mtd_device(mtd); | 394 | del_mtd_device(mtd); |
| 394 | if (txx9_priv->mtdname != dev_name(&dev->dev)) | 395 | kfree(txx9_priv->mtdname); |
| 395 | kfree(txx9_priv->mtdname); | ||
| 396 | kfree(txx9_priv); | 396 | kfree(txx9_priv); |
| 397 | } | 397 | } |
| 398 | return 0; | 398 | return 0; |
