spin_lock behavior
Prajosh Premdas
premdas.prajosh at gmail.com
Wed Nov 2 05:01:54 EDT 2011
Hi
I wrote a sample module which looked like this and i expected the module to
hang as i have used 2 spin_lock simultaneously. But i find the print after
the second spin_lock being printed and the module works perfectly fine. Can
any body please help me in understanding this? I got this problem from a
driver i wrote and had a typo "spin_lock" instead of "spin_unlock" the
driver worked fine and i caught the mistake only during a review
*#include <linux/module.h>*
*#include <linux/spinlock.h>*
*
*
*struct sp_q {*
*spinlock_t spinlock;*
*uint8_t data;*
*};*
*
*
*static int __init sp_lck_init(void)*
*{*
*
*
* struct sp_q test;*
* *
* /* Spin lock Init */*
*
*
* spin_lock_init(&test.spinlock);*
* *
* printk("<1>Test start\n");*
* *
* spin_lock(&test.spinlock);*
* test.data = 0; *
* spin_lock(&test.spinlock); *
* *
* printk("<1>How come???\n");*
* return 0;*
*
*
*}*
*
*
*static void __exit sp_lck_exit(void)*
*{*
*
*
*}*
*
*
*module_init(sp_lck_init);*
*module_exit(sp_lck_exit);*
*MODULE_LICENSE("GPL");*
--
Regards,
Prajosh Premdas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20111102/b922f1a2/attachment.html
More information about the Kernelnewbies
mailing list