Question about using spinlock to synchronize between kernel driver and an interrupt handler

Josh Cartwright joshc at eso.teric.us
Sat Feb 1 08:34:22 EST 2014


On Sat, Feb 01, 2014 at 01:32:49AM -0800, anish singh wrote:
> On Sat, Feb 1, 2014 at 1:15 AM, m silverstri
> <michael.j.silverstri at gmail.com> wrote:
> > By driver code , I mean the code which set the register values and
> > wait till the values is set (via an interrupt handler) before
> > continues doing something else
> ok so you are looking for below code:
> 
> 
> some_func()
> {
> set_register_value
> x_variable=0
> wait_for_event*(x_variable);
> }
> 
> interrupt_handler(){
> x_variable=1
> wake_up();
> }
> 
> request_irq(interrupt_handler);

Please investigate the usage of completions in your driver.  See
include/linux/completion.h.  It sounds like it fits your usecase nicely.

  Josh



More information about the Kernelnewbies mailing list