Commit:     a2fd64d6aaf498756f700eb1d07818efee046733
Parent:     d09293aee9fd0f9f291fa3a0e4ca5012f514d083
Author:     Christian Borntraeger <[EMAIL PROTECTED]>
AuthorDate: Sat Jan 26 14:11:16 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Sat Jan 26 14:11:23 2008 +0100

    [S390] vmemmap: allocate struct pages before 1:1 mapping
    We have seen an oops in an OOM situation, where show_mem tried to
    access the struct page of a dcss segment. The vmemmap code has
    already created the 1:1 mapping but failed allocating the struct
    pages. In the OOM case, show_mem now walks the memory. It uses
    pfn_valid to detect if it may access the struct page. In the case
    described above, the mapping was established and pfn_valid returned
    true. As the struct pages were not allocated, the kernel oopsed.
    We have to ensure that we have created the struct pages, before we
    add a mapping pointing to the pages.
    Signed-off-by: Christian Borntraeger <[EMAIL PROTECTED]>
    Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
 arch/s390/mm/vmem.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c
index 1fc9989..79d13a1 100644
--- a/arch/s390/mm/vmem.c
+++ b/arch/s390/mm/vmem.c
@@ -236,10 +236,10 @@ static int vmem_add_mem(unsigned long start, unsigned 
long size)
        int ret;
-       ret = vmem_add_range(start, size);
+       ret = vmem_add_mem_map(start, size);
        if (ret)
                return ret;
-       return vmem_add_mem_map(start, size);
+       return vmem_add_range(start, size);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to