From 4f538fa249cfdd84f4be412e035f3d4f2e38d0a8 Mon Sep 17 00:00:00 2001 From: Krzysztof Kanas Date: Mon, 24 Jun 2019 16:32:00 +0200 Subject: [PATCH] net/af_packet: set default block size to page size Kernel validates block size to be aligned to page size. Code works on platforms with page size 4k, but on others e.g. Arm64 fails with default parameters. Signed-off-by: Krzysztof Kanas Reviewed-by: Ferruh Yigit --- drivers/net/af_packet/rte_eth_af_packet.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c index 4a660d5f01..db1a751cef 100644 --- a/drivers/net/af_packet/rte_eth_af_packet.c +++ b/drivers/net/af_packet/rte_eth_af_packet.c @@ -32,7 +32,6 @@ #define ETH_AF_PACKET_FRAMECOUNT_ARG "framecnt" #define ETH_AF_PACKET_QDISC_BYPASS_ARG "qdisc_bypass" -#define DFLT_BLOCK_SIZE (1 << 12) #define DFLT_FRAME_SIZE (1 << 11) #define DFLT_FRAME_COUNT (1 << 9) @@ -811,7 +810,7 @@ rte_eth_from_packet(struct rte_vdev_device *dev, struct rte_kvargs_pair *pair = NULL; unsigned k_idx; unsigned int blockcount; - unsigned int blocksize = DFLT_BLOCK_SIZE; + unsigned int blocksize; unsigned int framesize = DFLT_FRAME_SIZE; unsigned int framecount = DFLT_FRAME_COUNT; unsigned int qpairs = 1; @@ -821,6 +820,8 @@ rte_eth_from_packet(struct rte_vdev_device *dev, if (*sockfd < 0) return -1; + blocksize = getpagesize(); + /* * Walk arguments for configurable settings */ -- 2.20.1