From ed1a6a0d8a50f8b4b4819121de7f0eaf6927273f Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Thu, 18 Apr 2019 14:12:51 +0200 Subject: [PATCH] MEDIUM: tasks: Use __ha_barrier_store after modifying global_tasks_mask. Now that we no longer use atomic operations to update global_tasks_mask, as it's always modified while holding the TASK_RQ_LOCK, we have to use __ha_barrier_store() instead of __ha_barrier_atomic_store() to ensure any modification of global_tasks_mask is seen before modifying active_tasks_mask. This should be backported to 1.9. --- src/task.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/task.c b/src/task.c index b4f65e892..de6eda1e7 100644 --- a/src/task.c +++ b/src/task.c @@ -78,7 +78,7 @@ void __task_wakeup(struct task *t, struct eb_root *root) #ifdef USE_THREAD if (root == &rqueue) { global_tasks_mask |= t->thread_mask; - __ha_barrier_atomic_store(); + __ha_barrier_store(); } #endif _HA_ATOMIC_OR(&active_tasks_mask, t->thread_mask);