作者carlcarl (carl)
看板LinuxDev
標題[問題] wake_up_interruptible 是否要加lock
時間Mon Apr 29 15:47:39 2013
借一下這個連結的例子
http://bbs.chinaunix.net/forum.php?mod=viewthread&action=printable&tid=784492
{u32 i;
u16 *buff1;
u32 *buff2;
buff2=kmalloc(128,GFP_KERNEL);
wait_event_interruptible(wq,flags!=0);
..............................
}
在中断处理函数中
{
printk("interrupt 5 is working\n");
flags=1;
wake_up_interruptible(&wq);
}
請問在這情況下 flag=1和wake_up_interruptible是否需要用spin lock包起來呢??
--
http://blog.carlcarl.tw
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.184.171
1F:→ mayasky:我覺得不用,flag亂插也只有一個值,WQ空了也不會怎樣 04/30 00:26
2F:→ carlcarl:是想說如果在中間的時候 在別的地方剛好把flag設成0 04/30 12:56
3F:→ carlcarl:這樣好像會有問題(?) 04/30 12:56
4F:→ mayasky:那這樣為何要包著WAKE UP?你需要的似乎是ATOMIC運算而不 05/01 00:10
5F:推 mayasky:不是CRITICAL SECTION 05/01 00:10
6F:→ carlcarl:atomic運算? 可以請問一下譬如哪些嗎@@" 05/01 23:01