All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xiaoming Ni <nixiaoming@huawei.com>
To: <mcgrof@kernel.org>, <keescook@chromium.org>,
	<yzaikin@google.com>, <adobriyan@gmail.com>,
	<patrick.bellasi@arm.com>, <mingo@kernel.org>,
	<peterz@infradead.org>, <tglx@linutronix.de>,
	<gregkh@linuxfoundation.org>, <Jisheng.Zhang@synaptics.com>,
	<bigeasy@linutronix.de>, <pmladek@suse.com>,
	<akpm@linux-foundation.org>, <linux-kernel@vger.kernel.org>,
	<linux-fsdevel@vger.kernel.org>
Cc: <nixiaoming@huawei.com>, <wangle6@huawei.com>,
	<alex.huangjianhui@huawei.com>
Subject: [PATCH v3 1/4] sysctl: Add register_sysctl_init() interface
Date: Mon, 18 May 2020 11:59:54 +0800	[thread overview]
Message-ID: <1589774397-42485-2-git-send-email-nixiaoming@huawei.com> (raw)
In-Reply-To: <1589774397-42485-1-git-send-email-nixiaoming@huawei.com>

In order to eliminate the duplicate code for registering the sysctl
interface during the initialization of each feature, add the
register_sysctl_init() interface

Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
---
 include/linux/sysctl.h |  2 ++
 kernel/sysctl.c        | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 02fa844..43f8ef9 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -206,6 +206,8 @@ struct ctl_table_header *register_sysctl_paths(const struct ctl_path *path,
 void unregister_sysctl_table(struct ctl_table_header * table);
 
 extern int sysctl_init(void);
+extern void register_sysctl_init(const char *path, struct ctl_table *table,
+				 const char *table_name);
 
 extern struct ctl_table sysctl_mount_point[];
 
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 8a176d8..c96122f 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1968,6 +1968,25 @@ int __init sysctl_init(void)
 	return 0;
 }
 
+/*
+ * The sysctl interface is used to modify the interface value,
+ * but the feature interface has default values. Even if register_sysctl fails,
+ * the feature body function can also run. At the same time, malloc small
+ * fragment of memory during the system initialization phase, almost does
+ * not fail. Therefore, the function return is designed as void
+ */
+void __init register_sysctl_init(const char *path, struct ctl_table *table,
+				 const char *table_name)
+{
+	struct ctl_table_header *hdr = register_sysctl(path, table);
+
+	if (unlikely(!hdr)) {
+		pr_err("failed when register_sysctl %s to %s\n", table_name, path);
+		return;
+	}
+	kmemleak_not_leak(hdr);
+}
+
 #endif /* CONFIG_SYSCTL */
 
 /*
-- 
1.8.5.6


  reply	other threads:[~2020-05-18  4:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-18  3:59 [PATCH v3 0/4] cleaning up the sysctls table (hung_task watchdog) Xiaoming Ni
2020-05-18  3:59 ` Xiaoming Ni [this message]
2020-05-18  3:59 ` [PATCH v3 2/4] sysctl: Move some boundary constants form sysctl.c to sysctl_vals Xiaoming Ni
2020-05-18  3:59 ` [PATCH v3 3/4] hung_task: Move hung_task sysctl interface to hung_task.c Xiaoming Ni
2020-05-18  3:59 ` [PATCH v3 4/4] watchdog: move watchdog sysctl interface to watchdog.c Xiaoming Ni
2020-05-18 17:16 ` [PATCH v3 0/4] cleaning up the sysctls table (hung_task watchdog) Luis Chamberlain
2020-05-19  1:13   ` Xiaoming Ni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1589774397-42485-2-git-send-email-nixiaoming@huawei.com \
    --to=nixiaoming@huawei.com \
    --cc=Jisheng.Zhang@synaptics.com \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex.huangjianhui@huawei.com \
    --cc=bigeasy@linutronix.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=keescook@chromium.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=mingo@kernel.org \
    --cc=patrick.bellasi@arm.com \
    --cc=peterz@infradead.org \
    --cc=pmladek@suse.com \
    --cc=tglx@linutronix.de \
    --cc=wangle6@huawei.com \
    --cc=yzaikin@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.