aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/cc_platform.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@kernel.org>2022-01-27 13:20:49 -0800
committerPaul E. McKenney <paulmck@kernel.org>2022-04-11 15:52:30 -0700
commit46470cf85d2b61abd37c6f66c4dacc1bc510d10f (patch)
tree3f1adb38825845064a15ba7207f77ebda159db9b /include/linux/cc_platform.h
parentsrcu: Avoid NULL dereference in srcu_torture_stats_print() (diff)
downloadwireguard-linux-46470cf85d2b61abd37c6f66c4dacc1bc510d10f.tar.xz
wireguard-linux-46470cf85d2b61abd37c6f66c4dacc1bc510d10f.zip
srcu: Prevent cleanup_srcu_struct() from freeing non-dynamic ->sda
When an srcu_struct structure is created (but not in a kernel module) by DEFINE_SRCU() and friends, the per-CPU srcu_data structure is statically allocated. In all other cases, that structure is obtained from alloc_percpu(), in which case cleanup_srcu_struct() must invoke free_percpu() on the resulting ->sda pointer in the srcu_struct pointer. Which it does. Except that it also invokes free_percpu() on the ->sda pointer referencing the statically allocated per-CPU srcu_data structures. Which free_percpu() is surprisingly OK with. This commit nevertheless stops cleanup_srcu_struct() from freeing statically allocated per-CPU srcu_data structures. Co-developed-by: Neeraj Upadhyay <quic_neeraju@quicinc.com> Signed-off-by: Neeraj Upadhyay <quic_neeraju@quicinc.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'include/linux/cc_platform.h')
0 files changed, 0 insertions, 0 deletions