diff options
author | Björn Töpel <bjorn.topel@intel.com> | 2021-01-22 18:47:23 +0300 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2021-01-26 02:05:02 +0300 |
commit | 93dd4a06c0e300a2a6538a39f8a30e7b83ff2c66 (patch) | |
tree | f660ac344672e3dc7bb53f8503023c0afa280f7e /tools/testing/selftests/bpf/xdpxceiver.c | |
parent | 829725ec7bf538d36f44117eaeb36bdf57be8e54 (diff) | |
download | linux-93dd4a06c0e300a2a6538a39f8a30e7b83ff2c66.tar.xz |
selftests/bpf: Avoid heap allocation
The data variable is only used locally. Instead of using the heap,
stick to using the stack.
Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20210122154725.22140-11-bjorn.topel@gmail.com
Diffstat (limited to 'tools/testing/selftests/bpf/xdpxceiver.c')
-rw-r--r-- | tools/testing/selftests/bpf/xdpxceiver.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/tools/testing/selftests/bpf/xdpxceiver.c b/tools/testing/selftests/bpf/xdpxceiver.c index 34bdcae9b908..2da59b142c03 100644 --- a/tools/testing/selftests/bpf/xdpxceiver.c +++ b/tools/testing/selftests/bpf/xdpxceiver.c @@ -807,10 +807,10 @@ static void *worker_testapp_validate(void *arg) { struct udphdr *udp_hdr = (struct udphdr *)(pkt_data + sizeof(struct ethhdr) + sizeof(struct iphdr)); - struct generic_data *data = (struct generic_data *)malloc(sizeof(struct generic_data)); struct iphdr *ip_hdr = (struct iphdr *)(pkt_data + sizeof(struct ethhdr)); struct ethhdr *eth_hdr = (struct ethhdr *)pkt_data; struct ifobject *ifobject = (struct ifobject *)arg; + struct generic_data data; void *bufs = NULL; pthread_attr_setstacksize(&attr, THREAD_STACK); @@ -840,17 +840,16 @@ static void *worker_testapp_validate(void *arg) for (int i = 0; i < num_frames; i++) { /*send EOT frame */ if (i == (num_frames - 1)) - data->seqnum = -1; + data.seqnum = -1; else - data->seqnum = i; - gen_udp_hdr(data, ifobject, udp_hdr); + data.seqnum = i; + gen_udp_hdr(&data, ifobject, udp_hdr); gen_ip_hdr(ifobject, ip_hdr); gen_udp_csum(udp_hdr, ip_hdr); gen_eth_hdr(ifobject, eth_hdr); gen_eth_frame(ifobject->umem, i * XSK_UMEM__DEFAULT_FRAME_SIZE); } - free(data); ksft_print_msg("Sending %d packets on interface %s\n", (opt_pkt_count - 1), ifobject->ifname); tx_only_all(ifobject); |