diff options
| author | John Doe <[email protected]> | 2023-12-01 11:19:07 +0000 |
|---|---|---|
| committer | John Doe <[email protected]> | 2023-12-01 11:19:07 +0000 |
| commit | a880fd3b320d58e5fa6c8894a41087f54ef694f3 (patch) | |
| tree | 2a301c692adbea17a95fc850dea09ab0b1559a94 /source/module/monitor_timer.c | |
| parent | 0d1f57f06ea5c63d17edd98355da3733345ecc01 (diff) | |
fix init work bug
kernel_wtimer_num to volatile
Diffstat (limited to 'source/module/monitor_timer.c')
| -rw-r--r-- | source/module/monitor_timer.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/module/monitor_timer.c b/source/module/monitor_timer.c index 2eb768f..d669b76 100644 --- a/source/module/monitor_timer.c +++ b/source/module/monitor_timer.c @@ -3,7 +3,7 @@ // Global variable kernel_watch_timer kernel_wtimer_list[MAX_TIMER_NUM] = { 0}; // all kernel_watch_timer -int kernel_wtimer_num = 0; // current kernel_watch_timer number +volatile int kernel_wtimer_num = 0; // current kernel_watch_timer number EXPORT_SYMBOL(kernel_wtimer_list); // export kernel_watch_timer_list EXPORT_SYMBOL(kernel_wtimer_num); // export kernel_watch_timer_num @@ -18,15 +18,19 @@ unsigned char del_all_kwarg_by_pid(pid_t pid) { kernel_watch_timer *timer = NULL; printk(KERN_INFO "del kwarg..."); - + // printk(KERN_INFO "del kwarg kernel_wtimer_num:%d", kernel_wtimer_num); for (i = 0; i < kernel_wtimer_num; i++) { + // printk(KERN_INFO "del watch i:%d", i); timer = &(kernel_wtimer_list[i]); timer_del_watch_by_pid(timer, pid); } + // printk(KERN_INFO "del kwarg kernel_wtimer_num:%d", kernel_wtimer_num); for (i = 0; i < kernel_wtimer_num; i++) { + // printk(KERN_INFO "del timer i:%d", i); timer = &(kernel_wtimer_list[i]); if (TIMER_NO_KWARG(timer)) // no available kwarg { + // printk(KERN_INFO "del timer empty %d", i); // cancel and destroy timer.work // make sure empty timer has no work active cancel_work_sync(&timer->wk); |
