Commit ead7a22e authored by Heiko Carstens's avatar Heiko Carstens

s390: avoid undefined behaviour

At a couple of places smatch emits warnings like this:

    arch/s390/mm/vmem.c:409 vmem_map_init() warn:
        right shifting more than type allows

In fact shifting a signed type right is undefined. Avoid this and add
an unsigned long cast. The shifted values are always positive.
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
parent 8bc1e4ec
...@@ -144,8 +144,8 @@ void __init mem_init(void) ...@@ -144,8 +144,8 @@ void __init mem_init(void)
void free_initmem(void) void free_initmem(void)
{ {
__set_memory((unsigned long) _sinittext, __set_memory((unsigned long)_sinittext,
(_einittext - _sinittext) >> PAGE_SHIFT, (unsigned long)(_einittext - _sinittext) >> PAGE_SHIFT,
SET_MEMORY_RW | SET_MEMORY_NX); SET_MEMORY_RW | SET_MEMORY_NX);
free_initmem_default(POISON_FREE_INITMEM); free_initmem_default(POISON_FREE_INITMEM);
} }
......
...@@ -402,17 +402,17 @@ void __init vmem_map_init(void) ...@@ -402,17 +402,17 @@ void __init vmem_map_init(void)
for_each_memblock(memory, reg) for_each_memblock(memory, reg)
vmem_add_mem(reg->base, reg->size); vmem_add_mem(reg->base, reg->size);
__set_memory((unsigned long) _stext, __set_memory((unsigned long)_stext,
(_etext - _stext) >> PAGE_SHIFT, (unsigned long)(_etext - _stext) >> PAGE_SHIFT,
SET_MEMORY_RO | SET_MEMORY_X); SET_MEMORY_RO | SET_MEMORY_X);
__set_memory((unsigned long) _etext, __set_memory((unsigned long)_etext,
(__end_rodata - _etext) >> PAGE_SHIFT, (unsigned long)(__end_rodata - _etext) >> PAGE_SHIFT,
SET_MEMORY_RO); SET_MEMORY_RO);
__set_memory((unsigned long) _sinittext, __set_memory((unsigned long)_sinittext,
(_einittext - _sinittext) >> PAGE_SHIFT, (unsigned long)(_einittext - _sinittext) >> PAGE_SHIFT,
SET_MEMORY_RO | SET_MEMORY_X); SET_MEMORY_RO | SET_MEMORY_X);
pr_info("Write protected kernel read-only data: %luk\n", pr_info("Write protected kernel read-only data: %luk\n",
(__end_rodata - _stext) >> 10); (unsigned long)(__end_rodata - _stext) >> 10);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment