[2.6.28-rc5] mtd m25p80: regression fix for chip detection

Submitted by David Brownell on Nov. 17, 2008, 7:37 p.m.

Details

Message ID 200811171137.17431.david-b@pacbell.net
State New, archived
Headers show

Commit Message

David Brownell Nov. 17, 2008, 7:37 p.m.
From: David Brownell <dbrownell@users.sourceforge.net>

The "m25p80.c extended jedec support" patch introduced a regression
whereby every chip ended up matching the first entry in the list
of chips, since it parenthesized a test incorrectly.

This bug could cause MTD filesystem corruption, and all sorts crazy
stuff since all chips would appear to be small (128KB) Atmel chips
instead of what they really were.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Chen Gong <g.chen@freescale.com>
---
 drivers/mtd/devices/m25p80.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -574,10 +574,11 @@  static struct flash_info *__devinit jede
 	for (tmp = 0, info = m25p_data;
 			tmp < ARRAY_SIZE(m25p_data);
 			tmp++, info++) {
-		if (info->jedec_id == jedec)
+		if (info->jedec_id == jedec) {
 			if (ext_jedec != 0 && info->ext_id != ext_jedec)
 				continue;
 			return info;
+		}
 	}
 	dev_err(&spi->dev, "unrecognized JEDEC id %06x\n", jedec);
 	return NULL;