[MTD] [NOR] Fix overflow check in jedec_probe
authorDavid Woodhouse <dwmw2@infradead.org>
Fri, 30 Nov 2007 16:24:52 +0000 (16:24 +0000)
committerDavid Woodhouse <dwmw2@infradead.org>
Mon, 3 Dec 2007 12:49:38 +0000 (12:49 +0000)
Having laid the code out so that it's easier to read instead of sticking
to the 80-column guideline even when it doesn't make sense, a bug is
immediately spotted... we were only checking _one_ of the unlock
addresses to see if it runs off the end of the map.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
drivers/mtd/chips/jedec_probe.c

index cb8c34d..6041ce8 100644 (file)
@@ -1952,7 +1952,7 @@ static int jedec_probe_chip(struct map_info *map, __u32 base,
        }
        /* Ensure the unlock addresses we try stay inside the map */
        probe_offset1 = cfi_build_cmd_addr(cfi->addr_unlock1, cfi_interleave(cfi), cfi->device_type);
-       probe_offset2 = cfi_build_cmd_addr(cfi->addr_unlock1, cfi_interleave(cfi), cfi->device_type);
+       probe_offset2 = cfi_build_cmd_addr(cfi->addr_unlock2, cfi_interleave(cfi), cfi->device_type);
        if (    ((base + probe_offset1 + map_bankwidth(map)) >= map->size) ||
                ((base + probe_offset2 + map_bankwidth(map)) >= map->size))
                goto retry;