Преглед изворни кода

[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: Mike Galbraith <efault@gmx.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mike Galbraith пре 18 година
родитељ
комит
c36264dfb2
3 измењених фајлова са 5 додато и 7 уклоњено
  1. 2 1
      fs/proc/Makefile
  2. 2 0
      fs/proc/proc_misc.c
  3. 1 6
      kernel/printk.c

+ 2 - 1
fs/proc/Makefile

@@ -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

+ 2 - 0
fs/proc/proc_misc.c

@@ -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

+ 1 - 6
kernel/printk.c

@@ -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;
-}
-
-int do_syslog(int type, char __user *buf, int len)
-{
-	return 0;
+	return -ENOSYS;
 }
 }
 
 
 static void call_console_drivers(unsigned long start, unsigned long end)
 static void call_console_drivers(unsigned long start, unsigned long end)