bcm963xx: fix cfe detection
authorFelix Fietkau <nbd@openwrt.org>
Sun, 18 May 2008 17:32:05 +0000 (17:32 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 18 May 2008 17:32:05 +0000 (17:32 +0000)
The CFE detection failed to account for zero termination.

Signed-off-by: Axel Gembe <ago@bastart.eu.org>
SVN-Revision: 11182

target/linux/brcm63xx/patches-2.6.25/110-bcm963xx_fix_cfe_detection.patch [new file with mode: 0644]

diff --git a/target/linux/brcm63xx/patches-2.6.25/110-bcm963xx_fix_cfe_detection.patch b/target/linux/brcm63xx/patches-2.6.25/110-bcm963xx_fix_cfe_detection.patch
new file mode 100644 (file)
index 0000000..dcc92ee
--- /dev/null
@@ -0,0 +1,46 @@
+From f1a605c36cf1659f5f486ae4135de1e285fdf86c Mon Sep 17 00:00:00 2001
+From: Axel Gembe <ago@bastart.eu.org>
+Date: Sat, 17 May 2008 16:17:22 +0200
+Subject: [PATCH] bcm963xx: fix cfe detection
+
+The CFE detection failed to account for zero termination.
+
+Signed-off-by: Axel Gembe <ago@bastart.eu.org>
+---
+ drivers/mtd/maps/bcm963xx-flash.c |   11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/mtd/maps/bcm963xx-flash.c b/drivers/mtd/maps/bcm963xx-flash.c
+index c4c4526..4da672b 100644
+--- a/drivers/mtd/maps/bcm963xx-flash.c
++++ b/drivers/mtd/maps/bcm963xx-flash.c
+@@ -1,8 +1,7 @@
+ /*
+- * $Id$
+  * Copyright (C) 2006  Florian Fainelli <florian@openwrt.org>
+- *                    Mike Albon <malbon@openwrt.org>
+- * Copyright (C) $Date$  $Author$
++ *                     Mike Albon <malbon@openwrt.org>
++ * Copyright (C) 2008  Axel Gembe <ago@bastart.eu.org>
+  *
+  * This program is free software; you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+@@ -184,11 +183,13 @@ static int bcm963xx_parts_size = sizeof(bcm963xx_parts) / sizeof(bcm963xx_parts[
+ static int bcm963xx_detect_cfe(struct mtd_info *master)
+ {
+        int idoffset = 0x4e0;
+-       static char idstring[8] = "CFE1CFE1";
+-       char buf[8];
++       static char idstring[9] = "CFE1CFE1";
++       char buf[9];
+        int ret;
+        size_t retlen;
++       memset(buf, 0, sizeof(buf));
++
+        ret = master->read(master, idoffset, 8, &retlen, (void *)buf);
+        printk("bcm963xx: Read Signature value of %s\n", buf);
+        return strcmp(idstring,buf);
+-- 
+1.5.5.1
+