diff options
Diffstat (limited to 'drivers/net/vmxnet3')
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_defs.h | 6 | ||||
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_drv.c | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_defs.h b/drivers/net/vmxnet3/vmxnet3_defs.h index b4889e6c4a57..ca7727b940ad 100644 --- a/drivers/net/vmxnet3/vmxnet3_defs.h +++ b/drivers/net/vmxnet3/vmxnet3_defs.h | |||
@@ -464,6 +464,9 @@ enum vmxnet3_intr_type { | |||
464 | /* addition 1 for events */ | 464 | /* addition 1 for events */ |
465 | #define VMXNET3_MAX_INTRS 25 | 465 | #define VMXNET3_MAX_INTRS 25 |
466 | 466 | ||
467 | /* value of intrCtrl */ | ||
468 | #define VMXNET3_IC_DISABLE_ALL 0x1 /* bit 0 */ | ||
469 | |||
467 | 470 | ||
468 | struct Vmxnet3_IntrConf { | 471 | struct Vmxnet3_IntrConf { |
469 | bool autoMask; | 472 | bool autoMask; |
@@ -471,7 +474,8 @@ struct Vmxnet3_IntrConf { | |||
471 | u8 eventIntrIdx; | 474 | u8 eventIntrIdx; |
472 | u8 modLevels[VMXNET3_MAX_INTRS]; /* moderation level for | 475 | u8 modLevels[VMXNET3_MAX_INTRS]; /* moderation level for |
473 | * each intr */ | 476 | * each intr */ |
474 | __le32 reserved[3]; | 477 | __le32 intrCtrl; |
478 | __le32 reserved[2]; | ||
475 | }; | 479 | }; |
476 | 480 | ||
477 | /* one bit per VLAN ID, the size is in the units of u32 */ | 481 | /* one bit per VLAN ID, the size is in the units of u32 */ |
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 989b742551ac..0fbfc67e0f79 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c | |||
@@ -72,6 +72,8 @@ vmxnet3_enable_all_intrs(struct vmxnet3_adapter *adapter) | |||
72 | 72 | ||
73 | for (i = 0; i < adapter->intr.num_intrs; i++) | 73 | for (i = 0; i < adapter->intr.num_intrs; i++) |
74 | vmxnet3_enable_intr(adapter, i); | 74 | vmxnet3_enable_intr(adapter, i); |
75 | adapter->shared->devRead.intrConf.intrCtrl &= | ||
76 | cpu_to_le32(~VMXNET3_IC_DISABLE_ALL); | ||
75 | } | 77 | } |
76 | 78 | ||
77 | 79 | ||
@@ -80,6 +82,8 @@ vmxnet3_disable_all_intrs(struct vmxnet3_adapter *adapter) | |||
80 | { | 82 | { |
81 | int i; | 83 | int i; |
82 | 84 | ||
85 | adapter->shared->devRead.intrConf.intrCtrl |= | ||
86 | cpu_to_le32(VMXNET3_IC_DISABLE_ALL); | ||
83 | for (i = 0; i < adapter->intr.num_intrs; i++) | 87 | for (i = 0; i < adapter->intr.num_intrs; i++) |
84 | vmxnet3_disable_intr(adapter, i); | 88 | vmxnet3_disable_intr(adapter, i); |
85 | } | 89 | } |
@@ -1825,6 +1829,7 @@ vmxnet3_setup_driver_shared(struct vmxnet3_adapter *adapter) | |||
1825 | devRead->intrConf.modLevels[i] = adapter->intr.mod_levels[i]; | 1829 | devRead->intrConf.modLevels[i] = adapter->intr.mod_levels[i]; |
1826 | 1830 | ||
1827 | devRead->intrConf.eventIntrIdx = adapter->intr.event_intr_idx; | 1831 | devRead->intrConf.eventIntrIdx = adapter->intr.event_intr_idx; |
1832 | devRead->intrConf.intrCtrl |= cpu_to_le32(VMXNET3_IC_DISABLE_ALL); | ||
1828 | 1833 | ||
1829 | /* rx filter settings */ | 1834 | /* rx filter settings */ |
1830 | devRead->rxFilterConf.rxMode = 0; | 1835 | devRead->rxFilterConf.rxMode = 0; |