Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

decompress: fix new decompressor for PIC

The ARM kernel decompressor wants to be able to relocate r/w data
independently from the rest of the image, and we do this by ensuring that
r/w data has global visibility. Define STATIC_RW_DATA to be empty to
achieve this.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Alain Knaff <alain@knaff.lu>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Russell King and committed by
Linus Torvalds
5ceaa2f3 8c1840f1

+12 -2
+12 -2
include/linux/decompress/mm.h
··· 14 14 15 15 /* Code active when included from pre-boot environment: */ 16 16 17 + /* 18 + * Some architectures want to ensure there is no local data in their 19 + * pre-boot environment, so that data can arbitarily relocated (via 20 + * GOT references). This is achieved by defining STATIC_RW_DATA to 21 + * be null. 22 + */ 23 + #ifndef STATIC_RW_DATA 24 + #define STATIC_RW_DATA static 25 + #endif 26 + 17 27 /* A trivial malloc implementation, adapted from 18 28 * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994 19 29 */ 20 - static unsigned long malloc_ptr; 21 - static int malloc_count; 30 + STATIC_RW_DATA unsigned long malloc_ptr; 31 + STATIC_RW_DATA int malloc_count; 22 32 23 33 static void *malloc(int size) 24 34 {