nvmm: preempt_disable should be able to be nested.

May fix #20224.

Change-Id: Ide859c35c76b525af1dd6bc5ab3b640e89039503
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11415
Reviewed-by: waddlesplash <[email protected]>
(cherry picked from commit 4fc9b717c3e4e5d22a9d434b25c032f78a56f5c4)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11418
This commit is contained in:
Augustin Cavalier
2026-08-04 16:20:37 +00:00
committed by waddlesplash
parent b87d2919ef
commit f70d950766
@@ -192,14 +192,15 @@ haiku_thread_unpin()
extern "C" void
os_preempt_disable()
{
thread_get_current_thread()->cpu->reschedule_disabled = true;
thread_get_current_thread()->cpu->reschedule_disabled++;
}
extern "C" void
os_preempt_enable()
{
thread_get_current_thread()->cpu->reschedule_disabled = false;
ASSERT(os_preempt_disabled());
thread_get_current_thread()->cpu->reschedule_disabled--;
if (os_return_needed())
scheduler_reschedule_if_necessary();
}