CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2020/10/14 22:28:43
Modified files:
sys/kern : kern_exit.c kern_exec.c kern_time.c
sys/sys : time.h
Log message:
_exit(2), execve(2): cancel per-process interval timers safely
During _exit(2) and sometimes during execve(2) we need to cancel any
active per-process interval timers. We don't currently do this in an
MP-safe way. Both syscalls ignore the locking assumptions documented
in proc.h.
The easiest way to make them MP-safe is to use setitimer(), just like
the getitimer(2) and setitimer(2) syscalls do. To make things a bit
cleaner I have added a helper function, cancelitimer(), so the callers
don't need to fuss with an itimerval struct.
While we're here we can remove the splclock/splx dance from execve(2).
It is no longer necessary.
ok deraadt@