From: Brian Walsh If the amount of flash is not divisible by 2 then the mask in parse_mtd_partitions would fail to work as designed. Passing in the base address corrects this problem. Signed-off-by: Brian Walsh Cc: David Woodhouse Cc: Deepak Sanexa Cc: Thomas Gleixner Signed-off-by: Andrew Morton --- drivers/mtd/maps/ixp4xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/mtd/maps/ixp4xx.c~mtd-maps-ixp4xx-partition-parsing drivers/mtd/maps/ixp4xx.c --- a/drivers/mtd/maps/ixp4xx.c~mtd-maps-ixp4xx-partition-parsing +++ a/drivers/mtd/maps/ixp4xx.c @@ -253,7 +253,7 @@ static int ixp4xx_flash_probe(struct pla /* Use the fast version */ info->map.write = ixp4xx_write16, - err = parse_mtd_partitions(info->mtd, probes, &info->partitions, 0); + err = parse_mtd_partitions(info->mtd, probes, &info->partitions, dev->resource->start); if (err > 0) { err = add_mtd_partitions(info->mtd, info->partitions, err); if(err) _