On Thu, Nov 14, 2013 at 11:18:08AM +0300, Dan Carpenter wrote: > The transaction task here is hp_sdc_tasklet() and it releases the lock. > The problem is if we aren't able to queue the transaction then we need > to release the lock ourselves. > > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> Applied, thank you. > > diff --git a/drivers/input/misc/hp_sdc_rtc.c b/drivers/input/misc/hp_sdc_rtc.c > index 86b8228..45e0e3e 100644 > --- a/drivers/input/misc/hp_sdc_rtc.c > +++ b/drivers/input/misc/hp_sdc_rtc.c > @@ -180,7 +180,10 @@ static int64_t hp_sdc_rtc_read_i8042timer (uint8_t loadcmd, int numreg) > if (WARN_ON(down_interruptible(&i8042tregs))) > return -1; > > - if (hp_sdc_enqueue_transaction(&t)) return -1; > + if (hp_sdc_enqueue_transaction(&t)) { > + up(&i8042tregs); > + return -1; > + } > > /* Sleep until results come back. */ > if (WARN_ON(down_interruptible(&i8042tregs))) -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html