Message ID | 20200824142047.22043-1-tklauser@distanz.ch |
---|---|
State | Accepted |
Delegated to: | BPF Maintainers |
Headers | show |
Series | [bpf] bpf, sysctl: let bpf_stats_handler take a kernel pointer buffer | expand |
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 --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;
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(-)