Patch "s390/vmem: fix identity mapping" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
s390/vmem: fix identity mapping
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
s390-vmem-fix-identity-mapping.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
c34a69059d7876e0793eb410deedfb08ccb22b02Mon Sep 17 00:00:00 2001
From: Heiko Carstens <[email protected]>
Date: Tue, 10 May 2016 12:10:22 +0200
Subject: s390/vmem: fix identity mapping
From: Heiko Carstens <[email protected]>
commit c34a69059d7876e0793eb410deedfb08ccb22b02 upstream.
The identity mapping is suboptimal for the last 2GB frame. The mapping will be established with a mix of 4KB and 1MB mappings instead of a single 2GB mapping.
This happens because of a off-by-one bug introduced with commit 50be63450728 ("s390/mm: Convert bootmem to memblock").
Currently the identity mapping looks like this:
0x0000000080000000-0x0000000180000000 4G PUD RW
0x0000000180000000-0x00000001fff00000 2047M PMD RW
0x00000001fff00000-0x0000000200000000 1M PTE RW
With the bug fixed it looks like this:
0x0000000080000000-0x0000000200000000 6G PUD RW
--- arch/s390/mm/vmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/s390/mm/vmem.c +1 -1
@@ -372,7 +372,7 @@ void __init vmem_map_init(void) ro_end = (unsigned long )&_eshared &PAGE_MASK ;for_each_memblock (memory, reg) { start = reg->base; - end = reg->base + reg->size -1 ; + end = reg->base + reg->size;if (start >= ro_end || end <= ro_start)vmem_add_mem (start, end - start,0 );else if (start >= ro_start && end <= ro_end)
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/s390-vmem-fix-identity-mapping.patch