camera: vi5: scheduling while atomic bug fix

"scheduling while atomic" bug is causing
v4l2-test-app Latency*StreamMmap test to fail.
This is seen because wait_event_interruptible
is called inside spin_lock.

This was introduced in below gerrit.
https://git-master.nvidia.com/r/3262275

Bug 4449673
Jira L4T-6439

Change-Id: I9ffc65c95bbfce0907d1174639d0ec4a6cbd691a
Signed-off-by: Ankur Pawar <ankurp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3291319
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Ankur Pawar
2025-01-27 03:12:17 -08:00
committed by Jon Hunter
parent 580ec7794c
commit 4b3dddc90a

View File

@@ -762,12 +762,10 @@ static int tegra_channel_kthread_capture_dequeue(void *data)
while (1) {
try_to_freeze();
spin_lock_irqsave(&chan->capture_state_lock, flags);
wait_event_interruptible(chan->dequeue_wait,
(kthread_should_stop()
|| !list_empty(&chan->dequeue)
|| (chan->capture_state == CAPTURE_ERROR)));
spin_unlock_irqrestore(&chan->capture_state_lock, flags);
while (!(kthread_should_stop() || list_empty(&chan->dequeue)
|| (chan->capture_state == CAPTURE_ERROR))) {