Browse Source

post/lib_powerpc/multi.c: fix stack overflow error

The code and comment disagreed: the comment claimed that r6...r31
were copied, and consequently the arrays for "src" and "dst" were
declared with 26 entries, but the actual code ("lmw r5,0(r3)" and
"stmw r5,0(r4)") copied _27_ words (r5 through r31), which resulted
in false "POST cpu Error at multi test" messages.

Fix the comment and the array sizes.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: Kim Phillips <kim.phillips@freescale.com>
Cc: Andy Fleming <afleming@gmail.com>
Acked-by: Anatolij Gustschin <agust@denx.de>
Tested-by: Anatolij Gustschin <agust@denx.de>
imx_v2013.04_3.5.7_1.0.0_alpha
Wolfgang Denk 9 years ago
parent
commit
7ddd4475a8
1 changed files with 4 additions and 4 deletions
  1. +4
    -4
      post/lib_powerpc/multi.c

+ 4
- 4
post/lib_powerpc/multi.c View File

@ -27,9 +27,9 @@
* CPU test
* Load/store multiple word instructions: lmw, stmw
*
* 26 consecutive words are loaded from a source memory buffer
* into GPRs r6 through r31. After that, 26 consecutive words are stored
* from the GPRs r6 through r31 into a target memory buffer. The contents
* 27 consecutive words are loaded from a source memory buffer
* into GPRs r5 through r31. After that, 27 consecutive words are stored
* from the GPRs r5 through r31 into a target memory buffer. The contents
* of the source and target buffers are then compared.
*/
@ -44,7 +44,7 @@ int cpu_post_test_multi(void)
{
int ret = 0;
unsigned int i;
ulong src[26], dst[26];
ulong src[27], dst[27];
int flag = disable_interrupts();
ulong code[] = {


Loading…
Cancel
Save