From 2f529f9b558ca1c1bd74be7437a84e4711743404 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 01 Nov 2024 02:11:33 +0000 Subject: [PATCH] add xenomai --- kernel/kernel/time/tick-broadcast.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/kernel/kernel/time/tick-broadcast.c b/kernel/kernel/time/tick-broadcast.c index 086d36b..e3d15b3 100644 --- a/kernel/kernel/time/tick-broadcast.c +++ b/kernel/kernel/time/tick-broadcast.c @@ -796,6 +796,23 @@ int ret = 0; ktime_t now; + /* + * If there is no broadcast device, tell the caller not to go + * into deep idle. + */ + if (!tick_broadcast_device.evtdev) + return -EBUSY; + + dev = this_cpu_ptr(&tick_cpu_device)->evtdev; + + /* + * If proxying the hardware timer for high-precision tick + * delivery to the out-of-band stage, the whole broadcast + * dance is a no-go. Deny entering deep idle. + */ + if (dev->features & CLOCK_EVT_FEAT_PROXY) + return -EBUSY; + raw_spin_lock(&tick_broadcast_lock); bc = tick_broadcast_device.evtdev; -- Gitblit v1.6.2