[S390] Remove error checking from copy_oldmem_page()
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Sun, 30 Oct 2011 14:17:21 +0000 (15:17 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Sun, 30 Oct 2011 14:16:47 +0000 (15:16 +0100)
Currently it can happen that the pre-allocated ELF header contains a wrong
memory map which would result in errors when copying /proc/vmcore.
In order to still get a valid vmcore, we (temporarily) disable the error
checking in copy_oldmem_page(). This will then produce zero pages for those
memory regions.

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/crash_dump.c

index 2a9a3f4055741f82ca907afc36c1ab9bec8a9516..39f8fd4438fc8a3810333a6e659e60dce4ea04aa 100644 (file)
@@ -31,7 +31,6 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
                         size_t csize, unsigned long offset, int userbuf)
 {
        unsigned long src;
-       int rc;
 
        if (!csize)
                return 0;
@@ -43,11 +42,11 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
                 src < OLDMEM_BASE + OLDMEM_SIZE)
                src -= OLDMEM_BASE;
        if (userbuf)
-               rc = copy_to_user_real((void __user *) buf, (void *) src,
-                                      csize);
+               copy_to_user_real((void __force __user *) buf, (void *) src,
+                                 csize);
        else
-               rc = memcpy_real(buf, (void *) src, csize);
-       return rc < 0 ? rc : csize;
+               memcpy_real(buf, (void *) src, csize);
+       return csize;
 }
 
 /*