clockintr: move CLST_IGNORE_REQUESTS from cl_flags to cq_flags
authorcheloha <cheloha@openbsd.org>
Mon, 15 Jan 2024 01:15:37 +0000 (01:15 +0000)
committercheloha <cheloha@openbsd.org>
Mon, 15 Jan 2024 01:15:37 +0000 (01:15 +0000)
commit89b5be12b3729505bf8427b53d03ccb0a9428b23
treef005169bd4afa4df944b263da216d0bb92165490
parent723bccacfc37c426413d0ea948b660141b880b6f
clockintr: move CLST_IGNORE_REQUESTS from cl_flags to cq_flags

In the near future, we will add support for destroying clockintr
objects.  When this happens, it will no longer be safe to dereference
the pointer to the expired clockintr during the dispatch loop in
clockintr_dispatch() after reentering cq_mtx.  This means we will not
be able to safely check for the CLST_IGNORE_REQUESTS flag.

So replace the CLST_IGNORE_REQUESTS flag in cl_flags with the
CQ_IGNORE_REQUESTS flag in cq_flags.  The semantics are the same.
Both cl_flags and cq_flags are protected by cq_mtx.

Note that we cannot move the CLST_IGNORE_REQUESTS flag to cr_flags in
struct clockrequest: that member is owned by the dispatching CPU and
is not mutated with atomic operations.
sys/kern/kern_clockintr.c
sys/sys/clockintr.h