Skip to content

Commit

Permalink
openvswitch: meter: Fix setting meter id for new entries
Browse files Browse the repository at this point in the history
The meter code would create an entry for each new meter.  However, it
would not set the meter id in the new entry, so every meter would appear
to have a meter id of zero.  This commit properly sets the meter id when
adding the entry.

Fixes: 96fbc13 ("openvswitch: Add meter infrastructure")
Signed-off-by: Justin Pettit <[email protected]>
Cc: Andy Zhou <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
justinpettit authored and davem330 committed Jul 29, 2018
1 parent 7acf9d4 commit 25432eb
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions net/openvswitch/meter.c
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ static struct dp_meter *dp_meter_create(struct nlattr **a)
if (!meter)
return ERR_PTR(-ENOMEM);

meter->id = nla_get_u32(a[OVS_METER_ATTR_ID]);
meter->used = div_u64(ktime_get_ns(), 1000 * 1000);
meter->kbps = a[OVS_METER_ATTR_KBPS] ? 1 : 0;
meter->keep_stats = !a[OVS_METER_ATTR_CLEAR];
Expand Down Expand Up @@ -280,6 +281,10 @@ static int ovs_meter_cmd_set(struct sk_buff *skb, struct genl_info *info)
u32 meter_id;
bool failed;

if (!a[OVS_METER_ATTR_ID]) {
return -ENODEV;
}

meter = dp_meter_create(a);
if (IS_ERR_OR_NULL(meter))
return PTR_ERR(meter);
Expand All @@ -298,11 +303,6 @@ static int ovs_meter_cmd_set(struct sk_buff *skb, struct genl_info *info)
goto exit_unlock;
}

if (!a[OVS_METER_ATTR_ID]) {
err = -ENODEV;
goto exit_unlock;
}

meter_id = nla_get_u32(a[OVS_METER_ATTR_ID]);

/* Cannot fail after this. */
Expand Down

0 comments on commit 25432eb

Please sign in to comment.