Re: w1-gpio: sleeping function called from invalid context
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2015-02-16 13:29:47
Also in:
lkml
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2015-02-16 13:29:47
Also in:
lkml
* Stanislav Meduna | 2014-04-17 16:18:16 [+0200]:
diff --git a/drivers/w1/w1_io.c b/drivers/w1/w1_io.c index e10acc2..7065486 100644 --- a/drivers/w1/w1_io.c +++ b/drivers/w1/w1_io.c@@ -170,14 +170,14 @@ static u8 w1_read_bit(struct w1_master *dev) unsigned long flags = 0; /* sample timing is critical here */ - local_irq_save(flags); + if(w1_disable_irqs) local_irq_save(flags); dev->bus_master->write_bit(dev->bus_master->data, 0); w1_delay(6); dev->bus_master->write_bit(dev->bus_master->data, 1); w1_delay(9); result = dev->bus_master->read_bit(dev->bus_master->data); - local_irq_restore(flags); + if(w1_disable_irqs) local_irq_restore(flags); w1_delay(55);
there is local_irq_save_nort() and its friends. Sebastian