mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 09:12:24 +03:00
This is adding a mutex lock to synchronise between stall isr threads. Orin(t234) has three interrupt lines and three ISR threads to handle bottom half of the ISR. The threads sharing same data between them without proper synchronization. When multiple interrupts trigger simeltaneously, causing the threads running in parallell like below traces #0 nvgpu_cic_mon_intr_stall_isr (g=g@entry=0x5ed62a9318) at /home/dt/automotive-dev-main-20220802T015100095/kernel/nvgpu/drivers/gpu/nvgpu/common/cic/mon/mon_intr.c:158 #1 0x00000013758cae30 in nvgpu_intr_stall (arg=0x5ed62a9120) at /home/dt/automotive-dev-main-20220802T015100095/qnx/src/resmgrs/nvrm/nvgpu_rmos/os/intr.c:140 #2 0x00000013758ec090 in nvgpu_posix_thread_wrapper (data=<optimized out>) at /home/dt/automotive-dev-main-20220802T015100095/kernel/nvgpu/drivers/gpu/nvgpu/os/posix/thread.c:77 #3 0x0000001375b01000 in pthread_attr_setdetachstate () from /home/dt/automotive-dev-main-20220802T015100095/out/embedded-qnx-t186ref-debug-none/target_rootfs/lib/libc.so.5 Backtrace stopped: previous frame identical to this frame (corrupt stack?) This is causing some race in shared data access and causing multiple issues. Bug 3647988 Change-Id: If40e581635b52cce288d8f4b00af6a040f7f9a6e Signed-off-by: Dinesh T <dt@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2755874 Reviewed-by: Tejal Kudav <tkudav@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> Reviewed-by: Ankur Kishore <ankkishore@nvidia.com> GVS: Gerrit_Virtual_Submit