diff mbox series

[bpf] bpf, sysctl: let bpf_stats_handler take a kernel pointer buffer

Message ID 20200824142047.22043-1-tklauser@distanz.ch (mailing list archive)
State New, archived
Headers show
Series [bpf] bpf, sysctl: let bpf_stats_handler take a kernel pointer buffer | expand

Commit Message

Tobias Klauser Aug. 24, 2020, 2:20 p.m. UTC
Commit 32927393dc1c ("sysctl: pass kernel pointers to ->proc_handler")
changed ctl_table.proc_handler to take a kernel pointer. Adjust the
signature of bpf_stats_handler to match ctl_table.proc_handler which
fixes the following sparse warning:

kernel/sysctl.c:226:49: warning: incorrect type in argument 3 (different address spaces)
kernel/sysctl.c:226:49:    expected void *
kernel/sysctl.c:226:49:    got void [noderef] __user *buffer
kernel/sysctl.c:2640:35: warning: incorrect type in initializer (incompatible argument 3 (different address spaces))
kernel/sysctl.c:2640:35:    expected int ( [usertype] *proc_handler )( ... )
kernel/sysctl.c:2640:35:    got int ( * )( ... )

Fixes: 32927393dc1c ("sysctl: pass kernel pointers to ->proc_handler")
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
---
 kernel/sysctl.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Alexei Starovoitov Aug. 25, 2020, 4:14 a.m. UTC | #1
On Mon, Aug 24, 2020 at 7:20 AM Tobias Klauser <tklauser@distanz.ch> wrote:
>
> Commit 32927393dc1c ("sysctl: pass kernel pointers to ->proc_handler")
> changed ctl_table.proc_handler to take a kernel pointer. Adjust the
> signature of bpf_stats_handler to match ctl_table.proc_handler which
> fixes the following sparse warning:
>
> kernel/sysctl.c:226:49: warning: incorrect type in argument 3 (different address spaces)
> kernel/sysctl.c:226:49:    expected void *
> kernel/sysctl.c:226:49:    got void [noderef] __user *buffer
> kernel/sysctl.c:2640:35: warning: incorrect type in initializer (incompatible argument 3 (different address spaces))
> kernel/sysctl.c:2640:35:    expected int ( [usertype] *proc_handler )( ... )
> kernel/sysctl.c:2640:35:    got int ( * )( ... )
>
> Fixes: 32927393dc1c ("sysctl: pass kernel pointers to ->proc_handler")
> Cc: Christoph Hellwig <hch@lst.de>
> Signed-off-by: Tobias Klauser <tklauser@distanz.ch>

Applied. Thanks
diff mbox series

Patch

diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 287862f91717..09e70ee2332e 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -204,8 +204,7 @@  static int max_extfrag_threshold = 1000;
 
 #if defined(CONFIG_BPF_SYSCALL) && defined(CONFIG_SYSCTL)
 static int bpf_stats_handler(struct ctl_table *table, int write,
-			     void __user *buffer, size_t *lenp,
-			     loff_t *ppos)
+			     void *buffer, size_t *lenp, loff_t *ppos)
 {
 	struct static_key *key = (struct static_key *)table->data;
 	static int saved_val;