Justin, I already applied this as a straightforward backport. Hope it doesn't disrupt your work.
On Tue, Aug 07, 2018 at 08:31:35PM -0700, Justin Pettit wrote: > Thanks, Greg. I actually have this queued up with another patch that will > disable meters entirely on broken kernels. I plan to send that out tomorrow. > > --Justin > > > > On Aug 7, 2018, at 4:45 PM, Greg Rose <[email protected]> wrote: > > > > From: Justin Pettit <[email protected]> > > > > Upstream commit: > > From: Justin Pettit <[email protected]> > > Date: Sat, 28 Jul 2018 15:26:01 -0700 > > Subject: [PATCH] openvswitch: meter: Fix setting meter id for new entries > > > > 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: 96fbc13d7e77 ("openvswitch: Add meter infrastructure") > > Signed-off-by: Justin Pettit <[email protected]> > > Cc: Andy Zhou <[email protected]> > > Signed-off-by: David S. Miller <[email protected]> > > > > Cc: Justin Pettit <[email protected]> > > Signed-off-by: Greg Rose <[email protected]> > > --- > > datapath/meter.c | 10 +++++----- > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > diff --git a/datapath/meter.c b/datapath/meter.c > > index 1c2ed46..281d869 100644 > > --- a/datapath/meter.c > > +++ b/datapath/meter.c > > @@ -221,6 +221,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]; > > @@ -290,6 +291,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); > > @@ -308,11 +313,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. */ > > -- > > 1.8.3.1 > > > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
