On Thu, 9 Feb 2017 17:38:43 +0200, Or Gerlitz wrote:
> Running with CONFIG_PREEMPT set, I get a
>
> BUG: using smp_processor_id() in preemptible [00000000] code: tc/3793
>
> asserion from the TC action (mirred) stats_update callback, when the do
>
> _bstats_cpu_update(this_cpu_ptr(a->cpu_bstats), bytes, packets)
>
> As done by commit 66860be "nfp: bpf: allow offloaded filters to update stats",
> disabling/enabling preemption around the TC upcall solves that.
>
> Fixes: aad7e08d39bd ('net/mlx5e: Hardware offloaded flower filter statistics
> support')
> Signed-off-by: Or Gerlitz <[email protected]>
> ---
>
> I marked it as RFC, since I wasn't fully sure on the nature of the
> problem, nor if this is the direction we should take to the fix.
I think it's the right fix, for net-next we could perhaps redo the
tcf_action_stats_update() helper so that it takes care of preemption and
the iteration so more people don't trip over this?