Thread (5 messages) 5 messages, 3 authors, 2015-02-16

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

* Stanislav Meduna | 2014-04-17 16:18:16 [+0200]:
quoted hunk ↗ jump to hunk
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help