This lets the MI clock interrupt code see the correct SPL.
The full splx() is skipped because the updating of the hardware interrupt
masks should not be needed here.
Prompted by and OK cheloha@
-/* $OpenBSD: clock.c,v 1.46 2022/08/22 00:35:06 cheloha Exp $ */
+/* $OpenBSD: clock.c,v 1.47 2022/10/31 13:59:10 visa Exp $ */
/*
* Copyright (c) 2001-2004 Opsycon AB (www.opsycon.se / www.opsycon.com)
{
u_int32_t clkdiff, pendingticks = 0;
struct cpu_info *ci = curcpu();
+ int s;
/*
* If we got an interrupt before we got ready to process it,
/*
* Process clock interrupt.
*/
+ s = splclock();
#ifdef MULTIPROCESSOR
register_t sr;
#ifdef MULTIPROCESSOR
setsr(sr);
#endif
+ ci->ci_ipl = s;
return CR_INT_5; /* Clock is always on 5 */
}