summaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx/patches-2.6.35/015-MIPS-BCM47xx-nvram_getenv-fix-return-value.patch
blob: cb2f4e0973340bc9f40a9bc9a74203ca970bb271 (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
42
43
44
45
46
47
From ff7295cc37b1e4b31aed9f071374f43aa128329b Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Fri, 30 Jul 2010 17:45:20 +0200
Subject: [PATCH 5/6] MIPS: BCM47xx: nvram_getenv fix return value.

nvram_getenv should behave like cfe_getenv. For now it is used like
cfe_getenv. cfe_getenv returns 0 on success and -1 in case of an error.
Change nvram_getenv to do the same.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 arch/mips/bcm47xx/nvram.c                  |    4 ++--
 arch/mips/include/asm/mach-bcm47xx/nvram.h |    3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

--- a/arch/mips/bcm47xx/nvram.c
+++ b/arch/mips/bcm47xx/nvram.c
@@ -69,7 +69,7 @@ int nvram_getenv(char *name, char *val, 
 	char *var, *value, *end, *eq;
 
 	if (!name)
-		return 1;
+		return NVRAM_ERR_INV_PARAM;
 
 	if (!nvram_buf[0])
 		early_nvram_init();
@@ -89,6 +89,6 @@ int nvram_getenv(char *name, char *val, 
 			return 0;
 		}
 	}
-	return 1;
+	return NVRAM_ERR_ENVNOTFOUND;
 }
 EXPORT_SYMBOL(nvram_getenv);
--- a/arch/mips/include/asm/mach-bcm47xx/nvram.h
+++ b/arch/mips/include/asm/mach-bcm47xx/nvram.h
@@ -31,6 +31,10 @@ struct nvram_header {
 #define NVRAM_MAX_VALUE_LEN 255
 #define NVRAM_MAX_PARAM_LEN 64
 
+// TODO: replace by old values. This chaueses that the system will not try to look into the cfe.
+#define NVRAM_ERR_INV_PARAM	1 // -8
+#define NVRAM_ERR_ENVNOTFOUND	1 // -9
+
 extern int nvram_getenv(char *name, char *val, size_t val_len);
 
 #endif