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)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Dec 2022 10:30:07 +0000 (10:30 +0000)
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>
drivers/net/vmxnet3/vmxnet3_drv.c

index 3111a8a..6f1e560 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);
 }