/* (This works on UP too - do_raw_spin_trylock will never return false in that case)  */
int __lockfunc __reacquire_kernel_lock(void)
/* (This works on UP too - do_raw_spin_trylock will never return false in that case)  */
int __lockfunc __reacquire_kernel_lock(void)
{
	while (!do_raw_spin_trylock(&kernel_flag)) {
		if (need_resched())
			return -EAGAIN;
		cpu_relax();
	}
	preempt_disable();
	return 0;
}