[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <44F501B3.9070200@surriel.com>
Date: Tue, 29 Aug 2006 23:10:43 -0400
From: Rik van Riel <riel@...riel.com>
To: Rick Brown <rick.brown.3@...il.com>
CC: kernelnewbies@...linux.org, linux-kernel@...r.kernel.org
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists