net/s2io: replace schedule_timeout() with
Subsystems (2)
PATCH 14/21 net/s2io: replace schedule_timeout() with
Quoted 3 lines · Nishanth Aravamudan
Hi,
Please consider applying.
There was a typo in the previous patch (changed HZ/2 to 200, thanks Domen for catching this!). Fixed below:
Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. This makes the code independent of HZ values (particularly important when HZ changes or is dynamic).
Signed-off-by Nishanth Aravamudan <[email protected]>
drivers/net/s2io.c +16 -32
@@ -684,8 +684,7 @@ static int init_nic(struct s2io_nic *nic val64 =0 ;writeq (val64, &bar0->sw_reset); val64 =readq (&bar0->sw_reset); -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /2 ); +msleep (500 );/* Enable Receiving broadcasts */ add = (void *) &bar0->mac_cfg;
@@ -938,8 +937,7 @@ static int init_nic(struct s2io_nic *nic dev->name);return -1 ; } -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /20 ); +msleep (50 ); time++; }
@@ -977,8 +975,7 @@ static int init_nic(struct s2io_nic *nicreturn -1 ; } time++; -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /20 ); +msleep (50 ); }/*
@@ -1407,8 +1404,7 @@ static int start_nic(struct s2io_nic *niSPECIAL_REG_WRITE (val64, &bar0->mc_rldram_mrs,UF ); val64 =readq (&bar0->mc_rldram_mrs); -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /10 );/* Delay by around 100 ms. */ +msleep (100 );/* Delay by around 100 ms. */ /* Enabling ECC Protection. */ val64 =readq (&bar0->adapter_control);
@@ -2423,8 +2419,7 @@ int wait_for_cmd_complete(nic_t * sp) ret =SUCCESS ;break ; } -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /20 ); +msleep (50 );if (cnt++ >10 )break ; }
@@ -2463,15 +2458,13 @@ void s2io_reset(nic_t * sp)* As of now I'am just giving a 250ms delay and hoping that the * PCI write to sw_reset register is done by this time. */ -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /4 ); +msleep (250 );/* Restore the PCI state saved during initializarion. */ pci_restore_state (sp->pdev);s2io_init_pci (sp); -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /4 ); +msleep (250 );/* SXE-002: Configure link and activity LED to turn it off */ subid = sp->pdev->subsystem_device;
@@ -3391,8 +3384,7 @@ static int read_eeprom(nic_t * sp, int o ret =0 ;break ; } -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /20 ); +msleep (50 ); exit_cnt++; }
@@ -3432,8 +3424,7 @@ static int write_eeprom(nic_t * sp, int ret =0 ;break ; } -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /20 ); +msleep (50 ); exit_cnt++; }
@@ -3689,8 +3680,7 @@ static int s2io_bist_test(nic_t * sp, ui ret =0 ;break ; } -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /10 ); +msleep (100 ); cnt++; }
@@ -3791,8 +3781,7 @@ static int s2io_rldram_test(nic_t * sp, val64 =readq (&bar0->mc_rldram_test_ctrl);if (val64 &MC_RLDRAM_TEST_DONE )break ; -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /5 ); +msleep (200 ); }if (cnt ==5 )
@@ -3808,8 +3797,7 @@ static int s2io_rldram_test(nic_t * sp, val64 =readq (&bar0->mc_rldram_test_ctrl);if (val64 &MC_RLDRAM_TEST_DONE )break ; -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /2 ); +msleep (500 ); }if (cnt ==5 )
@@ -4169,8 +4157,7 @@ static void s2io_set_link(unsigned long* Allow a small delay for the NICs self initiated * cleanup to complete. */ -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /10 ); +msleep (100 ); val64 =readq (&bar0->adapter_status);if (verify_xena_quiescence (val64, nic->device_enabled_once)) {
@@ -4224,10 +4211,8 @@ static void s2io_card_down(nic_t * sp) registeru64 val64 =0 ;/* If s2io_set_link task is executing, wait till it completes. */ -while (test_and_set_bit (0 , &(sp->link_state))) { -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /20 ); - } +while (test_and_set_bit (0 , &(sp->link_state))) +msleep (50 );atomic_set (&sp->card_state,CARD_DOWN );/* disable Tx and Rx traffic on the NIC */
@@ -4243,8 +4228,7 @@ static void s2io_card_down(nic_t * sp)break ; } -set_current_state (TASK_UNINTERRUPTIBLE ); -schedule_timeout (HZ /20 ); +msleep (50 ); cnt++;if (cnt ==10 ) { DBG_PRINT(ERR_DBG,
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors