From: Dragos Tatulea <dtatulea@xxxxxxxxxx> Make sure that non-enhanced IPoIB queues are configured with only 1 tx and rx queues over netlink. This behavior is consistent with the sysfs child_create configuration. The cited commit opened up the possibility for child PKEY interface to have multiple tx/rx queues. It is the driver's responsibility to re-adjust the queue count accordingly. This patch does exactly that: non-enhanced IPoIB supports only 1 tx and 1 rx queue. Fixes: dbc94a0fb817 ("IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces") Signed-off-by: Dragos Tatulea <dtatulea@xxxxxxxxxx> Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxxx --- Changelog: v2: * Changed implementation v1: https://lore.kernel.org/all/752143b0eef72a966662ce94526b1ceb5ba4bbb3.1674234106.git.leon@xxxxxxxxxx * Fixed typo in warning print. v0: https://lore.kernel.org/all/4a7ecec08ee30ad8004019818fadf1e58057e945.1674137153.git.leon@xxxxxxxxxx> --- drivers/infiniband/ulp/ipoib/ipoib_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c index ac25fc80fb33..f10d4bcf87d2 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -2200,6 +2200,14 @@ int ipoib_intf_init(struct ib_device *hca, u32 port, const char *name, rn->attach_mcast = ipoib_mcast_attach; rn->detach_mcast = ipoib_mcast_detach; rn->hca = hca; + + rc = netif_set_real_num_tx_queues(dev, 1); + if (rc) + goto out; + + rc = netif_set_real_num_rx_queues(dev, 1); + if (rc) + goto out; } priv->rn_ops = dev->netdev_ops; -- 2.39.1