wifi: wilc1000: document SRCU usage instead of SRCU
authorAlexis Lothoré <alexis.lothore@bootlin.com>
Tue, 28 May 2024 14:20:30 +0000 (16:20 +0200)
committerKalle Valo <kvalo@kernel.org>
Sat, 1 Jun 2024 09:59:30 +0000 (12:59 +0300)
Commit f236464f1db7 ("wifi: wilc1000: convert list management to RCU")
attempted to convert SRCU to RCU usage, assuming it was not really needed.
The runtime issues that arose after merging it showed that there are code
paths involving sleeping functions, and removing those would need some
heavier driver rework.

Add some documentation about SRCU need to make sure that any future
developer do not miss some use cases if tempted to convert back again to
RCU.

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240528-wilc_revert_srcu_to_rcu-v1-3-bce096e0798c@bootlin.com
drivers/net/wireless/microchip/wilc1000/netdev.h

index 5937d6d45695f4d972683c9688bf5637e90bff39..fde8610a9c84ba0c82b61a214643f2f9b2d43da8 100644 (file)
@@ -220,6 +220,13 @@ struct wilc {
 
        /* protect vif list */
        struct mutex vif_mutex;
+       /* Sleepable RCU struct to manipulate vif list. Sleepable version is
+        * needed over the classic RCU version because the driver's current
+        * design involves some sleeping code while manipulating a vif
+        * retrieved from vif list (so in a SRCU critical section), like:
+        * - sending commands to the chip, using info from retrieved vif
+        * - registering a new monitoring net device
+        */
        struct srcu_struct srcu;
        u8 open_ifcs;