Commit 35834ca1 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by Linus Torvalds

sysctl: simplify the pty sysctl logic

Instead of having a bunch of ifdefs in sysctl.c move all of the pty sysctl
logic into drivers/char/pty.c

As well as cleaning up the logic this prevents sysctl_check_table from
complaining that the root table has a NULL data pointer on something with
generic methods.
Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 25398a15
...@@ -318,7 +318,7 @@ int pty_limit = NR_UNIX98_PTY_DEFAULT; ...@@ -318,7 +318,7 @@ int pty_limit = NR_UNIX98_PTY_DEFAULT;
static int pty_limit_min = 0; static int pty_limit_min = 0;
static int pty_limit_max = NR_UNIX98_PTY_MAX; static int pty_limit_max = NR_UNIX98_PTY_MAX;
ctl_table pty_table[] = { static struct ctl_table pty_table[] = {
{ {
.ctl_name = PTY_MAX, .ctl_name = PTY_MAX,
.procname = "max", .procname = "max",
...@@ -340,6 +340,27 @@ ctl_table pty_table[] = { ...@@ -340,6 +340,27 @@ ctl_table pty_table[] = {
} }
}; };
static struct ctl_table pty_kern_table[] = {
{
.ctl_name = KERN_PTY,
.procname = "pty",
.mode = 0555,
.child = pty_table,
},
{}
};
static struct ctl_table pty_root_table[] = {
{
.ctl_name = CTL_KERN,
.procname = "kernel",
.mode = 0555,
.child = pty_kern_table,
},
{}
};
static int pty_unix98_ioctl(struct tty_struct *tty, struct file *file, static int pty_unix98_ioctl(struct tty_struct *tty, struct file *file,
unsigned int cmd, unsigned long arg) unsigned int cmd, unsigned long arg)
{ {
...@@ -404,6 +425,7 @@ static void __init unix98_pty_init(void) ...@@ -404,6 +425,7 @@ static void __init unix98_pty_init(void)
panic("Couldn't register Unix98 pts driver"); panic("Couldn't register Unix98 pts driver");
pty_table[1].data = &ptm_driver->refcount; pty_table[1].data = &ptm_driver->refcount;
register_sysctl_table(pty_root_table);
} }
#else #else
static inline void unix98_pty_init(void) { } static inline void unix98_pty_init(void) { }
......
...@@ -163,9 +163,6 @@ static struct ctl_table fs_table[]; ...@@ -163,9 +163,6 @@ static struct ctl_table fs_table[];
static struct ctl_table debug_table[]; static struct ctl_table debug_table[];
static struct ctl_table dev_table[]; static struct ctl_table dev_table[];
extern struct ctl_table random_table[]; extern struct ctl_table random_table[];
#ifdef CONFIG_UNIX98_PTYS
extern struct ctl_table pty_table[];
#endif
#ifdef CONFIG_INOTIFY_USER #ifdef CONFIG_INOTIFY_USER
extern struct ctl_table inotify_table[]; extern struct ctl_table inotify_table[];
#endif #endif
...@@ -534,14 +531,6 @@ static struct ctl_table kern_table[] = { ...@@ -534,14 +531,6 @@ static struct ctl_table kern_table[] = {
.mode = 0555, .mode = 0555,
.child = random_table, .child = random_table,
}, },
#ifdef CONFIG_UNIX98_PTYS
{
.ctl_name = KERN_PTY,
.procname = "pty",
.mode = 0555,
.child = pty_table,
},
#endif
{ {
.ctl_name = KERN_OVERFLOWUID, .ctl_name = KERN_OVERFLOWUID,
.procname = "overflowuid", .procname = "overflowuid",
......
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