Messages in this thread | | | Subject | Re: use of preempt_count instead of in_atomic() at leds-gpio.c | From | Tetsuo Handa <> | Date | Sat, 22 Mar 2008 00:11:40 +0900 |
| |
Hello.
> > In short, you are saying that there is _no_ reliable way to determine > > am-i-called-from-inside-spinlock. > > That's correct.
So, it is impossible to know whether I am inside a spinlock or not. OK. That's not what I want to do.
I want to make sure that my code (not a device driver) is called only from a context where use of down()/mutex_lock()/kmalloc(GFP_KERNEL)/get_user_pages()/kmap() etc. are permitted. Is "if (in_atomic()) return;" check a correct method for avoiding deadlocks when my code was accidentally called from a context where use of down()/mutex_lock()/kmalloc(GFP_KERNEL)/get_user_pages()/kmap() etc. are not permitted? I'm assuming that in_atomic() returns nonzero whenever scheduling is not permitted.
Regards.
| |