Commit a11edb59 authored by Zhang Yanfei's avatar Zhang Yanfei Committed by Linus Torvalds

/dev/oldmem: Remove the interface

/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: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: default avatarZhang 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 266b7a02
...@@ -100,8 +100,7 @@ Your cooperation is appreciated. ...@@ -100,8 +100,7 @@ Your cooperation is appreciated.
10 = /dev/aio Asynchronous I/O notification interface 10 = /dev/aio Asynchronous I/O notification interface
11 = /dev/kmsg Writes to this come out as printk's, reads 11 = /dev/kmsg Writes to this come out as printk's, reads
export the buffered printk records. export the buffered printk records.
12 = /dev/oldmem Used by crashdump kernels to access 12 = /dev/oldmem OBSOLETE - replaced by /proc/vmcore
the memory of the kernel that crashed.
1 block RAM disk 1 block RAM disk
0 = /dev/ram0 First RAM disk 0 = /dev/ram0 First RAM disk
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/highmem.h> #include <linux/highmem.h>
#include <linux/crash_dump.h>
#include <linux/backing-dev.h> #include <linux/backing-dev.h>
#include <linux/bootmem.h> #include <linux/bootmem.h>
#include <linux/splice.h> #include <linux/splice.h>
...@@ -357,40 +356,6 @@ static int mmap_kmem(struct file *file, struct vm_area_struct *vma) ...@@ -357,40 +356,6 @@ static int mmap_kmem(struct file *file, struct vm_area_struct *vma)
} }
#endif #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 #ifdef CONFIG_DEVKMEM
/* /*
* This function reads the *virtual* memory as seen by the kernel. * 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) ...@@ -772,7 +737,6 @@ static int open_port(struct inode *inode, struct file *filp)
#define aio_write_zero aio_write_null #define aio_write_zero aio_write_null
#define open_mem open_port #define open_mem open_port
#define open_kmem open_mem #define open_kmem open_mem
#define open_oldmem open_mem
static const struct file_operations mem_fops = { static const struct file_operations mem_fops = {
.llseek = memory_lseek, .llseek = memory_lseek,
...@@ -837,14 +801,6 @@ static const struct file_operations full_fops = { ...@@ -837,14 +801,6 @@ static const struct file_operations full_fops = {
.write = write_full, .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 { static const struct memdev {
const char *name; const char *name;
umode_t mode; umode_t mode;
...@@ -866,9 +822,6 @@ static const struct memdev { ...@@ -866,9 +822,6 @@ static const struct memdev {
#ifdef CONFIG_PRINTK #ifdef CONFIG_PRINTK
[11] = { "kmsg", 0644, &kmsg_fops, NULL }, [11] = { "kmsg", 0644, &kmsg_fops, NULL },
#endif #endif
#ifdef CONFIG_CRASH_DUMP
[12] = { "oldmem", 0, &oldmem_fops, NULL },
#endif
}; };
static int memory_open(struct inode *inode, struct file *filp) static int memory_open(struct inode *inode, struct file *filp)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment