fix init work bug
kernel_wtimer_num to volatile
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user