2015-06-20 35 views
1

我嘗試修改tizen內核。 我正在測試每一行。所以,我發現mod_timer是內核錯誤 有什麼問題?內核定時器功能錯誤

代碼是

void timer_add(void){ 
     struct timer_list timer; 
     setup_timer(&timer, kill_callback, 0); 
     mod_timer(&timer, jiffies + msecs_to_jiffies(3000)); 
    } 

void kill_callback(unsigned long data) 
{ 
    sys_kill(current->pid, SIGKILL); 
    return ; 
} 

[19.029281]無法在虛擬addre處理內核空指針引用

+0

轉儲文件是 c002de24:e593200c LDR R2,[R 3,#12] c002de28:e3120001 TST R2,#1 c002de2c:1a000004 BNE c002de44 c002de30:e5932008 LDR R2,[R3, #8] –

+0

請告訴我們關於哪個tizen配置文件或內核源碼? – RzR

回答

1

你的功能timer_add聲明局部變量的定時器,它超出範圍時的函數返回。但是您將它作爲參數傳遞給setup_timer函數,它用於設置您的回調函數。

當稍後執行回調函數時,它會引用您的變量timer,該變量不再存在。

您必須將變量計時器聲明爲靜態變量或使用全局變量。