summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2013-04-03 00:30:43 +0200
committerJesse Gross <jesse@nicira.com>2013-04-02 16:31:58 -0700
commit5d9633523f27dfcaac2d6052c7b3278311f77949 (patch)
treec9ee48774d76ed0a183018696a6a9c08be33ecbc
parent22e3880a76bb9a0c4fa5c8fefdc8697a36a4dae1 (diff)
downloadlinux-stable-5d9633523f27dfcaac2d6052c7b3278311f77949.tar.gz
linux-stable-5d9633523f27dfcaac2d6052c7b3278311f77949.tar.bz2
linux-stable-5d9633523f27dfcaac2d6052c7b3278311f77949.zip
openvswitch: Don't insert empty OVS_VPORT_ATTR_OPTIONS attribute
The port specific options are currently unused resulting in an empty OVS_VPORT_ATTR_OPTIONS nested attribute being inserted into every OVS_VPORT_CMD_GET message. Don't insert OVS_VPORT_ATTR_OPTIONS if no options are present. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: Jesse Gross <jesse@nicira.com>
-rw-r--r--net/openvswitch/vport.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/net/openvswitch/vport.c b/net/openvswitch/vport.c
index f6b8132ce4cb..71a2de8726cb 100644
--- a/net/openvswitch/vport.c
+++ b/net/openvswitch/vport.c
@@ -301,17 +301,19 @@ void ovs_vport_get_stats(struct vport *vport, struct ovs_vport_stats *stats)
int ovs_vport_get_options(const struct vport *vport, struct sk_buff *skb)
{
struct nlattr *nla;
+ int err;
+
+ if (!vport->ops->get_options)
+ return 0;
nla = nla_nest_start(skb, OVS_VPORT_ATTR_OPTIONS);
if (!nla)
return -EMSGSIZE;
- if (vport->ops->get_options) {
- int err = vport->ops->get_options(vport, skb);
- if (err) {
- nla_nest_cancel(skb, nla);
- return err;
- }
+ err = vport->ops->get_options(vport, skb);
+ if (err) {
+ nla_nest_cancel(skb, nla);
+ return err;
}
nla_nest_end(skb, nla);