From: Marek Szyprowski Date: Wed, 25 Apr 2018 09:54:22 +0000 (+0200) Subject: Revert "kmsg: add additional buffers support to memory class" X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dae3e63f8b752144320c08d98b8457f100f70bcc;p=platform%2Fkernel%2Flinux-exynos.git Revert "kmsg: add additional buffers support to memory class" This reverts commit 62bbd37627b8fa194ae668b352d40c090d9cc6e0. --- diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 7d462343a4b0..6b1721f978c2 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -799,6 +799,9 @@ static const struct memdev { [7] = { "full", 0666, &full_fops, 0 }, [8] = { "random", 0666, &random_fops, 0 }, [9] = { "urandom", 0666, &urandom_fops, 0 }, +#ifdef CONFIG_PRINTK + [11] = { "kmsg", 0644, &kmsg_fops, 0 }, +#endif }; static int memory_open(struct inode *inode, struct file *filp) @@ -808,7 +811,7 @@ static int memory_open(struct inode *inode, struct file *filp) minor = iminor(inode); if (minor >= ARRAY_SIZE(devlist)) - return kmsg_memory_open(inode, filp); + return -ENXIO; dev = &devlist[minor]; if (!dev->fops) @@ -830,28 +833,16 @@ static const struct file_operations memory_fops = { static char *mem_devnode(struct device *dev, umode_t *mode) { - int minor = MINOR(dev->devt); - - if (!mode) - goto out; - - if (minor >= ARRAY_SIZE(devlist)) { - kmsg_mode(minor, mode); - goto out; - } - - if (devlist[minor].mode) - *mode = devlist[minor].mode; -out: + if (mode && devlist[MINOR(dev->devt)].mode) + *mode = devlist[MINOR(dev->devt)].mode; return NULL; } -struct class *mem_class; +static struct class *mem_class; static int __init chr_dev_init(void) { int minor; - struct device *kmsg; if (register_chrdev(MEM_MAJOR, "mem", &memory_fops)) printk("unable to get major %d for memory devs\n", MEM_MAJOR); @@ -875,10 +866,6 @@ static int __init chr_dev_init(void) NULL, devlist[minor].name); } - kmsg = init_kmsg(KMSG_MINOR, 0644); - if (IS_ERR(kmsg)) - return PTR_ERR(kmsg); - return tty_init(); } diff --git a/include/linux/printk.h b/include/linux/printk.h index 4147304f394b..58b1fec40d37 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -417,40 +417,8 @@ do { \ no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) #endif -struct file; -struct inode; - -#ifdef CONFIG_PRINTK - -extern struct class *mem_class; - -#define KMSG_MINOR 11 - extern const struct file_operations kmsg_fops; -extern struct device *init_kmsg(int minor, umode_t mode); -extern int kmsg_memory_open(struct inode *inode, struct file *filp); -extern int kmsg_mode(int minor, umode_t *mode); - -#else - -static inline struct device *init_kmsg(int minor, umode_t mode) -{ - return NULL; -} - -static inline int kmsg_memory_open(struct inode *inode, struct file *filp) -{ - return -ENXIO; -} - -static inline int kmsg_mode(int minor, umode_t *mode) -{ - return -ENXIO; -} - -#endif - enum { DUMP_PREFIX_NONE, DUMP_PREFIX_ADDRESS, diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 94ae006569fb..ab82f563a0ea 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -46,8 +46,6 @@ #include #include #include -#include -#include #include @@ -243,7 +241,6 @@ struct log_buffer { u64 next_seq; #ifdef CONFIG_PRINTK u32 next_idx; /* index of the next record to store */ - int mode; /* mode of device */ int minor; /* minor representing buffer device */ #endif }; @@ -286,7 +283,6 @@ static struct log_buffer log_buf = { .first_idx = 0, .next_seq = 0, .next_idx = 0, - .mode = 0, .minor = 0, }; @@ -1190,45 +1186,6 @@ const struct file_operations kmsg_fops = { .release = devkmsg_release, }; -/* Should be used for device registration */ -struct device *init_kmsg(int minor, umode_t mode) -{ - log_buf.minor = minor; - log_buf.mode = mode; - return device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor), - NULL, "kmsg"); -} - -int kmsg_memory_open(struct inode *inode, struct file *filp) -{ - filp->f_op = &kmsg_fops; - - return kmsg_fops.open(inode, filp); -} - -int kmsg_mode(int minor, umode_t *mode) -{ - int ret = -ENXIO; - struct log_buffer *log_b; - - if (minor == log_buf.minor) { - *mode = log_buf.mode; - return 0; - } - - rcu_read_lock(); - list_for_each_entry_rcu(log_b, &log_buf.list, list) { - if (log_b->minor == minor) { - *mode = log_b->mode; - ret = 0; - break; - } - } - rcu_read_unlock(); - - return ret; -} - #ifdef CONFIG_KEXEC /* * This appends the listed symbols to /proc/vmcore