summaryrefslogtreecommitdiffstats
path: root/drivers/mtd
diff options
context:
space:
mode:
authorMaxim Levitsky <maximlevitsky@gmail.com>2010-02-26 22:08:40 +0200
committerDavid Woodhouse <David.Woodhouse@intel.com>2010-02-26 20:13:49 +0000
commit133fa8c7d70d16b07db3a3d87ea18291db8f8ebf (patch)
tree0a5a8ab311a46dbfd8cb3f90dce98adafc6c8473 /drivers/mtd
parent67e054e919248fa1db93de727fb9ad49eb700642 (diff)
downloadtalos-op-linux-133fa8c7d70d16b07db3a3d87ea18291db8f8ebf.tar.gz
talos-op-linux-133fa8c7d70d16b07db3a3d87ea18291db8f8ebf.zip
mtd: Few follow up cleanups for Smartmedia/xD support
* Test results of few functions that were declared with __must_check * Fix bogus gcc warning about uinitialized variable 'ret' * Remove unused variable from mtdblock_remove_dev * Don't use deprecated DMA_32BIT_MASK Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/mtd_blkdevs.c6
-rw-r--r--drivers/mtd/mtdblock.c1
-rw-r--r--drivers/mtd/nand/r852.c6
-rw-r--r--drivers/mtd/sm_ftl.c17
4 files changed, 18 insertions, 12 deletions
diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
index 9dd23d6acbb6..e32c49cb4005 100644
--- a/drivers/mtd/mtd_blkdevs.c
+++ b/drivers/mtd/mtd_blkdevs.c
@@ -380,9 +380,11 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
add_disk(gd);
- if (new->disk_attributes)
- sysfs_create_group(&disk_to_dev(gd)->kobj,
+ if (new->disk_attributes) {
+ ret = sysfs_create_group(&disk_to_dev(gd)->kobj,
new->disk_attributes);
+ WARN_ON(ret);
+ }
return 0;
error4:
module_put(tr->owner);
diff --git a/drivers/mtd/mtdblock.c b/drivers/mtd/mtdblock.c
index 7ce30a239ada..e6edbec609fd 100644
--- a/drivers/mtd/mtdblock.c
+++ b/drivers/mtd/mtdblock.c
@@ -354,7 +354,6 @@ static void mtdblock_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
static void mtdblock_remove_dev(struct mtd_blktrans_dev *dev)
{
- struct mtdblk_dev *mtdblk = container_of(dev, struct mtdblk_dev, mbd);
del_mtd_blktrans_dev(dev);
}
diff --git a/drivers/mtd/nand/r852.c b/drivers/mtd/nand/r852.c
index 9307a88e5229..7a616a926ee9 100644
--- a/drivers/mtd/nand/r852.c
+++ b/drivers/mtd/nand/r852.c
@@ -654,7 +654,9 @@ int r852_register_nand_device(struct r852_device *dev)
if (sm_register_device(dev->mtd))
goto error2;
- device_create_file(&dev->mtd->dev, &dev_attr_media_type);
+ if (device_create_file(&dev->mtd->dev, &dev_attr_media_type))
+ message("can't create media type sysfs attribute");
+
dev->card_registred = 1;
return 0;
error2:
@@ -838,7 +840,7 @@ int r852_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
pci_set_master(pci_dev);
- error = pci_set_dma_mask(pci_dev, DMA_32BIT_MASK);
+ error = pci_set_dma_mask(pci_dev, DMA_BIT_MASK(32));
if (error)
goto error2;
diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
index a59ebb48cae1..9fb56c76ae89 100644
--- a/drivers/mtd/sm_ftl.c
+++ b/drivers/mtd/sm_ftl.c
@@ -228,7 +228,7 @@ static int sm_read_sector(struct sm_ftl *ftl,
struct mtd_info *mtd = ftl->trans->mtd;
struct mtd_oob_ops ops;
struct sm_oob tmp_oob;
- int ret;
+ int ret = -EIO;
int try = 0;
/* FTL can contain -1 entries that are by default filled with bits */
@@ -753,6 +753,7 @@ static int sm_init_zone(struct sm_ftl *ftl, int zone_num)
uint16_t block;
int lba;
int i = 0;
+ int len;
dbg("initializing zone %d", zone_num);
@@ -856,7 +857,9 @@ static int sm_init_zone(struct sm_ftl *ftl, int zone_num)
i %= (kfifo_len(&zone->free_sectors) / 2);
while (i--) {
- kfifo_out(&zone->free_sectors, (unsigned char *)&block, 2);
+ len = kfifo_out(&zone->free_sectors,
+ (unsigned char *)&block, 2);
+ WARN_ON(len != 2);
kfifo_in(&zone->free_sectors, (const unsigned char *)&block, 2);
}
return 0;
@@ -947,17 +950,17 @@ restart:
if (ftl->unstable)
return -EIO;
- /* No spare blocks */
- /* We could still continue by erasing the current block,
+
+ /* If there are no spare blocks, */
+ /* we could still continue by erasing/writing the current block,
but for such worn out media it doesn't worth the trouble,
and the dangers */
-
- if (!kfifo_len(&zone->free_sectors)) {
+ if (kfifo_out(&zone->free_sectors,
+ (unsigned char *)&write_sector, 2) != 2) {
dbg("no free sectors for write!");
return -EIO;
}
- kfifo_out(&zone->free_sectors, (unsigned char *)&write_sector, 2);
if (sm_write_block(ftl, ftl->cache_data, zone_num, write_sector,
ftl->cache_block, ftl->cache_data_invalid_bitmap))
OpenPOWER on IntegriCloud