Xiaoyao Li <xiaoyao.li@xxxxxxxxx> writes: > On 3/24/2020 6:29 PM, Thomas Gleixner wrote: >> - switch (sld_state) { >> + switch (state) { >> case sld_off: >> pr_info("disabled\n"); >> - break; >> - >> + return; > Here, when sld_off, it just returns without > setup_force_cpu_cap(X86_FEATURE_SPLIT_LOCK_DETECT). > > So for APs, it won't clear SLD bit in split_lock_init(). Trivial fix: static void split_lock_init(void) { split_lock_verify_msr(sld_state != sld_off); } You just need to remove the __init annotation from split_lock_verify_msr(). Thanks, tglx