mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
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. Link: https://patch.msgid.link/20260122005113.2476634-4-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
b9ac2c60a3
commit
da7772a2b4
|
|
@ -39,11 +39,8 @@ int netdev_rx_queue_restart(struct net_device *dev, unsigned int rxq_idx)
|
||||||
if (qops->ndo_default_qcfg)
|
if (qops->ndo_default_qcfg)
|
||||||
qops->ndo_default_qcfg(dev, &qcfg);
|
qops->ndo_default_qcfg(dev, &qcfg);
|
||||||
|
|
||||||
if (rxq->mp_params.rx_page_size) {
|
if (rxq->mp_params.rx_page_size)
|
||||||
if (!(qops->supported_params & QCFG_RX_PAGE_SIZE))
|
|
||||||
return -EOPNOTSUPP;
|
|
||||||
qcfg.rx_page_size = 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);
|
new_mem = kvzalloc(qops->ndo_queue_mem_size, GFP_KERNEL);
|
||||||
if (!new_mem)
|
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,
|
const struct pp_memory_provider_params *p,
|
||||||
struct netlink_ext_ack *extack)
|
struct netlink_ext_ack *extack)
|
||||||
{
|
{
|
||||||
|
const struct netdev_queue_mgmt_ops *qops = dev->queue_mgmt_ops;
|
||||||
struct netdev_rx_queue *rxq;
|
struct netdev_rx_queue *rxq;
|
||||||
int ret;
|
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");
|
NL_SET_ERR_MSG(extack, "unable to custom memory provider to device with XDP program attached");
|
||||||
return -EEXIST;
|
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);
|
rxq = __netif_get_rx_queue(dev, rxq_idx);
|
||||||
if (rxq->mp_params.mp_ops) {
|
if (rxq->mp_params.mp_ops) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user