On Wed, Jun 28, 2017 at 06:28:17PM -0700, Jakub Kicinski wrote:
> On Wed, 28 Jun 2017 22:30:01 +0200, Simon Horman wrote:
> > @@ -288,7 +292,21 @@ nfp_flower_del_offload(struct nfp_app *app, struct 
> > net_device *netdev,
> >  static int
> >  nfp_flower_get_stats(struct nfp_app *app, struct tc_cls_flower_offload 
> > *flow)
> >  {
> > -   return -EOPNOTSUPP;
> > +   struct nfp_fl_payload *nfp_flow;
> > +
> > +   nfp_flow = nfp_flower_find_in_fl_table(app, flow->cookie);
> > +   if (!nfp_flow)
> > +           return -EINVAL;
> > +
> > +   spin_lock(&nfp_flow->lock);
> > +   tcf_exts_stats_update(flow->exts, nfp_flow->stats.bytes,
> > +                         nfp_flow->stats.pkts, nfp_flow->stats.used);
> > +
> > +   nfp_flow->stats.pkts = 0;
> > +   nfp_flow->stats.bytes = 0;
> > +   spin_unlock(&nfp_flow->lock);
> > +
> > +   return 0;
> >  }
> 
> This needs to take spin_lock_bh() to lock out the RX path safely :(

Sorry about that, will fix.

Reply via email to