summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2019-12-01 18:41:24 +0100
committerBen Hutchings <ben@decadent.org.uk>2020-02-11 20:03:52 +0000
commit2584c958c3ee1b4a6b1a7052418c29029c56f7ec (patch)
treef30f0af1dc264f1caff6fcc37da57e74138e5d82
parent8b62dc7c8374c5f3da14319d94376272e3d72d25 (diff)
downloadlinux-2584c958c3ee1b4a6b1a7052418c29029c56f7ec.tar.gz
linux-2584c958c3ee1b4a6b1a7052418c29029c56f7ec.tar.bz2
linux-2584c958c3ee1b4a6b1a7052418c29029c56f7ec.zip
openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()
commit 8ffeb03fbba3b599690b361467bfd2373e8c450f upstream. All the callers of ovs_flow_cmd_build_info() already deal with error return code correctly, so we can handle the error condition in a more gracefull way. Still dump a warning to preserve debuggability. v1 -> v2: - clarify the commit message - clean the skb and report the error (DaveM) Fixes: ccb1352e76cf ("net: Add Open vSwitch kernel components.") Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net> [bwh: Backported to 3.16: adjust context] Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--net/openvswitch/datapath.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c
index 15a8a568018c..9dcb7903c01a 100644
--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -788,7 +788,10 @@ static struct sk_buff *ovs_flow_cmd_build_info(const struct sw_flow *flow,
retval = ovs_flow_cmd_fill_info(flow, dp_ifindex, skb,
info->snd_portid, info->snd_seq, 0,
cmd);
- BUG_ON(retval < 0);
+ if (WARN_ON_ONCE(retval < 0)) {
+ kfree_skb(skb);
+ skb = ERR_PTR(retval);
+ }
return skb;
}