Skip to contentSkip to conversation

Patch "s390/vmem: fix identity mapping" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Jun 15, 2017

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

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 c34a69059d7876e0793eb410deedfb08ccb22b02 Mon 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

Fixes 50be63450728 ("s390/mm: Convert bootmem to memblock")
Cc Jean Delvare <[email protected]>
---
 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