mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
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:
@@ -762,12 +762,10 @@ static int tegra_channel_kthread_capture_dequeue(void *data)
|
|||||||
while (1) {
|
while (1) {
|
||||||
try_to_freeze();
|
try_to_freeze();
|
||||||
|
|
||||||
spin_lock_irqsave(&chan->capture_state_lock, flags);
|
|
||||||
wait_event_interruptible(chan->dequeue_wait,
|
wait_event_interruptible(chan->dequeue_wait,
|
||||||
(kthread_should_stop()
|
(kthread_should_stop()
|
||||||
|| !list_empty(&chan->dequeue)
|
|| !list_empty(&chan->dequeue)
|
||||||
|| (chan->capture_state == CAPTURE_ERROR)));
|
|| (chan->capture_state == CAPTURE_ERROR)));
|
||||||
spin_unlock_irqrestore(&chan->capture_state_lock, flags);
|
|
||||||
|
|
||||||
while (!(kthread_should_stop() || list_empty(&chan->dequeue)
|
while (!(kthread_should_stop() || list_empty(&chan->dequeue)
|
||||||
|| (chan->capture_state == CAPTURE_ERROR))) {
|
|| (chan->capture_state == CAPTURE_ERROR))) {
|
||||||
|
|||||||
Reference in New Issue
Block a user