From: Jesse Gross Date: Tue, 28 Dec 2010 05:19:35 +0000 (-0800) Subject: tunneling: Don't shadow vport when generating cache. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ecd859a28313166f042a0181cb27f444e3c4da32;p=openvswitch tunneling: Don't shadow vport when generating cache. When generating the tunnel header cache we have two vports that we are working with: the sender and destination. Unfortunately, both of these use the name 'vport'. This renames the destination to avoid shadowing the sender. This doesn't actually fix a bug because the compiler correctly uses the right one, even when shadowed. Found with sparse. Reported-by: Ben Pfaff Signed-off-by: Jesse Gross Acked-by: Ben Pfaff --- diff --git a/datapath/tunnel.c b/datapath/tunnel.c index c78e7ddf..5a9f8f36 100644 --- a/datapath/tunnel.c +++ b/datapath/tunnel.c @@ -912,13 +912,13 @@ static struct tnl_cache *build_cache(struct vport *vport, if (is_internal_dev(rt_dst(rt).dev)) { struct odp_flow_key flow_key; struct tbl_node *flow_node; - struct vport *vport; + struct vport *dst_vport; struct sk_buff *skb; bool is_frag; int err; - vport = internal_dev_get_vport(rt_dst(rt).dev); - if (!vport) + dst_vport = internal_dev_get_vport(rt_dst(rt).dev); + if (!dst_vport) goto done; skb = alloc_skb(cache->len, GFP_ATOMIC); @@ -928,13 +928,13 @@ static struct tnl_cache *build_cache(struct vport *vport, __skb_put(skb, cache->len); memcpy(skb->data, get_cached_header(cache), cache->len); - err = flow_extract(skb, vport->port_no, &flow_key, &is_frag); + err = flow_extract(skb, dst_vport->port_no, &flow_key, &is_frag); kfree_skb(skb); if (err || is_frag) goto done; - flow_node = tbl_lookup(rcu_dereference(vport->dp->table), + flow_node = tbl_lookup(rcu_dereference(dst_vport->dp->table), &flow_key, flow_hash(&flow_key), flow_cmp); if (flow_node) {