net, xdp: Introduce xdp_prepare_buff utility routine
[linux-2.6-microblaze.git] / drivers / net / ethernet / freescale / dpaa2 / dpaa2-eth.c
index 3a7892a..55b73c1 100644 (file)
@@ -350,7 +350,7 @@ static u32 dpaa2_eth_run_xdp(struct dpaa2_eth_priv *priv,
        struct bpf_prog *xdp_prog;
        struct xdp_buff xdp;
        u32 xdp_act = XDP_PASS;
-       int err;
+       int err, offset;
 
        rcu_read_lock();
 
@@ -358,14 +358,10 @@ static u32 dpaa2_eth_run_xdp(struct dpaa2_eth_priv *priv,
        if (!xdp_prog)
                goto out;
 
-       xdp_init_buff(&xdp,
-                     DPAA2_ETH_RX_BUF_RAW_SIZE -
-                     (dpaa2_fd_get_offset(fd) - XDP_PACKET_HEADROOM),
-                     &ch->xdp_rxq);
-       xdp.data = vaddr + dpaa2_fd_get_offset(fd);
-       xdp.data_end = xdp.data + dpaa2_fd_get_len(fd);
-       xdp.data_hard_start = xdp.data - XDP_PACKET_HEADROOM;
-       xdp_set_data_meta_invalid(&xdp);
+       offset = dpaa2_fd_get_offset(fd) - XDP_PACKET_HEADROOM;
+       xdp_init_buff(&xdp, DPAA2_ETH_RX_BUF_RAW_SIZE - offset, &ch->xdp_rxq);
+       xdp_prepare_buff(&xdp, vaddr + offset, XDP_PACKET_HEADROOM,
+                        dpaa2_fd_get_len(fd), false);
 
        xdp_act = bpf_prog_run_xdp(xdp_prog, &xdp);