On Thu, 25 Jun 2020 23:28:59 +0200 Daniel Borkmann <daniel@xxxxxxxxxxxxx> 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