|
@@ -1915,21 +1915,10 @@ static irqreturn_t e1000_msix_other(int __always_unused irq, void *data)
|
|
|
struct e1000_adapter *adapter = netdev_priv(netdev);
|
|
|
struct e1000_hw *hw = &adapter->hw;
|
|
|
u32 icr;
|
|
|
- bool enable = true;
|
|
|
|
|
|
icr = er32(ICR);
|
|
|
ew32(ICR, E1000_ICR_OTHER);
|
|
|
|
|
|
- if (icr & E1000_ICR_RXO) {
|
|
|
- ew32(ICR, E1000_ICR_RXO);
|
|
|
- enable = false;
|
|
|
- /* napi poll will re-enable Other, make sure it runs */
|
|
|
- if (napi_schedule_prep(&adapter->napi)) {
|
|
|
- adapter->total_rx_bytes = 0;
|
|
|
- adapter->total_rx_packets = 0;
|
|
|
- __napi_schedule(&adapter->napi);
|
|
|
- }
|
|
|
- }
|
|
|
if (icr & E1000_ICR_LSC) {
|
|
|
ew32(ICR, E1000_ICR_LSC);
|
|
|
hw->mac.get_link_status = true;
|
|
@@ -1938,7 +1927,7 @@ static irqreturn_t e1000_msix_other(int __always_unused irq, void *data)
|
|
|
mod_timer(&adapter->watchdog_timer, jiffies + 1);
|
|
|
}
|
|
|
|
|
|
- if (enable && !test_bit(__E1000_DOWN, &adapter->state))
|
|
|
+ if (!test_bit(__E1000_DOWN, &adapter->state))
|
|
|
ew32(IMS, E1000_IMS_OTHER);
|
|
|
|
|
|
return IRQ_HANDLED;
|
|
@@ -2708,8 +2697,7 @@ static int e1000e_poll(struct napi_struct *napi, int weight)
|
|
|
napi_complete_done(napi, work_done);
|
|
|
if (!test_bit(__E1000_DOWN, &adapter->state)) {
|
|
|
if (adapter->msix_entries)
|
|
|
- ew32(IMS, adapter->rx_ring->ims_val |
|
|
|
- E1000_IMS_OTHER);
|
|
|
+ ew32(IMS, adapter->rx_ring->ims_val);
|
|
|
else
|
|
|
e1000_irq_enable(adapter);
|
|
|
}
|