Messages in this thread | | | Date | Tue, 29 Aug 2006 23:10:43 -0400 | From | Rik van Riel <> | Subject | Re: Spinlock query |
| |
Rick Brown wrote: > Hi, > > In my driver (Process context), I have written the following code: > > -------------------------------------------- > spin_lock(lock) > ... > //Critical section to manipulate driver data
... interrupt hits here interrupt handler tries to grab the spinlock, which is already taken *BOOM*
> spin_u lock(lock) > --------------------------------------------- > > I have written similar code in my interrupt handler (Interrupt > context). The driver data is not accessed from anywhere else. Is my > code safe from any potential concurrency issues? Is there a need to > use spin_lock_irqsave()? In both the places?
You need to use spin_lock_irqsave() from process context. From the interrupt handler itself it doesn't hurt, but it shouldn't matter much since interrupt handlers should not get preempted.
-- What is important? What you want to be true, or what is true? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |