@@ -836,7 +836,8 @@ static void nsim_dev_trap_report_work(struct work_struct *work)
836
836
nsim_dev = nsim_trap_data -> nsim_dev ;
837
837
838
838
if (!devl_trylock (priv_to_devlink (nsim_dev ))) {
839
- schedule_delayed_work (& nsim_dev -> trap_data -> trap_report_dw , 1 );
839
+ queue_delayed_work (system_unbound_wq ,
840
+ & nsim_dev -> trap_data -> trap_report_dw , 1 );
840
841
return ;
841
842
}
842
843
@@ -848,11 +849,12 @@ static void nsim_dev_trap_report_work(struct work_struct *work)
848
849
continue ;
849
850
850
851
nsim_dev_trap_report (nsim_dev_port );
852
+ cond_resched ();
851
853
}
852
854
devl_unlock (priv_to_devlink (nsim_dev ));
853
-
854
- schedule_delayed_work ( & nsim_dev -> trap_data -> trap_report_dw ,
855
- msecs_to_jiffies (NSIM_TRAP_REPORT_INTERVAL_MS ));
855
+ queue_delayed_work ( system_unbound_wq ,
856
+ & nsim_dev -> trap_data -> trap_report_dw ,
857
+ msecs_to_jiffies (NSIM_TRAP_REPORT_INTERVAL_MS ));
856
858
}
857
859
858
860
static int nsim_dev_traps_init (struct devlink * devlink )
@@ -907,8 +909,9 @@ static int nsim_dev_traps_init(struct devlink *devlink)
907
909
908
910
INIT_DELAYED_WORK (& nsim_dev -> trap_data -> trap_report_dw ,
909
911
nsim_dev_trap_report_work );
910
- schedule_delayed_work (& nsim_dev -> trap_data -> trap_report_dw ,
911
- msecs_to_jiffies (NSIM_TRAP_REPORT_INTERVAL_MS ));
912
+ queue_delayed_work (system_unbound_wq ,
913
+ & nsim_dev -> trap_data -> trap_report_dw ,
914
+ msecs_to_jiffies (NSIM_TRAP_REPORT_INTERVAL_MS ));
912
915
913
916
return 0 ;
914
917
0 commit comments