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 <blp@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
if (is_internal_dev(rt_dst(rt).dev)) {
struct odp_flow_key flow_key;
struct tbl_node *flow_node;
if (is_internal_dev(rt_dst(rt).dev)) {
struct odp_flow_key flow_key;
struct tbl_node *flow_node;
+ struct vport *dst_vport;
struct sk_buff *skb;
bool is_frag;
int err;
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);
goto done;
skb = alloc_skb(cache->len, GFP_ATOMIC);
__skb_put(skb, cache->len);
memcpy(skb->data, get_cached_header(cache), cache->len);
__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;
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) {
&flow_key, flow_hash(&flow_key),
flow_cmp);
if (flow_node) {