Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c638bd9c authored by Bhalchandra Gajare's avatar Bhalchandra Gajare
Browse files

ASoC: msm-cpe-lsm: Use freezable wait for EVENT_STATUS ioctl



The EVENT_STATUS ioctl waits until the underlying hardware raises an
interrupt. It is required for this ioctl to wait even in suspend state.
Using wait_event_interruptible causes issue as the userspace may try to
call the ioctl again. As this wait is needed even during suspended state,
fix the interruptible issues by using wait_event_freezable so that the
system can be frozen.

CRs-fixed: 734125
Change-Id: I5c84ff3f0a2ead4989cdd42c7eb077258acefb08
Signed-off-by: default avatarBhalchandra Gajare <gajare@codeaurora.org>
parent 16a9206d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <linux/of.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/freezer.h>
#include <sound/soc.h>
#include <sound/cpe_core.h>
#include <sound/lsm_params.h>
@@ -776,7 +777,7 @@ static int msm_cpe_lsm_ioctl_shared(struct snd_pcm_substream *substream,
		}

		user = arg;
		rc = wait_event_interruptible(lsm_d->event_wait,
		rc = wait_event_freezable(lsm_d->event_wait,
				(atomic_read(&lsm_d->event_avail) == 1) ||
				(atomic_read(&lsm_d->event_stop) == 1));