[PATCH v2 0/5] staging: vc04_services: vchiq_core: Stop kthreads on shutdown

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

 



The series addresses the following TODO item:

```
* Fix kernel module support

Even the VPU firmware doesn't support a VCHI re-connect, the driver
should properly handle a module unload. This also includes that all
resources must be freed (kthreads, debugfs entries, ...) and global
variables avoided.
```

Patch 1/5 to 3/5 are log cleanups spotted during the reading of the
driver.

Patch 4/5 implements .remove() function vptr so that individual
devices(bcm2835-audio, bcm2835-camera, bcm2835-isp etc.)
can run their cleanup when removed from the vchiq_bus, during their
own module unload.

Patch 5/5 stops the kthreads started by vchiq - on shutdown path.

Rest of the module cleanup (debugfs entries, deregister char device
etc.) is already done as part of vchiq_remove().

Testing on RPi4 for vchiq module unload:

```
uajain@ATX:~$ uname -r
6.8.0-rc1-00128-gab2b09f632fa-dirty
uajain@ATX:~$ dmesg | grep vchiq
[   21.401426] vchiq: module is from the staging directory, the quality is unknown, you have been warned.
uajain@ATX:~$ sudo modprobe bcm2835_mmal_vchiq
sudo: unable to resolve host ATX: Temporary failure in name resolution
uajain@ATX:~$ dmesg | grep vchiq
[   21.401426] vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[   96.388148] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
uajain@ATX:~$ lsmod | grep vchiq 
bcm2835_mmal_vchiq     40960  0
vchiq                 581632  1 bcm2835_mmal_vchiq
uajain@ATX:~$ sudo rmmod bcm2835_mmal_vchiq vchiq
sudo: unable to resolve host ATX: Temporary failure in name resolution
uajain@ATX:~$ lsmod | grep vchiq
uajain@ATX:~$ dmesg | grep vchiq
[   21.401426] vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[   96.388148] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
uajain@ATX:~$ 

```

changes in v2:
- Drop one of WARN_ON from patch 2/5 (will be handled separately)
- Remove curly braces for single statement in 3/5
- null-check driver->remove in 4/5

Umang Jain (5):
  staging: vc04_services: Remove unused function declarations
  staging: vc04_services: vchiq_arm: Use appropriate dev_* log helpers
  staging: vc04_services: Do not log error on kzalloc()
  staging: vc04_services: Implement vchiq_bus .remove
  staging: vc04_services: vchiq_core: Stop kthreads on shutdown

 drivers/staging/vc04_services/interface/TODO  |  7 -------
 .../interface/vchiq_arm/vchiq_arm.c           | 19 ++++++++++---------
 .../interface/vchiq_arm/vchiq_bus.c           | 10 ++++++++++
 .../interface/vchiq_arm/vchiq_core.c          | 10 +++++++---
 .../interface/vchiq_arm/vchiq_core.h          |  6 ------
 5 files changed, 27 insertions(+), 25 deletions(-)


base-commit: 68bb540b1aefded1d58a9f956568d5316643d291
-- 
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