Skip to content

Instantly share code, notes, and snippets.

@nickdesaulniers
Last active June 7, 2023 18:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nickdesaulniers/d272827f15721d18b156bdc294dd158e to your computer and use it in GitHub Desktop.
Save nickdesaulniers/d272827f15721d18b156bdc294dd158e to your computer and use it in GitHub Desktop.
mm/vmalloc.c:1575:12: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
1575 | if (va && __this_cpu_cmpxchg(ne_fit_preload_node, NULL, va))
| ^
./include/linux/percpu-defs.h:475:2: note: expanded from macro '__this_cpu_cmpxchg'
475 | raw_cpu_cmpxchg(pcp, oval, nval); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/percpu-defs.h:416:2: note: expanded from macro 'raw_cpu_cmpxchg'
416 | __pcpu_size_call_return2(raw_cpu_cmpxchg_, pcp, oval, nval)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/percpu-defs.h:339:24: note: expanded from macro '__pcpu_size_call_return2'
339 | case 8: pscr2_ret__ = stem##8(variable, __VA_ARGS__); break; \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: expanded from here
./include/asm-generic/percpu.h:362:2: note: expanded from macro 'raw_cpu_cmpxchg_8'
362 | raw_cpu_generic_cmpxchg(pcp, oval, nval)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/asm-generic/percpu.h:119:2: note: expanded from macro 'raw_cpu_generic_cmpxchg'
119 | raw_cpu_generic_try_cmpxchg(pcp, &__old, nval); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/asm-generic/percpu.h:104:28: note: expanded from macro 'raw_cpu_generic_try_cmpxchg'
104 | typeof(pcp) __val = *__p, __old = *(ovalp); \
| ^ ~~~~~~~~
mm/vmalloc.c:1570:7: note: Loop condition is false. Exiting loop
1570 | if (!this_cpu_read(ne_fit_preload_node))
| ^
./include/linux/percpu-defs.h:489:29: note: expanded from macro 'this_cpu_read'
489 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^
./include/linux/percpu-defs.h:319:2: note: expanded from macro '__pcpu_size_call_return'
319 | __verify_pcpu_ptr(&(variable)); \
| ^
./include/linux/percpu-defs.h:217:37: note: expanded from macro '__verify_pcpu_ptr'
217 | #define __verify_pcpu_ptr(ptr) \
| ^
mm/vmalloc.c:1570:7: note: Control jumps to 'case 8:' at line 1570
1570 | if (!this_cpu_read(ne_fit_preload_node))
| ^
./include/linux/percpu-defs.h:489:29: note: expanded from macro 'this_cpu_read'
489 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^
./include/linux/percpu-defs.h:320:2: note: expanded from macro '__pcpu_size_call_return'
320 | switch(sizeof(variable)) { \
| ^
mm/vmalloc.c:1570:7: note: Loop condition is false. Exiting loop
1570 | if (!this_cpu_read(ne_fit_preload_node))
| ^
./include/linux/percpu-defs.h:489:29: note: expanded from macro 'this_cpu_read'
489 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^
./include/linux/percpu-defs.h:324:23: note: expanded from macro '__pcpu_size_call_return'
324 | case 8: pscr_ret__ = stem##8(variable); break; \
| ^
note: expanded from here
./arch/arm64/include/asm/percpu.h:172:2: note: expanded from macro 'this_cpu_read_8'
172 | _pcp_protect_return(__percpu_read_64, pcp)
| ^
./arch/arm64/include/asm/percpu.h:159:2: note: expanded from macro '_pcp_protect_return'
159 | preempt_disable_notrace(); \
| ^
./include/linux/preempt.h:254:35: note: expanded from macro 'preempt_disable_notrace'
254 | #define preempt_disable_notrace() \
| ^
mm/vmalloc.c:1570:7: note: Loop condition is false. Exiting loop
1570 | if (!this_cpu_read(ne_fit_preload_node))
| ^
./include/linux/percpu-defs.h:489:29: note: expanded from macro 'this_cpu_read'
489 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^
./include/linux/percpu-defs.h:324:23: note: expanded from macro '__pcpu_size_call_return'
324 | case 8: pscr_ret__ = stem##8(variable); break; \
| ^
note: expanded from here
./arch/arm64/include/asm/percpu.h:172:2: note: expanded from macro 'this_cpu_read_8'
172 | _pcp_protect_return(__percpu_read_64, pcp)
| ^
./arch/arm64/include/asm/percpu.h:160:29: note: expanded from macro '_pcp_protect_return'
160 | __retval = (typeof(pcp))op(raw_cpu_ptr(&(pcp)), ##args); \
| ^
./include/linux/percpu-defs.h:241:2: note: expanded from macro 'raw_cpu_ptr'
241 | __verify_pcpu_ptr(ptr); \
| ^
./include/linux/percpu-defs.h:217:37: note: expanded from macro '__verify_pcpu_ptr'
217 | #define __verify_pcpu_ptr(ptr) \
| ^
mm/vmalloc.c:1570:7: note: Taking true branch
1570 | if (!this_cpu_read(ne_fit_preload_node))
| ^
./include/linux/percpu-defs.h:489:29: note: expanded from macro 'this_cpu_read'
489 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^
./include/linux/percpu-defs.h:324:23: note: expanded from macro '__pcpu_size_call_return'
324 | case 8: pscr_ret__ = stem##8(variable); break; \
| ^
note: expanded from here
./arch/arm64/include/asm/percpu.h:172:2: note: expanded from macro 'this_cpu_read_8'
172 | _pcp_protect_return(__percpu_read_64, pcp)
| ^
./arch/arm64/include/asm/percpu.h:161:2: note: expanded from macro '_pcp_protect_return'
161 | preempt_enable_notrace(); \
| ^
./include/linux/preempt.h:228:2: note: expanded from macro 'preempt_enable_notrace'
228 | if (unlikely(__preempt_count_dec_and_test())) \
| ^
mm/vmalloc.c:1570:7: note: Loop condition is false. Exiting loop
1570 | if (!this_cpu_read(ne_fit_preload_node))
| ^
./include/linux/percpu-defs.h:489:29: note: expanded from macro 'this_cpu_read'
489 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^
./include/linux/percpu-defs.h:324:23: note: expanded from macro '__pcpu_size_call_return'
324 | case 8: pscr_ret__ = stem##8(variable); break; \
| ^
note: expanded from here
./arch/arm64/include/asm/percpu.h:172:2: note: expanded from macro 'this_cpu_read_8'
172 | _pcp_protect_return(__percpu_read_64, pcp)
| ^
./arch/arm64/include/asm/percpu.h:161:2: note: expanded from macro '_pcp_protect_return'
161 | preempt_enable_notrace(); \
| ^
./include/linux/preempt.h:225:34: note: expanded from macro 'preempt_enable_notrace'
225 | #define preempt_enable_notrace() \
| ^
mm/vmalloc.c:1570:7: note: Execution continues on line 1570
1570 | if (!this_cpu_read(ne_fit_preload_node))
| ^
./include/linux/percpu-defs.h:489:29: note: expanded from macro 'this_cpu_read'
489 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^
./include/linux/percpu-defs.h:324:42: note: expanded from macro '__pcpu_size_call_return'
324 | case 8: pscr_ret__ = stem##8(variable); break; \
| ^
mm/vmalloc.c:1570:6: note: Assuming the condition is true
1570 | if (!this_cpu_read(ne_fit_preload_node))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/vmalloc.c:1570:2: note: Taking true branch
1570 | if (!this_cpu_read(ne_fit_preload_node))
| ^
mm/vmalloc.c:1575:6: note: Assuming 'va' is non-null
1575 | if (va && __this_cpu_cmpxchg(ne_fit_preload_node, NULL, va))
| ^~
mm/vmalloc.c:1575:6: note: Left side of '&&' is true
mm/vmalloc.c:1575:12: note: Loop condition is false. Exiting loop
1575 | if (va && __this_cpu_cmpxchg(ne_fit_preload_node, NULL, va))
| ^
./include/linux/percpu-defs.h:475:2: note: expanded from macro '__this_cpu_cmpxchg'
475 | raw_cpu_cmpxchg(pcp, oval, nval); \
| ^
./include/linux/percpu-defs.h:416:2: note: expanded from macro 'raw_cpu_cmpxchg'
416 | __pcpu_size_call_return2(raw_cpu_cmpxchg_, pcp, oval, nval)
| ^
./include/linux/percpu-defs.h:334:2: note: expanded from macro '__pcpu_size_call_return2'
334 | __verify_pcpu_ptr(&(variable)); \
| ^
./include/linux/percpu-defs.h:217:37: note: expanded from macro '__verify_pcpu_ptr'
217 | #define __verify_pcpu_ptr(ptr) \
| ^
mm/vmalloc.c:1575:12: note: Control jumps to 'case 8:' at line 1575
1575 | if (va && __this_cpu_cmpxchg(ne_fit_preload_node, NULL, va))
| ^
./include/linux/percpu-defs.h:475:2: note: expanded from macro '__this_cpu_cmpxchg'
475 | raw_cpu_cmpxchg(pcp, oval, nval); \
| ^
./include/linux/percpu-defs.h:416:2: note: expanded from macro 'raw_cpu_cmpxchg'
416 | __pcpu_size_call_return2(raw_cpu_cmpxchg_, pcp, oval, nval)
| ^
./include/linux/percpu-defs.h:335:2: note: expanded from macro '__pcpu_size_call_return2'
335 | switch(sizeof(variable)) { \
| ^
mm/vmalloc.c:1575:12: note: Loop condition is false. Exiting loop
1575 | if (va && __this_cpu_cmpxchg(ne_fit_preload_node, NULL, va))
| ^
./include/linux/percpu-defs.h:475:2: note: expanded from macro '__this_cpu_cmpxchg'
475 | raw_cpu_cmpxchg(pcp, oval, nval); \
| ^
./include/linux/percpu-defs.h:416:2: note: expanded from macro 'raw_cpu_cmpxchg'
416 | __pcpu_size_call_return2(raw_cpu_cmpxchg_, pcp, oval, nval)
| ^
./include/linux/percpu-defs.h:339:24: note: expanded from macro '__pcpu_size_call_return2'
339 | case 8: pscr2_ret__ = stem##8(variable, __VA_ARGS__); break; \
| ^
note: expanded from here
./include/asm-generic/percpu.h:362:2: note: expanded from macro 'raw_cpu_cmpxchg_8'
362 | raw_cpu_generic_cmpxchg(pcp, oval, nval)
| ^
./include/asm-generic/percpu.h:119:2: note: expanded from macro 'raw_cpu_generic_cmpxchg'
119 | raw_cpu_generic_try_cmpxchg(pcp, &__old, nval); \
| ^
./include/asm-generic/percpu.h:103:21: note: expanded from macro 'raw_cpu_generic_try_cmpxchg'
103 | typeof(pcp) *__p = raw_cpu_ptr(&(pcp)); \
| ^
./include/linux/percpu-defs.h:241:2: note: expanded from macro 'raw_cpu_ptr'
241 | __verify_pcpu_ptr(ptr); \
| ^
./include/linux/percpu-defs.h:217:37: note: expanded from macro '__verify_pcpu_ptr'
217 | #define __verify_pcpu_ptr(ptr) \
| ^
mm/vmalloc.c:1575:12: note: Assigned value is garbage or undefined
1575 | if (va && __this_cpu_cmpxchg(ne_fit_preload_node, NULL, va))
| ^
./include/linux/percpu-defs.h:475:2: note: expanded from macro '__this_cpu_cmpxchg'
475 | raw_cpu_cmpxchg(pcp, oval, nval); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/percpu-defs.h:416:2: note: expanded from macro 'raw_cpu_cmpxchg'
416 | __pcpu_size_call_return2(raw_cpu_cmpxchg_, pcp, oval, nval)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/percpu-defs.h:339:24: note: expanded from macro '__pcpu_size_call_return2'
339 | case 8: pscr2_ret__ = stem##8(variable, __VA_ARGS__); break; \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: expanded from here
./include/asm-generic/percpu.h:362:2: note: expanded from macro 'raw_cpu_cmpxchg_8'
362 | raw_cpu_generic_cmpxchg(pcp, oval, nval)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/asm-generic/percpu.h:119:2: note: expanded from macro 'raw_cpu_generic_cmpxchg'
119 | raw_cpu_generic_try_cmpxchg(pcp, &__old, nval); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/asm-generic/percpu.h:104:28: note: expanded from macro 'raw_cpu_generic_try_cmpxchg'
104 | typeof(pcp) __val = *__p, __old = *(ovalp); \
| ^ ~~~~~~~~
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment