lkml.org 
[lkml]   [2022]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 283/779] rcutorture: Dont cpuhp_remove_state() if cpuhp_setup_state() failed
    Date
    From: Paul E. McKenney <paulmck@kernel.org>

    [ Upstream commit fd13fe16db0d82612b260640f4e26f6d9d1e11fd ]

    Currently, in CONFIG_RCU_BOOST kernels, if the rcu_torture_init()
    function's call to cpuhp_setup_state() fails, rcu_torture_cleanup()
    gamely passes nonsense to cpuhp_remove_state(). This results in
    strange and misleading splats. This commit therefore ensures that if
    the rcu_torture_init() function's call to cpuhp_setup_state() fails,
    rcu_torture_cleanup() avoids invoking cpuhp_remove_state().

    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    kernel/rcu/rcutorture.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
    index c1b36c52e896..3262330d1679 100644
    --- a/kernel/rcu/rcutorture.c
    +++ b/kernel/rcu/rcutorture.c
    @@ -2848,7 +2848,7 @@ rcu_torture_cleanup(void)
    rcutorture_seq_diff(gp_seq, start_gp_seq));
    torture_stop_kthread(rcu_torture_stats, stats_task);
    torture_stop_kthread(rcu_torture_fqs, fqs_task);
    - if (rcu_torture_can_boost())
    + if (rcu_torture_can_boost() && rcutor_hp >= 0)
    cpuhp_remove_state(rcutor_hp);

    /*
    @@ -3161,9 +3161,9 @@ rcu_torture_init(void)
    firsterr = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "RCU_TORTURE",
    rcutorture_booster_init,
    rcutorture_booster_cleanup);
    + rcutor_hp = firsterr;
    if (torture_init_error(firsterr))
    goto unwind;
    - rcutor_hp = firsterr;

    // Testing RCU priority boosting requires rcutorture do
    // some serious abuse. Counter this by running ksoftirqd
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-15 20:53    [W:4.154 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site