[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260122005113.2476634-4-kuba@kernel.org>
Date: Wed, 21 Jan 2026 16:51:10 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org,
edumazet@...gle.com,
pabeni@...hat.com,
andrew+netdev@...n.ch,
horms@...nel.org,
michael.chan@...adcom.com,
sdf@...ichev.me,
almasrymina@...gle.com,
dtatulea@...dia.com,
asml.silence@...il.com,
dw@...idwei.uk,
daniel@...earbox.net,
Jakub Kicinski <kuba@...nel.org>
Subject: [PATCH net-next 3/6] net: move mp->rx_page_size validation to __net_mp_open_rxq()
Move mp->rx_page_size validation where the rest of MP input
validation lives. No other caller is modifying mp params so
validation logic in queue restarts is out of place.
Signed-off-by: Jakub Kicinski <kuba@...nel.org>
---
net/core/netdev_rx_queue.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/net/core/netdev_rx_queue.c b/net/core/netdev_rx_queue.c
index b81cad90ba2f..03d7531abb3a 100644
--- a/net/core/netdev_rx_queue.c
+++ b/net/core/netdev_rx_queue.c
@@ -39,11 +39,8 @@ int netdev_rx_queue_restart(struct net_device *dev, unsigned int rxq_idx)
if (qops->ndo_default_qcfg)
qops->ndo_default_qcfg(dev, &qcfg);
- if (rxq->mp_params.rx_page_size) {
- if (!(qops->supported_params & QCFG_RX_PAGE_SIZE))
- return -EOPNOTSUPP;
+ if (rxq->mp_params.rx_page_size)
qcfg.rx_page_size = rxq->mp_params.rx_page_size;
- }
new_mem = kvzalloc(qops->ndo_queue_mem_size, GFP_KERNEL);
if (!new_mem)
@@ -115,6 +112,7 @@ int __net_mp_open_rxq(struct net_device *dev, unsigned int rxq_idx,
const struct pp_memory_provider_params *p,
struct netlink_ext_ack *extack)
{
+ const struct netdev_queue_mgmt_ops *qops = dev->queue_mgmt_ops;
struct netdev_rx_queue *rxq;
int ret;
@@ -139,6 +137,10 @@ int __net_mp_open_rxq(struct net_device *dev, unsigned int rxq_idx,
NL_SET_ERR_MSG(extack, "unable to custom memory provider to device with XDP program attached");
return -EEXIST;
}
+ if (p->rx_page_size && !(qops->supported_params & QCFG_RX_PAGE_SIZE)) {
+ NL_SET_ERR_MSG(extack, "device does not support: rx_page_size");
+ return -EOPNOTSUPP;
+ }
rxq = __netif_get_rx_queue(dev, rxq_idx);
if (rxq->mp_params.mp_ops) {
--
2.52.0
Powered by blists - more mailing lists