linux_dsm_epyc7002/kernel/rcu
Paul E. McKenney eb0339934f rcutorture: Avoid fake-writer use of undefined primitives
Currently the rcu_torture_fakewriter() function invokes cur_ops->sync()
and cur_ops->exp_sync() without first checking to see if they are in
fact non-NULL.  This results in kernel NULL pointer dereferences when
testing RCU implementations that choose not to provide the full set of
primitives.  Given that it is perfectly reasonable to have specialized
RCU implementations that provide only a subset of the RCU API, this is
a bug in rcutorture.

This commit therefore makes rcu_torture_fakewriter() check function
pointers before invoking them, thus allowing it to test subsetted
RCU implementations.

Reported-by: Lihao Liang <lianglihao@huawei.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
2018-02-20 16:21:56 -08:00
..
Kconfig rcu: Drive TASKS_RCU directly off of PREEMPT 2017-08-17 07:26:04 -07:00
Kconfig.debug
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rcu_segcblist.c rcu/segcblist: Include rcupdate.h 2017-10-19 12:13:36 -07:00
rcu_segcblist.h rcu: Remove unused RCU list functions 2017-07-25 13:04:49 -07:00
rcu.h rcu: Shrink ->dynticks_{nmi_,}nesting from long long to long 2017-11-28 15:51:18 -08:00
rcuperf.c torture: Eliminate torture_runnable and perf_runnable 2017-12-11 09:18:29 -08:00
rcutorture.c rcutorture: Avoid fake-writer use of undefined primitives 2018-02-20 16:21:56 -08:00
srcutiny.c
srcutree.c srcu: Prohibit call_srcu() use under raw spinlocks 2017-11-28 15:52:33 -08:00
sync.c doc: Fix various RCU docbook comment-header problems 2017-10-19 22:26:11 -04:00
tiny.c
tree_exp.h rcu: Make expedited GPs correctly handle hardware CPU insertion 2017-07-25 13:04:45 -07:00
tree_plugin.h Merge branches 'cond_resched.2017.12.04a', 'dyntick.2017.11.28a', 'fixes.2017.12.11a', 'srbd.2017.12.05a' and 'torture.2017.12.11a' into HEAD 2017-12-11 09:21:58 -08:00
tree.c Merge branches 'cond_resched.2017.12.04a', 'dyntick.2017.11.28a', 'fixes.2017.12.11a', 'srbd.2017.12.05a' and 'torture.2017.12.11a' into HEAD 2017-12-11 09:21:58 -08:00
tree.h rcu: Shrink ->dynticks_{nmi_,}nesting from long long to long 2017-11-28 15:51:18 -08:00
update.c rcu: Export init_rcu_head() and destroy_rcu_head() to GPL modules 2017-12-07 19:51:49 -05:00