]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/mlx5e: XPS, Fix oversight of Multi-PF Netdev changes
authorCarolina Jubran <cjubran@nvidia.com>
Thu, 15 Aug 2024 07:16:10 +0000 (10:16 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Aug 2024 15:35:56 +0000 (17:35 +0200)
[ Upstream commit a07e953dafe5ebd88942dc861dfb06eaf055fb07 ]

The offending commit overlooked the Multi-PF Netdev changes.

Revert mlx5e_set_default_xps_cpumasks to incorporate Multi-PF Netdev
changes.

Fixes: bcee093751f8 ("net/mlx5e: Modifying channels number and updating TX queues")
Signed-off-by: Carolina Jubran <cjubran@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20240815071611.2211873-4-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en_main.c

index eedbcba22689486cf2f2922ef86370a25b3d3313..409f525f1703cb14c48f94d9286c6c04a15d426b 100644 (file)
@@ -3005,15 +3005,18 @@ int mlx5e_update_tx_netdev_queues(struct mlx5e_priv *priv)
 static void mlx5e_set_default_xps_cpumasks(struct mlx5e_priv *priv,
                                           struct mlx5e_params *params)
 {
-       struct mlx5_core_dev *mdev = priv->mdev;
-       int num_comp_vectors, ix, irq;
-
-       num_comp_vectors = mlx5_comp_vectors_max(mdev);
+       int ix;
 
        for (ix = 0; ix < params->num_channels; ix++) {
+               int num_comp_vectors, irq, vec_ix;
+               struct mlx5_core_dev *mdev;
+
+               mdev = mlx5_sd_ch_ix_get_dev(priv->mdev, ix);
+               num_comp_vectors = mlx5_comp_vectors_max(mdev);
                cpumask_clear(priv->scratchpad.cpumask);
+               vec_ix = mlx5_sd_ch_ix_get_vec_ix(mdev, ix);
 
-               for (irq = ix; irq < num_comp_vectors; irq += params->num_channels) {
+               for (irq = vec_ix; irq < num_comp_vectors; irq += params->num_channels) {
                        int cpu = mlx5_comp_vector_get_cpu(mdev, irq);
 
                        cpumask_set_cpu(cpu, priv->scratchpad.cpumask);