提交 c36264df 编写于 作者: M Mike Galbraith 提交者: Linus Torvalds

[PATCH] remove the syslog interface when printk is disabled

Attempts to read() from the non-existent dmesg buffer will return zero and
userspace tends to get stuck in a busyloop.

So just remove /dev/kmsg altogether if CONFIG_PRINTK=n.
Signed-off-by: NMike Galbraith <efault@gmx.de>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 44ddc4f5
...@@ -8,8 +8,9 @@ proc-y := nommu.o task_nommu.o ...@@ -8,8 +8,9 @@ proc-y := nommu.o task_nommu.o
proc-$(CONFIG_MMU) := mmu.o task_mmu.o proc-$(CONFIG_MMU) := mmu.o task_mmu.o
proc-y += inode.o root.o base.o generic.o array.o \ proc-y += inode.o root.o base.o generic.o array.o \
kmsg.o proc_tty.o proc_misc.o proc_tty.o proc_misc.o
proc-$(CONFIG_PROC_KCORE) += kcore.o proc-$(CONFIG_PROC_KCORE) += kcore.o
proc-$(CONFIG_PROC_VMCORE) += vmcore.o proc-$(CONFIG_PROC_VMCORE) += vmcore.o
proc-$(CONFIG_PROC_DEVICETREE) += proc_devtree.o proc-$(CONFIG_PROC_DEVICETREE) += proc_devtree.o
proc-$(CONFIG_PRINTK) += kmsg.o
...@@ -696,9 +696,11 @@ void __init proc_misc_init(void) ...@@ -696,9 +696,11 @@ void __init proc_misc_init(void)
proc_symlink("mounts", NULL, "self/mounts"); proc_symlink("mounts", NULL, "self/mounts");
/* And now for trickier ones */ /* And now for trickier ones */
#ifdef CONFIG_PRINTK
entry = create_proc_entry("kmsg", S_IRUSR, &proc_root); entry = create_proc_entry("kmsg", S_IRUSR, &proc_root);
if (entry) if (entry)
entry->proc_fops = &proc_kmsg_operations; entry->proc_fops = &proc_kmsg_operations;
#endif
create_seq_entry("devices", 0, &proc_devinfo_operations); create_seq_entry("devices", 0, &proc_devinfo_operations);
create_seq_entry("cpuinfo", 0, &proc_cpuinfo_operations); create_seq_entry("cpuinfo", 0, &proc_cpuinfo_operations);
#ifdef CONFIG_BLOCK #ifdef CONFIG_BLOCK
......
...@@ -631,12 +631,7 @@ EXPORT_SYMBOL(vprintk); ...@@ -631,12 +631,7 @@ EXPORT_SYMBOL(vprintk);
asmlinkage long sys_syslog(int type, char __user *buf, int len) asmlinkage long sys_syslog(int type, char __user *buf, int len)
{ {
return 0; return -ENOSYS;
}
int do_syslog(int type, char __user *buf, int len)
{
return 0;
} }
static void call_console_drivers(unsigned long start, unsigned long end) static void call_console_drivers(unsigned long start, unsigned long end)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册