summaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/patches-2.6.25/110-bcm963xx_fix_cfe_detection.patch
blob: 3cf46026661cc3316e857d2aa088f631abb41e0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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(-)

--- 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_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);