This is a re-attempt of [1] where we noticed corruption of vc04 firmware on stopping the kthread. After investigation, I found that the case where wait_event_interruptible() can return early(wait failed) with -ERESTARTSYS, is something not handling in remote_event_wait(). Once we bubble up the that return/err code and handle it - the issue is resolved correctly and kthreads are stopped as expected. Patch 1/2 handles the returning of the return value from wait_event_interruptible() Patch 2/2 handles stopping of kthreads. --- Testing with +CONFIG_BCM_VIDEOCORE=y +CONFIG_BCM2835_VCHIQ=m +CONFIG_VCHIQ_CDEV=y +CONFIG_BCM2835_VCHIQ_MMAL=m and as per drivers/staging/vc04_services/interface/TESTING Entire test sequence: https://paste.debian.net/plain/1322107 --- Umang Jain (2): staging: vchiq_core: Bubble up wait_event_interruptible() return value staging: vc04_services: vchiq_core: Stop kthreads on shutdown drivers/staging/vc04_services/interface/TODO | 7 ---- .../interface/vchiq_arm/vchiq_arm.c | 10 +++++- .../interface/vchiq_arm/vchiq_core.c | 33 ++++++++++++++----- 3 files changed, 33 insertions(+), 17 deletions(-) -- 2.43.0