@@ -937,6 +937,9 @@ static void e1000_print_hw_hang(struct work_struct *work)
937
937
u16 phy_status , phy_1000t_status , phy_ext_status ;
938
938
u16 pci_status ;
939
939
940
+ if (test_bit (__E1000_DOWN , & adapter -> state ))
941
+ return ;
942
+
940
943
e1e_rphy (hw , PHY_STATUS , & phy_status );
941
944
e1e_rphy (hw , PHY_1000T_STATUS , & phy_1000t_status );
942
945
e1e_rphy (hw , PHY_EXT_STATUS , & phy_ext_status );
@@ -1506,6 +1509,9 @@ static void e1000e_downshift_workaround(struct work_struct *work)
1506
1509
struct e1000_adapter * adapter = container_of (work ,
1507
1510
struct e1000_adapter , downshift_task );
1508
1511
1512
+ if (test_bit (__E1000_DOWN , & adapter -> state ))
1513
+ return ;
1514
+
1509
1515
e1000e_gig_downshift_workaround_ich8lan (& adapter -> hw );
1510
1516
}
1511
1517
@@ -3765,6 +3771,10 @@ static void e1000e_update_phy_task(struct work_struct *work)
3765
3771
{
3766
3772
struct e1000_adapter * adapter = container_of (work ,
3767
3773
struct e1000_adapter , update_phy_task );
3774
+
3775
+ if (test_bit (__E1000_DOWN , & adapter -> state ))
3776
+ return ;
3777
+
3768
3778
e1000_get_phy_info (& adapter -> hw );
3769
3779
}
3770
3780
@@ -3775,6 +3785,10 @@ static void e1000e_update_phy_task(struct work_struct *work)
3775
3785
static void e1000_update_phy_info (unsigned long data )
3776
3786
{
3777
3787
struct e1000_adapter * adapter = (struct e1000_adapter * ) data ;
3788
+
3789
+ if (test_bit (__E1000_DOWN , & adapter -> state ))
3790
+ return ;
3791
+
3778
3792
schedule_work (& adapter -> update_phy_task );
3779
3793
}
3780
3794
@@ -4149,6 +4163,9 @@ static void e1000_watchdog_task(struct work_struct *work)
4149
4163
u32 link , tctl ;
4150
4164
int tx_pending = 0 ;
4151
4165
4166
+ if (test_bit (__E1000_DOWN , & adapter -> state ))
4167
+ return ;
4168
+
4152
4169
link = e1000e_has_link (adapter );
4153
4170
if ((netif_carrier_ok (netdev )) && link ) {
4154
4171
/* Cancel scheduled suspend requests. */
@@ -4887,6 +4904,10 @@ static void e1000_reset_task(struct work_struct *work)
4887
4904
struct e1000_adapter * adapter ;
4888
4905
adapter = container_of (work , struct e1000_adapter , reset_task );
4889
4906
4907
+ /* don't run the task if already down */
4908
+ if (test_bit (__E1000_DOWN , & adapter -> state ))
4909
+ return ;
4910
+
4890
4911
if (!((adapter -> flags & FLAG_RX_NEEDS_RESTART ) &&
4891
4912
(adapter -> flags & FLAG_RX_RESTART_NOW ))) {
4892
4913
e1000e_dump (adapter );
0 commit comments