diff options
| author | Jan Kara <jack@suse.cz> | 2026-09-09 11:45:37 +0200 |
|---|---|---|
| committer | Jan Kara <jack@suse.cz> | 2026-09-09 11:45:37 +0200 |
| commit | fdd4b109830d0458336ea99d119c8210f7da3a47 (patch) | |
| tree | 3f16b56d216630d251a2fea451d8e905a2819e89 | |
| parent | 5f7d97442dcec036e8511c3d13017f1195fa4c09 (diff) | |
| parent | a4ed759939ed5b5b9803413111a54042f533f625 (diff) | |
| download | linux-next-fdd4b109830d0458336ea99d119c8210f7da3a47.tar.gz linux-next-fdd4b109830d0458336ea99d119c8210f7da3a47.zip | |
Pull clang context analysis fix
| -rw-r--r-- | include/linux/once_lite.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/linux/once_lite.h b/include/linux/once_lite.h index 236592c4eeb1..5e2b67039aaf 100644 --- a/include/linux/once_lite.h +++ b/include/linux/once_lite.h @@ -10,19 +10,21 @@ #define DO_ONCE_LITE(func, ...) \ DO_ONCE_LITE_IF(true, func, ##__VA_ARGS__) -#define __ONCE_LITE_IF(condition) \ +#define __ONCE_LITE() \ ({ \ static bool __section(".data..once") __already_done; \ - bool __ret_cond = !!(condition); \ bool __ret_once = false; \ \ - if (unlikely(__ret_cond) && unlikely(!__already_done)) {\ + if (unlikely(!__already_done)) { \ __already_done = true; \ __ret_once = true; \ } \ unlikely(__ret_once); \ }) +#define __ONCE_LITE_IF(condition) \ + (unlikely(condition) && __ONCE_LITE()) + #define DO_ONCE_LITE_IF(condition, func, ...) \ ({ \ bool __ret_do_once = !!(condition); \ |
