/dev/oldmem: Remove the interface
authorZhang Yanfei <zhangyanfei@cn.fujitsu.com>
Wed, 3 Jul 2013 22:08:36 +0000 (15:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 Jul 2013 23:08:03 +0000 (16:08 -0700)
/dev/oldmem provides the interface for us to access the "old memory" in
the dump-capture kernel.  Unfortunately, no one actually uses this
interface.

And this interface could actually cause some real problems if used on ia64
where the cached/uncached accesses are mixed.  See the discussion from the
link: https://lkml.org/lkml/2013/4/12/386.
So Eric suggested that we should remove /dev/oldmem as an unused piece of
code.

[akpm@linux-foundation.org: mention /dev/oldmem obsolescence in devices.txt]
Suggested-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Dave Hansen <dave@sr71.net>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Matt Fleming <matt.fleming@intel.com>
Cc: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Tony Luck <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Documentation/devices.txt
drivers/char/mem.c

index b9015912bca6bb6ea7a73ef4dc2a94f189346385..23721d3be3e6160e2057b0b11ef002e2828f458f 100644 (file)
@@ -100,8 +100,7 @@ Your cooperation is appreciated.
                 10 = /dev/aio          Asynchronous I/O notification interface
                 11 = /dev/kmsg         Writes to this come out as printk's, reads
                                        export the buffered printk records.
-                12 = /dev/oldmem       Used by crashdump kernels to access
-                                       the memory of the kernel that crashed.
+                12 = /dev/oldmem       OBSOLETE - replaced by /proc/vmcore
 
   1 block      RAM disk
                  0 = /dev/ram0         First RAM disk
index 2ca6d7844ad91d102c803116cfcfd0082d6e6518..f895a8c8a244b54c02eb8b59b0eba8d42734a011 100644 (file)
@@ -21,7 +21,6 @@
 #include <linux/ptrace.h>
 #include <linux/device.h>
 #include <linux/highmem.h>
-#include <linux/crash_dump.h>
 #include <linux/backing-dev.h>
 #include <linux/bootmem.h>
 #include <linux/splice.h>
@@ -357,40 +356,6 @@ static int mmap_kmem(struct file *file, struct vm_area_struct *vma)
 }
 #endif
 
-#ifdef CONFIG_CRASH_DUMP
-/*
- * Read memory corresponding to the old kernel.
- */
-static ssize_t read_oldmem(struct file *file, char __user *buf,
-                               size_t count, loff_t *ppos)
-{
-       unsigned long pfn, offset;
-       size_t read = 0, csize;
-       int rc = 0;
-
-       while (count) {
-               pfn = *ppos / PAGE_SIZE;
-               if (pfn > saved_max_pfn)
-                       return read;
-
-               offset = (unsigned long)(*ppos % PAGE_SIZE);
-               if (count > PAGE_SIZE - offset)
-                       csize = PAGE_SIZE - offset;
-               else
-                       csize = count;
-
-               rc = copy_oldmem_page(pfn, buf, csize, offset, 1);
-               if (rc < 0)
-                       return rc;
-               buf += csize;
-               *ppos += csize;
-               read += csize;
-               count -= csize;
-       }
-       return read;
-}
-#endif
-
 #ifdef CONFIG_DEVKMEM
 /*
  * This function reads the *virtual* memory as seen by the kernel.
@@ -772,7 +737,6 @@ static int open_port(struct inode *inode, struct file *filp)
 #define aio_write_zero aio_write_null
 #define open_mem       open_port
 #define open_kmem      open_mem
-#define open_oldmem    open_mem
 
 static const struct file_operations mem_fops = {
        .llseek         = memory_lseek,
@@ -837,14 +801,6 @@ static const struct file_operations full_fops = {
        .write          = write_full,
 };
 
-#ifdef CONFIG_CRASH_DUMP
-static const struct file_operations oldmem_fops = {
-       .read   = read_oldmem,
-       .open   = open_oldmem,
-       .llseek = default_llseek,
-};
-#endif
-
 static const struct memdev {
        const char *name;
        umode_t mode;
@@ -866,9 +822,6 @@ static const struct memdev {
 #ifdef CONFIG_PRINTK
        [11] = { "kmsg", 0644, &kmsg_fops, NULL },
 #endif
-#ifdef CONFIG_CRASH_DUMP
-       [12] = { "oldmem", 0, &oldmem_fops, NULL },
-#endif
 };
 
 static int memory_open(struct inode *inode, struct file *filp)