Paul E. McKenney a7bf4d7c16 srcu: Check for readers at module-exit time
If a given statically allocated in-module srcu_struct structure was ever
used for updates, srcu_module_going() will invoke cleanup_srcu_struct()
at module-exit time.  This will check for the error case of SRCU readers
persisting past module-exit time.  On the other hand, if this srcu_struct
structure never went through a grace period, srcu_module_going() only
invokes free_percpu(), which would result in strange failures if SRCU
readers persisted past module-exit time.

This commit therefore adds a srcu_readers_active() check to
srcu_module_going(), splatting if readers have persisted and refraining
from invoking free_percpu() in that case.  Better to leak memory than
to suffer silent memory corruption!

[ paulmck: Apply Zhang, Qiang1 feedback on memory leak. ]

Tested-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
2023-04-04 08:36:43 -07:00
..
2023-02-21 18:24:12 -08:00
2022-12-02 11:25:00 +01:00
2022-12-21 14:31:52 -08:00
2023-02-23 14:00:10 -08:00
2023-02-21 10:45:51 -08:00
2023-02-23 14:05:08 -08:00
2023-02-23 13:49:45 -08:00
2023-03-03 10:21:39 -08:00
2022-08-29 19:47:03 -04:00
2022-01-11 13:08:21 -08:00
2022-09-26 10:13:13 -07:00
2023-02-21 15:27:48 -08:00
2022-11-15 00:42:02 -08:00
2022-12-23 12:00:24 -08:00
2023-02-02 16:26:06 -08:00
2022-12-19 12:33:32 -06:00
2022-06-29 13:07:16 +02:00
2022-12-27 12:52:10 +01:00
2022-10-10 12:49:34 -07:00
2022-02-25 09:36:06 +01:00
2023-02-21 13:34:07 -08:00
2022-08-06 16:38:17 -07:00