diff options
author | 2023-03-24 09:05:50 -0700 | |
---|---|---|
committer | 2023-04-04 08:36:43 -0700 | |
commit | a7bf4d7c16c1cf9753873879630a5d5169eb3206 (patch) | |
tree | af06eeafeb3848e5b55fcb641187121c90d387f3 /scripts/generate_rust_analyzer.py | |
parent | srcu: Move work-scheduling fields from srcu_struct to srcu_usage (diff) | |
download | linux-rng-a7bf4d7c16c1cf9753873879630a5d5169eb3206.tar.xz linux-rng-a7bf4d7c16c1cf9753873879630a5d5169eb3206.zip |
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>
Diffstat (limited to 'scripts/generate_rust_analyzer.py')
0 files changed, 0 insertions, 0 deletions