I'm very happy to see progress with XDP for the ENA driver.
On Sun, 23 Jun 2019 10:06:49 +0300 <same...@amazon.com> wrote: > @@ -888,6 +959,15 @@ static struct sk_buff *ena_rx_skb(struct ena_ring > *rx_ring, > va = page_address(rx_info->page) + rx_info->page_offset; > prefetch(va + NET_IP_ALIGN); > > + if (ena_xdp_present_ring(rx_ring)) { > + rx_ring->xdp.data = va; > + rx_ring->xdp.data_meta = rx_ring->xdp.data; > + rx_ring->xdp.data_hard_start = rx_ring->xdp.data - > + rx_info->page_offset; > + rx_ring->xdp.data_end = rx_ring->xdp.data + len; > + if (ena_xdp_execute(rx_ring, &rx_ring->xdp) != XDP_PASS) > + return NULL; > + } Looks like you forgot to init xdp.rxq pointer. You can use the samples/bpf/xdp_rxq_info* to access this... and this driver will likely crash if you use it... -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer