[问题] wake_up_interruptible 是否要加lock

楼主: carlcarl (carl)   2013-04-29 15:47:39
借一下这个连结的例子
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包起来呢??
作者: mayasky ( )   2013-04-30 00:26:00
我觉得不用,flag乱插也只有一个值,WQ空了也不会怎样
楼主: carlcarl (carl)   2013-04-30 12:56:00
是想说如果在中间的时候 在别的地方刚好把flag设成0这样好像会有问题(?)
作者: mayasky ( )   2013-05-01 00:10:00
那这样为何要包著WAKE UP?你需要的似乎是ATOMIC运算而不不是CRITICAL SECTION
楼主: carlcarl (carl)   2013-05-01 23:01:00
atomic运算? 可以请问一下譬如哪些吗@@"

Links booklink

Contact Us: admin [ a t ] ucptt.com