aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c
diff options
context:
space:
mode:
authorNicolas Saenz Julienne <nsaenzjulienne@suse.de>2018-12-12 19:51:33 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-12-17 14:20:37 +0100
commita772f116702e3f0afdd7e6acadc1b8fb3b20b9ff (patch)
tree563dd41b60a1e6752e4b630566cf36cef5b6a20b /drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c
parentstaging: bcm2835-audio: double free in init error path (diff)
downloadlinux-dev-a772f116702e3f0afdd7e6acadc1b8fb3b20b9ff.tar.xz
linux-dev-a772f116702e3f0afdd7e6acadc1b8fb3b20b9ff.zip
staging: vchiq: switch to wait_for_completion_killable
This fixes f27e47bc6b8b ("staging: vchiq: use completions instead of semaphores") as it neglected the subtle down_interruptible() macro override in vchiq_killable.h. Hence all completions should be killable instead of interruptible. Fixes: f27e47bc6b8b ("staging: vchiq: use completions instead of semaphores") Reported-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c')
-rw-r--r--drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c
index 4b8554bc647e..42e10d7d97a4 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c
@@ -80,7 +80,7 @@ void vchiu_queue_push(VCHIU_QUEUE_T *queue, VCHIQ_HEADER_T *header)
return;
while (queue->write == queue->read + queue->size) {
- if (wait_for_completion_interruptible(&queue->pop))
+ if (wait_for_completion_killable(&queue->pop))
flush_signals(current);
}
@@ -93,7 +93,7 @@ void vchiu_queue_push(VCHIU_QUEUE_T *queue, VCHIQ_HEADER_T *header)
VCHIQ_HEADER_T *vchiu_queue_peek(VCHIU_QUEUE_T *queue)
{
while (queue->write == queue->read) {
- if (wait_for_completion_interruptible(&queue->push))
+ if (wait_for_completion_killable(&queue->push))
flush_signals(current);
}
@@ -107,7 +107,7 @@ VCHIQ_HEADER_T *vchiu_queue_pop(VCHIU_QUEUE_T *queue)
VCHIQ_HEADER_T *header;
while (queue->write == queue->read) {
- if (wait_for_completion_interruptible(&queue->push))
+ if (wait_for_completion_killable(&queue->push))
flush_signals(current);
}