]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
unwind: Simplify unwind_reset_info()
authorPeter Zijlstra <peterz@infradead.org>
Mon, 22 Sep 2025 13:46:00 +0000 (15:46 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 29 Oct 2025 09:29:55 +0000 (10:29 +0100)
Invert the condition of the first if and make it an early exit to
reduce an indent level for the rest fo the function.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Link: https://patch.msgid.link/20250924080118.777916262@infradead.org
include/linux/unwind_deferred.h

index 25f4dffebd1bf1550288c7f209ca5a648418bcfa..196e12c1449eafb6b81ce330c2ae0a113978d156 100644 (file)
@@ -46,22 +46,22 @@ void unwind_deferred_task_exit(struct task_struct *task);
 static __always_inline void unwind_reset_info(void)
 {
        struct unwind_task_info *info = &current->unwind_info;
-       unsigned long bits;
+       unsigned long bits = info->unwind_mask;
 
        /* Was there any unwinding? */
-       if (unlikely(info->unwind_mask)) {
-               bits = info->unwind_mask;
-               do {
-                       /* Is a task_work going to run again before going back */
-                       if (bits & UNWIND_PENDING)
-                               return;
-               } while (!try_cmpxchg(&info->unwind_mask, &bits, 0UL));
-               current->unwind_info.id.id = 0;
-
-               if (unlikely(info->cache)) {
-                       info->cache->nr_entries = 0;
-                       info->cache->unwind_completed = 0;
-               }
+       if (likely(!bits))
+               return;
+
+       do {
+               /* Is a task_work going to run again before going back */
+               if (bits & UNWIND_PENDING)
+                       return;
+       } while (!try_cmpxchg(&info->unwind_mask, &bits, 0UL));
+       current->unwind_info.id.id = 0;
+
+       if (unlikely(info->cache)) {
+               info->cache->nr_entries = 0;
+               info->cache->unwind_completed = 0;
        }
 }