netvsc_bpf.c (43b5169d8355ccf26d726fbc75f083b2429113e4) netvsc_bpf.c (be9df4aff65f18caa79b35f88f42c3d5a43af14f)
1// SPDX-License-Identifier: GPL-2.0-only
2/* Copyright (c) 2019, Microsoft Corporation.
3 *
4 * Author:
5 * Haiyang Zhang <haiyangz@microsoft.com>
6 */
7
8#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

--- 31 unchanged lines hidden (view full) ---

40 /* allocate page buffer for data */
41 page = alloc_page(GFP_ATOMIC);
42 if (!page) {
43 act = XDP_DROP;
44 goto out;
45 }
46
47 xdp_init_buff(xdp, PAGE_SIZE, &nvchan->xdp_rxq);
1// SPDX-License-Identifier: GPL-2.0-only
2/* Copyright (c) 2019, Microsoft Corporation.
3 *
4 * Author:
5 * Haiyang Zhang <haiyangz@microsoft.com>
6 */
7
8#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

--- 31 unchanged lines hidden (view full) ---

40 /* allocate page buffer for data */
41 page = alloc_page(GFP_ATOMIC);
42 if (!page) {
43 act = XDP_DROP;
44 goto out;
45 }
46
47 xdp_init_buff(xdp, PAGE_SIZE, &nvchan->xdp_rxq);
48 xdp->data_hard_start = page_address(page);
49 xdp->data = xdp->data_hard_start + NETVSC_XDP_HDRM;
50 xdp_set_data_meta_invalid(xdp);
51 xdp->data_end = xdp->data + len;
48 xdp_prepare_buff(xdp, page_address(page), NETVSC_XDP_HDRM, len, false);
52
53 memcpy(xdp->data, data, len);
54
55 act = bpf_prog_run_xdp(prog, xdp);
56
57 switch (act) {
58 case XDP_PASS:
59 case XDP_TX:

--- 139 unchanged lines hidden ---
49
50 memcpy(xdp->data, data, len);
51
52 act = bpf_prog_run_xdp(prog, xdp);
53
54 switch (act) {
55 case XDP_PASS:
56 case XDP_TX:

--- 139 unchanged lines hidden ---