Re: [PATCH 4/8] LinuxPPS: kapi: Unlock before waking up events queue in pps_event().

2017-03-03 Thread Rodolfo Giometti

On 02/15/17 15:31, Andrey Drobyshev wrote:

From: Alexander GQ Gerasiov 

Otherwise we get "scheduling while atomic" problem.

Signed-off-by: Alexander GQ Gerasiov 


Acked-by: Rodolfo Giometti 


Re: [PATCH 4/8] LinuxPPS: kapi: Unlock before waking up events queue in pps_event().

2017-03-03 Thread Rodolfo Giometti

On 02/15/17 15:31, Andrey Drobyshev wrote:

From: Alexander GQ Gerasiov 

Otherwise we get "scheduling while atomic" problem.

Signed-off-by: Alexander GQ Gerasiov 


Acked-by: Rodolfo Giometti 


[PATCH 4/8] LinuxPPS: kapi: Unlock before waking up events queue in pps_event().

2017-02-15 Thread Andrey Drobyshev
From: Alexander GQ Gerasiov 

Otherwise we get "scheduling while atomic" problem.

Signed-off-by: Alexander GQ Gerasiov 
---
 drivers/pps/kapi.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/pps/kapi.c b/drivers/pps/kapi.c
index 805c749..a9a111d 100644
--- a/drivers/pps/kapi.c
+++ b/drivers/pps/kapi.c
@@ -226,11 +226,11 @@ void pps_event(struct pps_device *pps, struct 
pps_event_time *ts, int event,
/* Wake up if captured something */
if (captured) {
pps->last_ev++;
+   spin_unlock_irqrestore(>lock, flags);
wake_up_interruptible_all(>queue);
-
kill_fasync(>async_queue, SIGIO, POLL_IN);
-   }
 
-   spin_unlock_irqrestore(>lock, flags);
+   } else
+   spin_unlock_irqrestore(>lock, flags);
 }
 EXPORT_SYMBOL(pps_event);
-- 
2.1.4



[PATCH 4/8] LinuxPPS: kapi: Unlock before waking up events queue in pps_event().

2017-02-15 Thread Andrey Drobyshev
From: Alexander GQ Gerasiov 

Otherwise we get "scheduling while atomic" problem.

Signed-off-by: Alexander GQ Gerasiov 
---
 drivers/pps/kapi.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/pps/kapi.c b/drivers/pps/kapi.c
index 805c749..a9a111d 100644
--- a/drivers/pps/kapi.c
+++ b/drivers/pps/kapi.c
@@ -226,11 +226,11 @@ void pps_event(struct pps_device *pps, struct 
pps_event_time *ts, int event,
/* Wake up if captured something */
if (captured) {
pps->last_ev++;
+   spin_unlock_irqrestore(>lock, flags);
wake_up_interruptible_all(>queue);
-
kill_fasync(>async_queue, SIGIO, POLL_IN);
-   }
 
-   spin_unlock_irqrestore(>lock, flags);
+   } else
+   spin_unlock_irqrestore(>lock, flags);
 }
 EXPORT_SYMBOL(pps_event);
-- 
2.1.4