CHROMIUM: MALI: mali_kbase_vinstr: Use wait_event_interruptible

If there are no waiting_clients, waiting for a vinstr dump,
mali_vinstr_service would wait forever in its main loop, i.e.
wait_event is called, without starting a timer beforehand.

wait_event puts the task in TASK_UNINTERRUPTIBLE state (D state),
which ends up triggering a hung_task timeout.

Use wait_event_interruptible instead, which leaves the task
in TASK_INTERRUPTIBLE state. Even if a signal is received, the
loop would just run again, which should not cause any issues.

BUG=b:122057727
TEST=Boot kukui, no hung task timeout after ~247s.

Change-Id: Iec82d7a949251d2e61916e085ebd67ca815c2aac
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1392585
Reviewed-by: Anders Pedersen <anders.pedersen@arm.corp-partner.google.com>
diff --git a/drivers/gpu/arm/midgard/mali_kbase_vinstr.c b/drivers/gpu/arm/midgard/mali_kbase_vinstr.c
index df936cf..69d688a 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_vinstr.c
+++ b/drivers/gpu/arm/midgard/mali_kbase_vinstr.c
@@ -1333,7 +1333,7 @@
 						ns_to_ktime(diff),
 						HRTIMER_MODE_REL);
 			}
-			wait_event(
+			wait_event_interruptible(
 					vinstr_ctx->waitq,
 					atomic_read(
 						&vinstr_ctx->request_pending) ||