Yes, by disabling preemption and ensuring all sub-functions called by the busy waiting loop of stop_machine, which happens to be true on non-preemptive kernels, solve the problem from the original implementation. Andy Chiu <andy.chiu at sifive.com>