+ local_irq_save(flags);
+ if (task_work_queued(¤t->nohz_full_work)) {
+ ret = 0;
+ goto out;
+ }
+
+ ret = task_work_add(current, ¤t->nohz_full_work, TWA_RESUME);
+out:
+ local_irq_restore(flags);
+ return ret;
Hmm, why not
local_irq_save(flags);
if (task_work_queued(...))
ret = 0;
else
ret = task_work_add(...);
?
Oleg.