s390/mm: fix mapping of read-only kernel text section
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Thu, 4 Oct 2012 15:02:02 +0000 (17:02 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 9 Oct 2012 12:16:59 +0000 (14:16 +0200)
Within the identity mapping the kernel text section is mapped read-only.
However when mapping the first and last page of the text section we must
round upwards and downwards respectively, if only parts of a page belong
to the section.
Otherwise potential rw data can be mapped read-only. So the rounding must
be done just the other way we have it right now.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/mm/vmem.c

index 5b70393..d402b19 100644 (file)
@@ -331,8 +331,8 @@ void __init vmem_map_init(void)
        unsigned long start, end;
        int i;
 
-       ro_start = ((unsigned long)&_stext) & PAGE_MASK;
-       ro_end = PFN_ALIGN((unsigned long)&_eshared);
+       ro_start = PFN_ALIGN((unsigned long)&_stext);
+       ro_end = (unsigned long)&_eshared & PAGE_MASK;
        for (i = 0; i < MEMORY_CHUNKS && memory_chunk[i].size > 0; i++) {
                if (memory_chunk[i].type == CHUNK_CRASHK ||
                    memory_chunk[i].type == CHUNK_OLDMEM)