|
@@ -476,14 +476,11 @@ static int pgctrl_show(struct seq_file *seq, void *v)
|
|
|
static ssize_t pgctrl_write(struct file *file, const char __user *buf,
|
|
|
size_t count, loff_t *ppos)
|
|
|
{
|
|
|
- int err = 0;
|
|
|
char data[128];
|
|
|
struct pktgen_net *pn = net_generic(current->nsproxy->net_ns, pg_net_id);
|
|
|
|
|
|
- if (!capable(CAP_NET_ADMIN)) {
|
|
|
- err = -EPERM;
|
|
|
- goto out;
|
|
|
- }
|
|
|
+ if (!capable(CAP_NET_ADMIN))
|
|
|
+ return -EPERM;
|
|
|
|
|
|
if (count == 0)
|
|
|
return -EINVAL;
|
|
@@ -491,10 +488,9 @@ static ssize_t pgctrl_write(struct file *file, const char __user *buf,
|
|
|
if (count > sizeof(data))
|
|
|
count = sizeof(data);
|
|
|
|
|
|
- if (copy_from_user(data, buf, count)) {
|
|
|
- err = -EFAULT;
|
|
|
- goto out;
|
|
|
- }
|
|
|
+ if (copy_from_user(data, buf, count))
|
|
|
+ return -EFAULT;
|
|
|
+
|
|
|
data[count - 1] = 0; /* Strip trailing '\n' and terminate string */
|
|
|
|
|
|
if (!strcmp(data, "stop"))
|
|
@@ -509,10 +505,7 @@ static ssize_t pgctrl_write(struct file *file, const char __user *buf,
|
|
|
else
|
|
|
pr_warning("Unknown command: %s\n", data);
|
|
|
|
|
|
- err = count;
|
|
|
-
|
|
|
-out:
|
|
|
- return err;
|
|
|
+ return count;
|
|
|
}
|
|
|
|
|
|
static int pgctrl_open(struct inode *inode, struct file *file)
|