projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ofp-print: Print NXST_FLOW_REQUEST and NXST_AGGREGATE_REQUEST.
[openvswitch]
/
datapath
/
brcompat.c
diff --git
a/datapath/brcompat.c
b/datapath/brcompat.c
index f68b698c47b4d8d95228a1fe42293a9585910ff2..2113eae0f7a39fed65128a8bb6fcf56fa1ab749d 100644
(file)
--- a/
datapath/brcompat.c
+++ b/
datapath/brcompat.c
@@
-6,6
+6,8
@@
* kernel, by Linus Torvalds and others.
*/
* kernel, by Linus Torvalds and others.
*/
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
#include <linux/kernel.h>
#include <asm/uaccess.h>
#include <linux/completion.h>
#include <linux/kernel.h>
#include <asm/uaccess.h>
#include <linux/completion.h>
@@
-82,6
+84,9
@@
static int brc_add_del_bridge(char __user *uname, int add)
struct sk_buff *request;
char name[IFNAMSIZ];
struct sk_buff *request;
char name[IFNAMSIZ];
+ if (!capable(CAP_NET_ADMIN))
+ return -EPERM;
+
if (copy_from_user(name, uname, IFNAMSIZ))
return -EFAULT;
if (copy_from_user(name, uname, IFNAMSIZ))
return -EFAULT;
@@
-194,6
+199,9
@@
static int brc_add_del_port(struct net_device *dev, int port_ifindex, int add)
struct net_device *port;
int err;
struct net_device *port;
int err;
+ if (!capable(CAP_NET_ADMIN))
+ return -EPERM;
+
port = __dev_get_by_index(&init_net, port_ifindex);
if (!port)
return -EINVAL;
port = __dev_get_by_index(&init_net, port_ifindex);
if (!port)
return -EINVAL;
@@
-481,7
+489,7
@@
static struct sk_buff *brc_send_command(struct sk_buff *request,
/* Wait for reply. */
error = -ETIMEDOUT;
if (!wait_for_completion_timeout(&brc_done, BRC_TIMEOUT)) {
/* Wait for reply. */
error = -ETIMEDOUT;
if (!wait_for_completion_timeout(&brc_done, BRC_TIMEOUT)) {
- pr
intk(KERN_WARNING "brcompat:
timed out waiting for userspace\n");
+ pr
_warn("
timed out waiting for userspace\n");
goto error;
}
goto error;
}
@@
-551,7
+559,7
@@
static int __init brc_init(void)
err_unregister:
genl_unregister_family(&brc_genl_family);
error:
err_unregister:
genl_unregister_family(&brc_genl_family);
error:
- pr
intk(KERN_EMERG "brcompat: failed to install!
");
+ pr
_emerg("failed to install!\n
");
return err;
}
return err;
}