From 77eb50c7a32b603dbd796ce78f0b23285b761bab Mon Sep 17 00:00:00 2001 From: Justin Hibbits Date: Sat, 13 Apr 2019 02:29:30 +0000 Subject: [PATCH] powerpc: Add file forgotten in r346144 Forgot to add the changes for DELAY(), which lowers priority during the delay period. Also, mark the timebase read as volatile so newer GCC does not optimize it away, as it reportedly does currently. MFC after: 2 weeks MFC with: r346144 --- sys/powerpc/powerpc/clock.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/powerpc/powerpc/clock.c b/sys/powerpc/powerpc/clock.c index 890ce6616f5..d214e045b41 100644 --- a/sys/powerpc/powerpc/clock.c +++ b/sys/powerpc/powerpc/clock.c @@ -303,13 +303,16 @@ decr_get_timecount(struct timecounter *tc) void DELAY(int n) { - u_quad_t tb, ttb; + volatile u_quad_t tb; + u_quad_t ttb; TSENTER(); tb = mftb(); ttb = tb + howmany((uint64_t)n * 1000000, ps_per_tick); + nop_prio_vlow(); while (tb < ttb) tb = mftb(); + nop_prio_medium(); TSEXIT(); }