mm/memblock.c: avoid abuse of RED_INACTIVE
RED_INACTIVE is a slab thing, and reusing it for memblock was inappropriate, because memblock is dealing with phys_addr_t's which have a Kconfigurable sizeof(). Create a new poison type for this application. Fixes the sparse warning warning: cast truncates bits from constant value (9f911029d74e35b becomes 9d74e35b) Reported-by: H Hartley Sweeten <hartleys@visionengravers.com> Tested-by: H Hartley Sweeten <hartleys@visionengravers.com> Acked-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
be8f684d73
Коммит
c9d8c3d089
|
@ -40,6 +40,12 @@
|
|||
#define RED_INACTIVE 0x09F911029D74E35BULL /* when obj is inactive */
|
||||
#define RED_ACTIVE 0xD84156C5635688C0ULL /* when obj is active */
|
||||
|
||||
#ifdef CONFIG_PHYS_ADDR_T_64BIT
|
||||
#define MEMBLOCK_INACTIVE 0x3a84fb0144c9e71bULL
|
||||
#else
|
||||
#define MEMBLOCK_INACTIVE 0x44c9e71bUL
|
||||
#endif
|
||||
|
||||
#define SLUB_RED_INACTIVE 0xbb
|
||||
#define SLUB_RED_ACTIVE 0xcc
|
||||
|
||||
|
|
|
@ -758,9 +758,9 @@ void __init memblock_analyze(void)
|
|||
|
||||
/* Check marker in the unused last array entry */
|
||||
WARN_ON(memblock_memory_init_regions[INIT_MEMBLOCK_REGIONS].base
|
||||
!= (phys_addr_t)RED_INACTIVE);
|
||||
!= MEMBLOCK_INACTIVE);
|
||||
WARN_ON(memblock_reserved_init_regions[INIT_MEMBLOCK_REGIONS].base
|
||||
!= (phys_addr_t)RED_INACTIVE);
|
||||
!= MEMBLOCK_INACTIVE);
|
||||
|
||||
memblock.memory_size = 0;
|
||||
|
||||
|
@ -786,8 +786,8 @@ void __init memblock_init(void)
|
|||
memblock.reserved.max = INIT_MEMBLOCK_REGIONS;
|
||||
|
||||
/* Write a marker in the unused last array entry */
|
||||
memblock.memory.regions[INIT_MEMBLOCK_REGIONS].base = (phys_addr_t)RED_INACTIVE;
|
||||
memblock.reserved.regions[INIT_MEMBLOCK_REGIONS].base = (phys_addr_t)RED_INACTIVE;
|
||||
memblock.memory.regions[INIT_MEMBLOCK_REGIONS].base = MEMBLOCK_INACTIVE;
|
||||
memblock.reserved.regions[INIT_MEMBLOCK_REGIONS].base = MEMBLOCK_INACTIVE;
|
||||
|
||||
/* Create a dummy zero size MEMBLOCK which will get coalesced away later.
|
||||
* This simplifies the memblock_add() code below...
|
||||
|
|
Загрузка…
Ссылка в новой задаче