| From ea208f646c8fb91c39c852e952fc911e1ad045ab Mon Sep 17 00:00:00 2001 |
| From: Linus Walleij <linus.walleij@stericsson.com> |
| Date: Wed, 26 May 2010 07:37:57 +0100 |
| Subject: ARM: 6144/1: TCM memory bug freeing bug |
| |
| From: Linus Walleij <linus.walleij@stericsson.com> |
| |
| commit ea208f646c8fb91c39c852e952fc911e1ad045ab upstream. |
| |
| This fixes a bug in mm/init.c when freeing the TCM compile memory, |
| this was being referred to as a char * which is incorrect: this |
| will dereference the pointer and feed in the value at the location |
| instead of the address to it. Change it to a plain char and use |
| &(char) to reference it. |
| |
| Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> |
| Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/arm/mm/init.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/arch/arm/mm/init.c |
| +++ b/arch/arm/mm/init.c |
| @@ -632,10 +632,10 @@ void __init mem_init(void) |
| void free_initmem(void) |
| { |
| #ifdef CONFIG_HAVE_TCM |
| - extern char *__tcm_start, *__tcm_end; |
| + extern char __tcm_start, __tcm_end; |
| |
| - totalram_pages += free_area(__phys_to_pfn(__pa(__tcm_start)), |
| - __phys_to_pfn(__pa(__tcm_end)), |
| + totalram_pages += free_area(__phys_to_pfn(__pa(&__tcm_start)), |
| + __phys_to_pfn(__pa(&__tcm_end)), |
| "TCM link"); |
| #endif |
| |