diff options
author | Taehee Yoo <ap420073@gmail.com> | 2025-01-14 17:28:45 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-01-16 01:42:11 +0300 |
commit | a08a5c9484015a88c937aa0f9eaf3efb2123c3b8 (patch) | |
tree | 82c84bb2d84700cfe3a514cfbe3bf1dd90557e69 /net/core/devmem.c | |
parent | eec8359f0797ef87c6ef6cbed6de08b02073b833 (diff) | |
download | linux-a08a5c9484015a88c937aa0f9eaf3efb2123c3b8.tar.xz |
net: devmem: add ring parameter filtering
If driver doesn't support ring parameter or tcp-data-split configuration
is not sufficient, the devmem should not be set up.
Before setup the devmem, tcp-data-split should be ON and hds-thresh
value should be 0.
Tested-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Mina Almasry <almasrymina@google.com>
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Link: https://patch.msgid.link/20250114142852.3364986-4-ap420073@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core/devmem.c')
-rw-r--r-- | net/core/devmem.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/core/devmem.c b/net/core/devmem.c index 0b6ed7525b22..c971b8aceac8 100644 --- a/net/core/devmem.c +++ b/net/core/devmem.c @@ -8,6 +8,7 @@ */ #include <linux/dma-buf.h> +#include <linux/ethtool_netlink.h> #include <linux/genalloc.h> #include <linux/mm.h> #include <linux/netdevice.h> @@ -140,6 +141,16 @@ int net_devmem_bind_dmabuf_to_queue(struct net_device *dev, u32 rxq_idx, return -ERANGE; } + if (dev->ethtool->hds_config != ETHTOOL_TCP_DATA_SPLIT_ENABLED) { + NL_SET_ERR_MSG(extack, "tcp-data-split is disabled"); + return -EINVAL; + } + + if (dev->ethtool->hds_thresh) { + NL_SET_ERR_MSG(extack, "hds-thresh is not zero"); + return -EINVAL; + } + rxq = __netif_get_rx_queue(dev, rxq_idx); if (rxq->mp_params.mp_priv) { NL_SET_ERR_MSG(extack, "designated queue already memory provider bound"); |