]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
vmxnet3: use correct intrConf reference when using extended queues
authorRonak Doshi <doshir@vmware.com>
Wed, 30 Nov 2022 08:21:47 +0000 (00:21 -0800)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 14 Dec 2022 13:02:55 +0000 (14:02 +0100)
[ Upstream commit 409e8ec8c5825591895937b8499b54aa2476fae7 ]

Commit 39f9895a00f4 ("vmxnet3: add support for 32 Tx/Rx queues")
added support for 32Tx/Rx queues. As a part of this patch, intrConf
structure was extended to incorporate increased queues.

This patch fixes the issue where incorrect reference is being used.

Fixes: 39f9895a00f4 ("vmxnet3: add support for 32 Tx/Rx queues")
Signed-off-by: Ronak Doshi <doshir@vmware.com>
Acked-by: Guolin Yang <gyang@vmware.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 6c88c764e0c426d11b07a5b2606527ccaca3ca02)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
drivers/net/vmxnet3/vmxnet3_drv.c

index 44a0d469f3cfd5ea7b21048a79dd19ae4ea55385..21896e221300444bcaa77acb366704cb608b85a0 100644 (file)
@@ -75,8 +75,14 @@ vmxnet3_enable_all_intrs(struct vmxnet3_adapter *adapter)
 
        for (i = 0; i < adapter->intr.num_intrs; i++)
                vmxnet3_enable_intr(adapter, i);
-       adapter->shared->devRead.intrConf.intrCtrl &=
+       if (!VMXNET3_VERSION_GE_6(adapter) ||
+           !adapter->queuesExtEnabled) {
+               adapter->shared->devRead.intrConf.intrCtrl &=
                                        cpu_to_le32(~VMXNET3_IC_DISABLE_ALL);
+       } else {
+               adapter->shared->devReadExt.intrConfExt.intrCtrl &=
+                                       cpu_to_le32(~VMXNET3_IC_DISABLE_ALL);
+       }
 }
 
 
@@ -85,8 +91,14 @@ vmxnet3_disable_all_intrs(struct vmxnet3_adapter *adapter)
 {
        int i;
 
-       adapter->shared->devRead.intrConf.intrCtrl |=
+       if (!VMXNET3_VERSION_GE_6(adapter) ||
+           !adapter->queuesExtEnabled) {
+               adapter->shared->devRead.intrConf.intrCtrl |=
                                        cpu_to_le32(VMXNET3_IC_DISABLE_ALL);
+       } else {
+               adapter->shared->devReadExt.intrConfExt.intrCtrl |=
+                                       cpu_to_le32(VMXNET3_IC_DISABLE_ALL);
+       }
        for (i = 0; i < adapter->intr.num_intrs; i++)
                vmxnet3_disable_intr(adapter, i);
 }