s390/setup: fix DMA_API_DEBUG warnings

Addresses from the usable space in [_ehead, _stext] lead to false
positives in DMA_API_DEBUG code (which will complain when an address
is in [_text, _etext]).

Avoid these warnings by not using that memory in case of
CONFIG_DMA_API_DEBUG=y.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Sebastian Ott 2015-06-16 14:03:37 +02:00 committed by Martin Schwidefsky
parent d9a5c0c65b
commit 0c36b8ac70

View File

@ -640,19 +640,24 @@ static void __init check_initrd(void)
} }
/* /*
* Reserve all kernel text * Reserve memory used for lowcore/command line/kernel image.
*/ */
static void __init reserve_kernel(void) static void __init reserve_kernel(void)
{ {
unsigned long start_pfn; unsigned long start_pfn = PFN_UP(__pa(&_end));
start_pfn = PFN_UP(__pa(&_end));
#ifdef CONFIG_DMA_API_DEBUG
/* /*
* Reserve memory used for lowcore/command line/kernel image. * DMA_API_DEBUG code stumbles over addresses from the
* range [_ehead, _stext]. Mark the memory as reserved
* so it is not used for CONFIG_DMA_API_DEBUG=y.
*/ */
memblock_reserve(0, PFN_PHYS(start_pfn));
#else
memblock_reserve(0, (unsigned long)_ehead); memblock_reserve(0, (unsigned long)_ehead);
memblock_reserve((unsigned long)_stext, PFN_PHYS(start_pfn) memblock_reserve((unsigned long)_stext, PFN_PHYS(start_pfn)
- (unsigned long)_stext); - (unsigned long)_stext);
#endif
} }
static void __init reserve_elfcorehdr(void) static void __init reserve_elfcorehdr(void)