diff options
Diffstat (limited to 'drivers/mtd/chips/cfi_cmdset_0001.c')
-rw-r--r-- | drivers/mtd/chips/cfi_cmdset_0001.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c index adaad7c8fd46..61a2ec9901e2 100644 --- a/drivers/mtd/chips/cfi_cmdset_0001.c +++ b/drivers/mtd/chips/cfi_cmdset_0001.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * (C) 2000 Red Hat. GPL'd | 5 | * (C) 2000 Red Hat. GPL'd |
6 | * | 6 | * |
7 | * $Id: cfi_cmdset_0001.c,v 1.183 2005/08/06 04:46:56 nico Exp $ | 7 | * $Id: cfi_cmdset_0001.c,v 1.184 2005/10/25 20:28:40 nico Exp $ |
8 | * | 8 | * |
9 | * | 9 | * |
10 | * 10/10/2000 Nicolas Pitre <nico@cam.org> | 10 | * 10/10/2000 Nicolas Pitre <nico@cam.org> |
@@ -285,7 +285,10 @@ read_pri_intelext(struct map_info *map, __u16 adr) | |||
285 | sizeof(struct cfi_intelext_otpinfo); | 285 | sizeof(struct cfi_intelext_otpinfo); |
286 | 286 | ||
287 | /* Burst Read info */ | 287 | /* Burst Read info */ |
288 | extra_size += (extp->MinorVersion < '4') ? 6 : 5; | 288 | extra_size += 2; |
289 | if (extp_size < sizeof(*extp) + extra_size) | ||
290 | goto need_more; | ||
291 | extra_size += extp->extra[extra_size-1]; | ||
289 | 292 | ||
290 | /* Number of hardware-partitions */ | 293 | /* Number of hardware-partitions */ |
291 | extra_size += 1; | 294 | extra_size += 1; |
@@ -519,7 +522,7 @@ static int cfi_intelext_partition_fixup(struct mtd_info *mtd, | |||
519 | sizeof(struct cfi_intelext_otpinfo); | 522 | sizeof(struct cfi_intelext_otpinfo); |
520 | 523 | ||
521 | /* Burst Read info */ | 524 | /* Burst Read info */ |
522 | offs += (extp->MinorVersion < '4') ? 6 : 5; | 525 | offs += extp->extra[offs+1]+2; |
523 | 526 | ||
524 | /* Number of partition regions */ | 527 | /* Number of partition regions */ |
525 | numregions = extp->extra[offs]; | 528 | numregions = extp->extra[offs]; |