diff options
Diffstat (limited to 'drivers/net/e1000')
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 090229f7a95c..dd79449f9a99 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -777,12 +777,12 @@ e1000_remove(struct pci_dev *pdev) | |||
777 | struct e1000_adapter *adapter = netdev_priv(netdev); | 777 | struct e1000_adapter *adapter = netdev_priv(netdev); |
778 | uint32_t ctrl_ext; | 778 | uint32_t ctrl_ext; |
779 | uint32_t manc, swsm; | 779 | uint32_t manc, swsm; |
780 | |||
781 | flush_scheduled_work(); | ||
782 | #ifdef CONFIG_E1000_NAPI | 780 | #ifdef CONFIG_E1000_NAPI |
783 | int i; | 781 | int i; |
784 | #endif | 782 | #endif |
785 | 783 | ||
784 | flush_scheduled_work(); | ||
785 | |||
786 | if(adapter->hw.mac_type >= e1000_82540 && | 786 | if(adapter->hw.mac_type >= e1000_82540 && |
787 | adapter->hw.media_type == e1000_media_type_copper) { | 787 | adapter->hw.media_type == e1000_media_type_copper) { |
788 | manc = E1000_READ_REG(&adapter->hw, MANC); | 788 | manc = E1000_READ_REG(&adapter->hw, MANC); |
@@ -3100,7 +3100,9 @@ e1000_intr(int irq, void *data, struct pt_regs *regs) | |||
3100 | struct e1000_adapter *adapter = netdev_priv(netdev); | 3100 | struct e1000_adapter *adapter = netdev_priv(netdev); |
3101 | struct e1000_hw *hw = &adapter->hw; | 3101 | struct e1000_hw *hw = &adapter->hw; |
3102 | uint32_t icr = E1000_READ_REG(hw, ICR); | 3102 | uint32_t icr = E1000_READ_REG(hw, ICR); |
3103 | #ifdef CONFIG_E1000_MQ | ||
3103 | int i; | 3104 | int i; |
3105 | #endif | ||
3104 | 3106 | ||
3105 | if(unlikely(!icr)) | 3107 | if(unlikely(!icr)) |
3106 | return IRQ_NONE; /* Not our interrupt */ | 3108 | return IRQ_NONE; /* Not our interrupt */ |
@@ -3128,13 +3130,14 @@ e1000_intr(int irq, void *data, struct pt_regs *regs) | |||
3128 | } else { | 3130 | } else { |
3129 | printk("call_data.count == %u\n", atomic_read(&adapter->rx_sched_call_data.count)); | 3131 | printk("call_data.count == %u\n", atomic_read(&adapter->rx_sched_call_data.count)); |
3130 | } | 3132 | } |
3131 | #else | 3133 | #else /* if !CONFIG_E1000_MQ */ |
3132 | if (likely(netif_rx_schedule_prep(&adapter->polling_netdev[0]))) | 3134 | if (likely(netif_rx_schedule_prep(&adapter->polling_netdev[0]))) |
3133 | __netif_rx_schedule(&adapter->polling_netdev[0]); | 3135 | __netif_rx_schedule(&adapter->polling_netdev[0]); |
3134 | else | 3136 | else |
3135 | e1000_irq_enable(adapter); | 3137 | e1000_irq_enable(adapter); |
3136 | #endif | 3138 | #endif /* CONFIG_E1000_MQ */ |
3137 | #else | 3139 | |
3140 | #else /* if !CONFIG_E1000_NAPI */ | ||
3138 | /* Writing IMC and IMS is needed for 82547. | 3141 | /* Writing IMC and IMS is needed for 82547. |
3139 | Due to Hub Link bus being occupied, an interrupt | 3142 | Due to Hub Link bus being occupied, an interrupt |
3140 | de-assertion message is not able to be sent. | 3143 | de-assertion message is not able to be sent. |
@@ -3158,7 +3161,7 @@ e1000_intr(int irq, void *data, struct pt_regs *regs) | |||
3158 | if(hw->mac_type == e1000_82547 || hw->mac_type == e1000_82547_rev_2) | 3161 | if(hw->mac_type == e1000_82547 || hw->mac_type == e1000_82547_rev_2) |
3159 | e1000_irq_enable(adapter); | 3162 | e1000_irq_enable(adapter); |
3160 | 3163 | ||
3161 | #endif | 3164 | #endif /* CONFIG_E1000_NAPI */ |
3162 | 3165 | ||
3163 | return IRQ_HANDLED; | 3166 | return IRQ_HANDLED; |
3164 | } | 3167 | } |