[PATCH v2 0/2] staging: vchiq_core: Stop kthreads on module unload

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
+CONFIG_VIDEO_BCM2835=m

and as per
drivers/staging/vc04_services/interface/TESTING

Entire test sequence:
https://paste.debian.net/plain/1322185
---

[1]: https://lore.kernel.org/linux-staging/20240403052100.2794-1-umang.jain@xxxxxxxxxxxxxxxx/ 

Changes in v2:
- Return 0 as success value for remote_wait_event() in 1/2
- Fix stopping of 'keep-alive' kthread in 2/2. 

Umang Jain (2):
  staging: vchiq_core: Bubble up wait_event_interruptible() return value
  staging: vc04_services: vchiq_core: Stop kthreads on vchiq module
    unload

 drivers/staging/vc04_services/interface/TODO  |  7 ----
 .../interface/vchiq_arm/vchiq_arm.c           | 10 ++++-
 .../interface/vchiq_arm/vchiq_core.c          | 37 ++++++++++++++-----
 3 files changed, 36 insertions(+), 18 deletions(-)

-- 
2.43.0





[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux