diff options
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/devices/phram.c | 6 | ||||
-rw-r--r-- | drivers/mtd/devices/st_spi_fsm.c | 2 | ||||
-rw-r--r-- | drivers/mtd/maps/pci.c | 8 | ||||
-rw-r--r-- | drivers/mtd/mtdswap.c | 1 | ||||
-rw-r--r-- | drivers/mtd/parsers/afs.c | 4 | ||||
-rw-r--r-- | drivers/mtd/parsers/parser_imagetag.c | 4 |
6 files changed, 15 insertions, 10 deletions
diff --git a/drivers/mtd/devices/phram.c b/drivers/mtd/devices/phram.c index cfd170946ba4..5b04ae6c3057 100644 --- a/drivers/mtd/devices/phram.c +++ b/drivers/mtd/devices/phram.c @@ -222,6 +222,7 @@ static int phram_setup(const char *val) uint64_t start; uint64_t len; uint64_t erasesize = PAGE_SIZE; + uint32_t rem; int i, ret; if (strnlen(val, sizeof(buf)) >= sizeof(buf)) @@ -263,8 +264,11 @@ static int phram_setup(const char *val) } } + if (erasesize) + div_u64_rem(len, (uint32_t)erasesize, &rem); + if (len == 0 || erasesize == 0 || erasesize > len - || erasesize > UINT_MAX || do_div(len, (uint32_t)erasesize) != 0) { + || erasesize > UINT_MAX || rem) { parse_err("illegal erasesize or len\n"); goto error; } diff --git a/drivers/mtd/devices/st_spi_fsm.c b/drivers/mtd/devices/st_spi_fsm.c index 1888523d9745..983999c020d6 100644 --- a/drivers/mtd/devices/st_spi_fsm.c +++ b/drivers/mtd/devices/st_spi_fsm.c @@ -924,7 +924,7 @@ static int stfsm_read_status(struct stfsm *fsm, uint8_t cmd, BUG_ON(bytes != 1 && bytes != 2); seq->seq_opc[0] = (SEQ_OPC_PADS_1 | SEQ_OPC_CYCLES(8) | - SEQ_OPC_OPCODE(cmd)), + SEQ_OPC_OPCODE(cmd)); stfsm_load_seq(fsm, seq); diff --git a/drivers/mtd/maps/pci.c b/drivers/mtd/maps/pci.c index 377ef0fc4e3e..ca00d211e73e 100644 --- a/drivers/mtd/maps/pci.c +++ b/drivers/mtd/maps/pci.c @@ -90,8 +90,8 @@ intel_iq80310_init(struct pci_dev *dev, struct map_pci_info *map) u32 win_base; map->map.bankwidth = 1; - map->map.read = mtd_pci_read8, - map->map.write = mtd_pci_write8, + map->map.read = mtd_pci_read8; + map->map.write = mtd_pci_write8; map->map.size = 0x00800000; map->base = ioremap(pci_resource_start(dev, 0), @@ -185,8 +185,8 @@ intel_dc21285_init(struct pci_dev *dev, struct map_pci_info *map) return -ENXIO; map->map.bankwidth = 4; - map->map.read = mtd_pci_read32, - map->map.write = mtd_pci_write32, + map->map.read = mtd_pci_read32; + map->map.write = mtd_pci_write32; map->map.size = len; map->base = ioremap(base, len); diff --git a/drivers/mtd/mtdswap.c b/drivers/mtd/mtdswap.c index 58eefa43af14..795dec4483c2 100644 --- a/drivers/mtd/mtdswap.c +++ b/drivers/mtd/mtdswap.c @@ -1053,7 +1053,6 @@ static int mtdswap_writesect(struct mtd_blktrans_dev *dev, if (ret < 0) return ret; - eb = d->eb_data + (newblock / d->pages_per_eblk); d->page_data[page] = newblock; return 0; diff --git a/drivers/mtd/parsers/afs.c b/drivers/mtd/parsers/afs.c index 980e332bdac4..26116694c821 100644 --- a/drivers/mtd/parsers/afs.c +++ b/drivers/mtd/parsers/afs.c @@ -370,10 +370,8 @@ static int parse_afs_partitions(struct mtd_info *mtd, return i; out_free_parts: - while (i >= 0) { + while (--i >= 0) kfree(parts[i].name); - i--; - } kfree(parts); *pparts = NULL; return ret; diff --git a/drivers/mtd/parsers/parser_imagetag.c b/drivers/mtd/parsers/parser_imagetag.c index d69607b48227..fab0949aabba 100644 --- a/drivers/mtd/parsers/parser_imagetag.c +++ b/drivers/mtd/parsers/parser_imagetag.c @@ -83,6 +83,7 @@ static int bcm963xx_parse_imagetag_partitions(struct mtd_info *master, pr_err("invalid rootfs address: %*ph\n", (int)sizeof(buf->flash_image_start), buf->flash_image_start); + ret = -EINVAL; goto out; } @@ -92,6 +93,7 @@ static int bcm963xx_parse_imagetag_partitions(struct mtd_info *master, pr_err("invalid kernel address: %*ph\n", (int)sizeof(buf->kernel_address), buf->kernel_address); + ret = -EINVAL; goto out; } @@ -100,6 +102,7 @@ static int bcm963xx_parse_imagetag_partitions(struct mtd_info *master, pr_err("invalid kernel length: %*ph\n", (int)sizeof(buf->kernel_length), buf->kernel_length); + ret = -EINVAL; goto out; } @@ -108,6 +111,7 @@ static int bcm963xx_parse_imagetag_partitions(struct mtd_info *master, pr_err("invalid total length: %*ph\n", (int)sizeof(buf->total_length), buf->total_length); + ret = -EINVAL; goto out; } |