]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - net/core/sysctl_net_core.c
sysctl: pass kernel pointers to ->proc_handler
[mirror_ubuntu-hirsute-kernel.git] / net / core / sysctl_net_core.c
index 9f9e00ba3ad7ca61c90073bd89953c9ccd3a0661..0ddb13a6282b009f3e229bc1a5f64fe740a163a1 100644 (file)
@@ -45,7 +45,7 @@ EXPORT_SYMBOL(sysctl_devconf_inherit_init_net);
 
 #ifdef CONFIG_RPS
 static int rps_sock_flow_sysctl(struct ctl_table *table, int write,
-                               void __user *buffer, size_t *lenp, loff_t *ppos)
+                               void *buffer, size_t *lenp, loff_t *ppos)
 {
        unsigned int orig_size, size;
        int ret, i;
@@ -115,8 +115,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write,
 static DEFINE_MUTEX(flow_limit_update_mutex);
 
 static int flow_limit_cpu_sysctl(struct ctl_table *table, int write,
-                                void __user *buffer, size_t *lenp,
-                                loff_t *ppos)
+                                void *buffer, size_t *lenp, loff_t *ppos)
 {
        struct sd_flow_limit *cur;
        struct softnet_data *sd;
@@ -180,10 +179,7 @@ write_unlock:
                }
                if (len < *lenp)
                        kbuf[len++] = '\n';
-               if (copy_to_user(buffer, kbuf, len)) {
-                       ret = -EFAULT;
-                       goto done;
-               }
+               memcpy(buffer, kbuf, len);
                *lenp = len;
                *ppos += len;
        }
@@ -194,8 +190,7 @@ done:
 }
 
 static int flow_limit_table_len_sysctl(struct ctl_table *table, int write,
-                                      void __user *buffer, size_t *lenp,
-                                      loff_t *ppos)
+                                      void *buffer, size_t *lenp, loff_t *ppos)
 {
        unsigned int old, *ptr;
        int ret;
@@ -217,7 +212,7 @@ static int flow_limit_table_len_sysctl(struct ctl_table *table, int write,
 
 #ifdef CONFIG_NET_SCHED
 static int set_default_qdisc(struct ctl_table *table, int write,
-                            void __user *buffer, size_t *lenp, loff_t *ppos)
+                            void *buffer, size_t *lenp, loff_t *ppos)
 {
        char id[IFNAMSIZ];
        struct ctl_table tbl = {
@@ -236,7 +231,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
 #endif
 
 static int proc_do_dev_weight(struct ctl_table *table, int write,
-                          void __user *buffer, size_t *lenp, loff_t *ppos)
+                          void *buffer, size_t *lenp, loff_t *ppos)
 {
        int ret;
 
@@ -251,7 +246,7 @@ static int proc_do_dev_weight(struct ctl_table *table, int write,
 }
 
 static int proc_do_rss_key(struct ctl_table *table, int write,
-                          void __user *buffer, size_t *lenp, loff_t *ppos)
+                          void *buffer, size_t *lenp, loff_t *ppos)
 {
        struct ctl_table fake_table;
        char buf[NETDEV_RSS_KEY_LEN * 3];
@@ -264,7 +259,7 @@ static int proc_do_rss_key(struct ctl_table *table, int write,
 
 #ifdef CONFIG_BPF_JIT
 static int proc_dointvec_minmax_bpf_enable(struct ctl_table *table, int write,
-                                          void __user *buffer, size_t *lenp,
+                                          void *buffer, size_t *lenp,
                                           loff_t *ppos)
 {
        int ret, jit_enable = *(int *)table->data;
@@ -291,8 +286,7 @@ static int proc_dointvec_minmax_bpf_enable(struct ctl_table *table, int write,
 # ifdef CONFIG_HAVE_EBPF_JIT
 static int
 proc_dointvec_minmax_bpf_restricted(struct ctl_table *table, int write,
-                                   void __user *buffer, size_t *lenp,
-                                   loff_t *ppos)
+                                   void *buffer, size_t *lenp, loff_t *ppos)
 {
        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;
@@ -303,8 +297,7 @@ proc_dointvec_minmax_bpf_restricted(struct ctl_table *table, int write,
 
 static int
 proc_dolongvec_minmax_bpf_restricted(struct ctl_table *table, int write,
-                                    void __user *buffer, size_t *lenp,
-                                    loff_t *ppos)
+                                    void *buffer, size_t *lenp, loff_t *ppos)
 {
        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;