Commit b1f2aff8 authored by Luis Chamberlain's avatar Luis Chamberlain Committed by Linus Torvalds

sysctl: share unsigned long const values

Provide a way to share unsigned long values.  This will allow others to
not have to re-invent these values.

Link: https://lkml.kernel.org/r/20211124231435.1445213-9-mcgrof@kernel.orgSigned-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Amir Goldstein <amir73il@gmail.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Antti Palosaari <crope@iki.fi>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Cc: Clemens Ladisch <clemens@ladisch.de>
Cc: David Airlie <airlied@linux.ie>
Cc: Douglas Gilbert <dgilbert@interlog.com>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Iurii Zaikin <yzaikin@google.com>
Cc: James E.J. Bottomley <jejb@linux.ibm.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: John Ogness <john.ogness@linutronix.de>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
Cc: Julia Lawall <julia.lawall@inria.fr>
Cc: Kees Cook <keescook@chromium.org>
Cc: Lukas Middendorf <kernel@tuxforce.de>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Phillip Potter <phil@philpotter.co.uk>
Cc: Qing Wang <wangqing@vivo.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Stephen Kitt <steve@sk2.org>
Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Xiaoming Ni <nixiaoming@huawei.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 0df8bdd5
...@@ -29,6 +29,9 @@ static const struct inode_operations proc_sys_dir_operations; ...@@ -29,6 +29,9 @@ static const struct inode_operations proc_sys_dir_operations;
const int sysctl_vals[] = { -1, 0, 1, 2, 4, 100, 200, 1000, 3000, INT_MAX }; const int sysctl_vals[] = { -1, 0, 1, 2, 4, 100, 200, 1000, 3000, INT_MAX };
EXPORT_SYMBOL(sysctl_vals); EXPORT_SYMBOL(sysctl_vals);
const unsigned long sysctl_long_vals[] = { 0, 1, LONG_MAX };
EXPORT_SYMBOL_GPL(sysctl_long_vals);
/* Support for permanently empty directories */ /* Support for permanently empty directories */
struct ctl_table sysctl_mount_point[] = { struct ctl_table sysctl_mount_point[] = {
......
...@@ -51,6 +51,12 @@ struct ctl_dir; ...@@ -51,6 +51,12 @@ struct ctl_dir;
extern const int sysctl_vals[]; extern const int sysctl_vals[];
#define SYSCTL_LONG_ZERO ((void *)&sysctl_long_vals[0])
#define SYSCTL_LONG_ONE ((void *)&sysctl_long_vals[1])
#define SYSCTL_LONG_MAX ((void *)&sysctl_long_vals[2])
extern const unsigned long sysctl_long_vals[];
typedef int proc_handler(struct ctl_table *ctl, int write, void *buffer, typedef int proc_handler(struct ctl_table *ctl, int write, void *buffer,
size_t *lenp, loff_t *ppos); size_t *lenp, loff_t *ppos);
......
...@@ -100,9 +100,6 @@ ...@@ -100,9 +100,6 @@
/* Constants used for minimum and maximum */ /* Constants used for minimum and maximum */
static const unsigned long zero_ul;
static const unsigned long one_ul = 1;
static const unsigned long long_max = LONG_MAX;
#ifdef CONFIG_PRINTK #ifdef CONFIG_PRINTK
static const int ten_thousand = 10000; static const int ten_thousand = 10000;
#endif #endif
...@@ -2513,7 +2510,7 @@ static struct ctl_table vm_table[] = { ...@@ -2513,7 +2510,7 @@ static struct ctl_table vm_table[] = {
.maxlen = sizeof(dirty_background_bytes), .maxlen = sizeof(dirty_background_bytes),
.mode = 0644, .mode = 0644,
.proc_handler = dirty_background_bytes_handler, .proc_handler = dirty_background_bytes_handler,
.extra1 = (void *)&one_ul, .extra1 = SYSCTL_LONG_ONE,
}, },
{ {
.procname = "dirty_ratio", .procname = "dirty_ratio",
...@@ -2931,8 +2928,8 @@ static struct ctl_table fs_table[] = { ...@@ -2931,8 +2928,8 @@ static struct ctl_table fs_table[] = {
.maxlen = sizeof(files_stat.max_files), .maxlen = sizeof(files_stat.max_files),
.mode = 0644, .mode = 0644,
.proc_handler = proc_doulongvec_minmax, .proc_handler = proc_doulongvec_minmax,
.extra1 = (void *)&zero_ul, .extra1 = SYSCTL_LONG_ZERO,
.extra2 = (void *)&long_max, .extra2 = SYSCTL_LONG_MAX,
}, },
{ {
.procname = "nr_open", .procname = "nr_open",
......
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