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 коммит произвёл Martin Schwidefsky
Родитель d9a5c0c65b
Коммит 0c36b8ac70
1 изменённых файлов: 9 добавлений и 4 удалений

Просмотреть файл

@ -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)
{
unsigned long start_pfn;
start_pfn = PFN_UP(__pa(&_end));
unsigned long 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((unsigned long)_stext, PFN_PHYS(start_pfn)
- (unsigned long)_stext);
#endif
}
static void __init reserve_elfcorehdr(void)