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 --- |