On Thu, 25 Jun 2020 23:28:59 +0200
Daniel Borkmann <dan...@iogearbox.net> wrote:

> > @@ -276,7 +286,10 @@ static int cpu_map_bpf_prog_run_xdp(struct 
> > bpf_cpu_map_entry *rcpu,
> >             }
> >     }
> >   
> > -   rcu_read_unlock();
> > +   if (stats->redirect)
> > +           xdp_do_flush_map();
> > +
> > +   rcu_read_unlock_bh(); /* resched point, may call do_softirq() */
> >     xdp_clear_return_frame_no_direct();  
> 
> Hm, this looks incorrect. Why do you call the 
> xdp_clear_return_frame_no_direct() /after/
> the possibility where there is a rescheduling point for softirq?

Good you caught this! - This needs to be fixed.

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer

Reply via email to