diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2013-09-09 09:23:19 +0300 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2013-09-11 07:05:25 +0200 |
commit | 9c7d73ca3f5b2985cb0f498038a746bcc0f2cac7 (patch) | |
tree | 3cac03ff8b7c0e224d5963ac77239538e04ebee9 /src/mainboard/avalue/eax-785e/get_bus_conf.c | |
parent | c984f4f30333cde88fbd14a188c5ce599d0fc77c (diff) | |
download | coreboot-9c7d73ca3f5b2985cb0f498038a746bcc0f2cac7.tar.xz |
AMD sb800 sb900: Fix corruption of a global ramstage variable
A late for loop may reference over the current array allocation
and corrupt an unrelated global variable. As a quick fix bumb the
size of the array allocation uniformly to 6.
Change-Id: Ib067fdf077e091d13e32cc3a8e4a0b713d19bcc2
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/3914
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@google.com>
Reviewed-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
Diffstat (limited to 'src/mainboard/avalue/eax-785e/get_bus_conf.c')
-rw-r--r-- | src/mainboard/avalue/eax-785e/get_bus_conf.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mainboard/avalue/eax-785e/get_bus_conf.c b/src/mainboard/avalue/eax-785e/get_bus_conf.c index c45364af07..9bb26e6d76 100644 --- a/src/mainboard/avalue/eax-785e/get_bus_conf.c +++ b/src/mainboard/avalue/eax-785e/get_bus_conf.c @@ -36,7 +36,7 @@ */ int bus_isa; u8 bus_rs780[11]; -u8 bus_sb800[3]; +u8 bus_sb800[6]; u32 apicid_sb800; /* @@ -87,9 +87,8 @@ void get_bus_conf(void) sbdn_rs780 = sysconf.sbdn; sbdn_sb800 = 0; - for (i = 0; i < 3; i++) { - bus_sb800[i] = 0; - } + memset(bus_sb800, 0, sizeof(bus_sb800)); + for (i = 0; i < ARRAY_SIZE(bus_rs780); i++) { bus_rs780[i] = 0; } |