* [peterz-queue:x86/core 3/3] arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op'.
@ 2023-01-21 10:21 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2023-01-21 10:21 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Peter Zijlstra <peterz@infradead.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/core
head: 700f4c6d925823018a2d09f92de5405065d2ffec
commit: 700f4c6d925823018a2d09f92de5405065d2ffec [3/3] x86/static_call: Add support for Jcc tail-calls
:::::: branch date: 11 hours ago
:::::: commit date: 11 hours ago
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20230121/202301211834.noGVyk06-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
smatch warnings:
arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op'.
vim +/op +98 arch/x86/kernel/static_call.c
700f4c6d925823 Peter Zijlstra 2023-01-20 43
700f4c6d925823 Peter Zijlstra 2023-01-20 44 asm (".global __static_call_return\n\t"
700f4c6d925823 Peter Zijlstra 2023-01-20 45 ".type __static_call_return, @function\n\t"
700f4c6d925823 Peter Zijlstra 2023-01-20 46 ASM_FUNC_ALIGN "\n\t"
700f4c6d925823 Peter Zijlstra 2023-01-20 47 "__static_call_return:\n\t"
700f4c6d925823 Peter Zijlstra 2023-01-20 48 ANNOTATE_NOENDBR
700f4c6d925823 Peter Zijlstra 2023-01-20 49 ANNOTATE_RETPOLINE_SAFE
700f4c6d925823 Peter Zijlstra 2023-01-20 50 "ret; int3\n\t"
700f4c6d925823 Peter Zijlstra 2023-01-20 51 ".size __static_call_return, . - __static_call_return \n\t");
700f4c6d925823 Peter Zijlstra 2023-01-20 52
c27c753ea6fd12 Thomas Gleixner 2022-07-12 53 static void __ref __static_call_transform(void *insn, enum insn_type type,
c27c753ea6fd12 Thomas Gleixner 2022-07-12 54 void *func, bool modinit)
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 55 {
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 56 const void *emulate = NULL;
452cddbff74b6a Peter Zijlstra 2020-08-18 57 int size = CALL_INSN_SIZE;
452cddbff74b6a Peter Zijlstra 2020-08-18 58 const void *code;
700f4c6d925823 Peter Zijlstra 2023-01-20 59 u8 op, buf[6];
700f4c6d925823 Peter Zijlstra 2023-01-20 60
700f4c6d925823 Peter Zijlstra 2023-01-20 61 if ((type == JMP || type == RET) && (op = __is_Jcc(insn)))
700f4c6d925823 Peter Zijlstra 2023-01-20 62 type = JCC;
452cddbff74b6a Peter Zijlstra 2020-08-18 63
452cddbff74b6a Peter Zijlstra 2020-08-18 64 switch (type) {
452cddbff74b6a Peter Zijlstra 2020-08-18 65 case CALL:
7825451fa4dc04 Peter Zijlstra 2022-09-15 66 func = callthunks_translate_call_dest(func);
452cddbff74b6a Peter Zijlstra 2020-08-18 67 code = text_gen_insn(CALL_INSN_OPCODE, insn, func);
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 68 if (func == &__static_call_return0) {
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 69 emulate = code;
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 70 code = &xor5rax;
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 71 }
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 72
452cddbff74b6a Peter Zijlstra 2020-08-18 73 break;
452cddbff74b6a Peter Zijlstra 2020-08-18 74
452cddbff74b6a Peter Zijlstra 2020-08-18 75 case NOP:
a89dfde3dc3c2d Peter Zijlstra 2021-03-12 76 code = x86_nops[5];
452cddbff74b6a Peter Zijlstra 2020-08-18 77 break;
452cddbff74b6a Peter Zijlstra 2020-08-18 78
452cddbff74b6a Peter Zijlstra 2020-08-18 79 case JMP:
452cddbff74b6a Peter Zijlstra 2020-08-18 80 code = text_gen_insn(JMP32_INSN_OPCODE, insn, func);
452cddbff74b6a Peter Zijlstra 2020-08-18 81 break;
452cddbff74b6a Peter Zijlstra 2020-08-18 82
452cddbff74b6a Peter Zijlstra 2020-08-18 83 case RET:
ee88d363d15617 Peter Zijlstra 2022-06-14 84 if (cpu_feature_enabled(X86_FEATURE_RETHUNK))
770ae1b709528a Peter Zijlstra 2022-09-15 85 code = text_gen_insn(JMP32_INSN_OPCODE, insn, x86_return_thunk);
ee88d363d15617 Peter Zijlstra 2022-06-14 86 else
e463a09af2f067 Peter Zijlstra 2021-12-04 87 code = &retinsn;
452cddbff74b6a Peter Zijlstra 2020-08-18 88 break;
700f4c6d925823 Peter Zijlstra 2023-01-20 89
700f4c6d925823 Peter Zijlstra 2023-01-20 90 case JCC:
700f4c6d925823 Peter Zijlstra 2023-01-20 91 if (!func) {
700f4c6d925823 Peter Zijlstra 2023-01-20 92 func = __static_call_return;
700f4c6d925823 Peter Zijlstra 2023-01-20 93 if (cpu_feature_enabled(X86_FEATURE_RETHUNK))
700f4c6d925823 Peter Zijlstra 2023-01-20 94 func = x86_return_thunk;
700f4c6d925823 Peter Zijlstra 2023-01-20 95 }
700f4c6d925823 Peter Zijlstra 2023-01-20 96
700f4c6d925823 Peter Zijlstra 2023-01-20 97 buf[0] = 0x0f;
700f4c6d925823 Peter Zijlstra 2023-01-20 @98 __text_gen_insn(buf+1, op, insn+1, func, 5);
700f4c6d925823 Peter Zijlstra 2023-01-20 99 code = buf;
700f4c6d925823 Peter Zijlstra 2023-01-20 100 size = 6;
700f4c6d925823 Peter Zijlstra 2023-01-20 101
700f4c6d925823 Peter Zijlstra 2023-01-20 102 break;
452cddbff74b6a Peter Zijlstra 2020-08-18 103 }
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 104
452cddbff74b6a Peter Zijlstra 2020-08-18 105 if (memcmp(insn, code, size) == 0)
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 106 return;
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 107
c27c753ea6fd12 Thomas Gleixner 2022-07-12 108 if (system_state == SYSTEM_BOOTING || modinit)
a945c8345ec0de Peter Zijlstra 2020-08-18 109 return text_poke_early(insn, code, size);
a945c8345ec0de Peter Zijlstra 2020-08-18 110
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 111 text_poke_bp(insn, code, size, emulate);
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 112 }
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 113
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] 4+ messages in thread
* [peterz-queue:x86/core 3/3] arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op'.
@ 2023-01-23 12:02 Dan Carpenter
2023-01-23 15:23 ` Peter Zijlstra
0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2023-01-23 12:02 UTC (permalink / raw)
To: oe-kbuild, Peter Zijlstra; +Cc: lkp, oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/core
head: 700f4c6d925823018a2d09f92de5405065d2ffec
commit: 700f4c6d925823018a2d09f92de5405065d2ffec [3/3] x86/static_call: Add support for Jcc tail-calls
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20230121/202301211834.noGVyk06-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
smatch warnings:
arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op'.
vim +/op +98 arch/x86/kernel/static_call.c
c27c753ea6fd12 Thomas Gleixner 2022-07-12 53 static void __ref __static_call_transform(void *insn, enum insn_type type,
c27c753ea6fd12 Thomas Gleixner 2022-07-12 54 void *func, bool modinit)
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 55 {
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 56 const void *emulate = NULL;
452cddbff74b6a Peter Zijlstra 2020-08-18 57 int size = CALL_INSN_SIZE;
452cddbff74b6a Peter Zijlstra 2020-08-18 58 const void *code;
700f4c6d925823 Peter Zijlstra 2023-01-20 59 u8 op, buf[6];
700f4c6d925823 Peter Zijlstra 2023-01-20 60
700f4c6d925823 Peter Zijlstra 2023-01-20 61 if ((type == JMP || type == RET) && (op = __is_Jcc(insn)))
700f4c6d925823 Peter Zijlstra 2023-01-20 62 type = JCC;
Smatch is concerned that type can start as "JCC".
452cddbff74b6a Peter Zijlstra 2020-08-18 63
452cddbff74b6a Peter Zijlstra 2020-08-18 64 switch (type) {
452cddbff74b6a Peter Zijlstra 2020-08-18 65 case CALL:
7825451fa4dc04 Peter Zijlstra 2022-09-15 66 func = callthunks_translate_call_dest(func);
452cddbff74b6a Peter Zijlstra 2020-08-18 67 code = text_gen_insn(CALL_INSN_OPCODE, insn, func);
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 68 if (func == &__static_call_return0) {
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 69 emulate = code;
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 70 code = &xor5rax;
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 71 }
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 72
452cddbff74b6a Peter Zijlstra 2020-08-18 73 break;
452cddbff74b6a Peter Zijlstra 2020-08-18 74
452cddbff74b6a Peter Zijlstra 2020-08-18 75 case NOP:
a89dfde3dc3c2d Peter Zijlstra 2021-03-12 76 code = x86_nops[5];
452cddbff74b6a Peter Zijlstra 2020-08-18 77 break;
452cddbff74b6a Peter Zijlstra 2020-08-18 78
452cddbff74b6a Peter Zijlstra 2020-08-18 79 case JMP:
452cddbff74b6a Peter Zijlstra 2020-08-18 80 code = text_gen_insn(JMP32_INSN_OPCODE, insn, func);
452cddbff74b6a Peter Zijlstra 2020-08-18 81 break;
452cddbff74b6a Peter Zijlstra 2020-08-18 82
452cddbff74b6a Peter Zijlstra 2020-08-18 83 case RET:
ee88d363d15617 Peter Zijlstra 2022-06-14 84 if (cpu_feature_enabled(X86_FEATURE_RETHUNK))
770ae1b709528a Peter Zijlstra 2022-09-15 85 code = text_gen_insn(JMP32_INSN_OPCODE, insn, x86_return_thunk);
ee88d363d15617 Peter Zijlstra 2022-06-14 86 else
e463a09af2f067 Peter Zijlstra 2021-12-04 87 code = &retinsn;
452cddbff74b6a Peter Zijlstra 2020-08-18 88 break;
700f4c6d925823 Peter Zijlstra 2023-01-20 89
700f4c6d925823 Peter Zijlstra 2023-01-20 90 case JCC:
700f4c6d925823 Peter Zijlstra 2023-01-20 91 if (!func) {
700f4c6d925823 Peter Zijlstra 2023-01-20 92 func = __static_call_return;
700f4c6d925823 Peter Zijlstra 2023-01-20 93 if (cpu_feature_enabled(X86_FEATURE_RETHUNK))
700f4c6d925823 Peter Zijlstra 2023-01-20 94 func = x86_return_thunk;
700f4c6d925823 Peter Zijlstra 2023-01-20 95 }
700f4c6d925823 Peter Zijlstra 2023-01-20 96
700f4c6d925823 Peter Zijlstra 2023-01-20 97 buf[0] = 0x0f;
700f4c6d925823 Peter Zijlstra 2023-01-20 @98 __text_gen_insn(buf+1, op, insn+1, func, 5);
700f4c6d925823 Peter Zijlstra 2023-01-20 99 code = buf;
700f4c6d925823 Peter Zijlstra 2023-01-20 100 size = 6;
700f4c6d925823 Peter Zijlstra 2023-01-20 101
700f4c6d925823 Peter Zijlstra 2023-01-20 102 break;
452cddbff74b6a Peter Zijlstra 2020-08-18 103 }
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 104
452cddbff74b6a Peter Zijlstra 2020-08-18 105 if (memcmp(insn, code, size) == 0)
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 106 return;
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 107
c27c753ea6fd12 Thomas Gleixner 2022-07-12 108 if (system_state == SYSTEM_BOOTING || modinit)
a945c8345ec0de Peter Zijlstra 2020-08-18 109 return text_poke_early(insn, code, size);
a945c8345ec0de Peter Zijlstra 2020-08-18 110
3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 111 text_poke_bp(insn, code, size, emulate);
e6d6c071f22de2 Josh Poimboeuf 2020-08-18 112 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [peterz-queue:x86/core 3/3] arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op'.
2023-01-23 12:02 [peterz-queue:x86/core 3/3] arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op' Dan Carpenter
@ 2023-01-23 15:23 ` Peter Zijlstra
2023-01-23 15:46 ` Dan Carpenter
0 siblings, 1 reply; 4+ messages in thread
From: Peter Zijlstra @ 2023-01-23 15:23 UTC (permalink / raw)
To: Dan Carpenter; +Cc: oe-kbuild, lkp, oe-kbuild-all
On Mon, Jan 23, 2023 at 03:02:54PM +0300, Dan Carpenter wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/core
> head: 700f4c6d925823018a2d09f92de5405065d2ffec
> commit: 700f4c6d925823018a2d09f92de5405065d2ffec [3/3] x86/static_call: Add support for Jcc tail-calls
> config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20230121/202301211834.noGVyk06-lkp@intel.com/config)
> compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
>
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Dan Carpenter <error27@gmail.com>
>
> smatch warnings:
> arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op'.
>
> vim +/op +98 arch/x86/kernel/static_call.c
>
> c27c753ea6fd12 Thomas Gleixner 2022-07-12 53 static void __ref __static_call_transform(void *insn, enum insn_type type,
> c27c753ea6fd12 Thomas Gleixner 2022-07-12 54 void *func, bool modinit)
> e6d6c071f22de2 Josh Poimboeuf 2020-08-18 55 {
> 3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 56 const void *emulate = NULL;
> 452cddbff74b6a Peter Zijlstra 2020-08-18 57 int size = CALL_INSN_SIZE;
> 452cddbff74b6a Peter Zijlstra 2020-08-18 58 const void *code;
> 700f4c6d925823 Peter Zijlstra 2023-01-20 59 u8 op, buf[6];
> 700f4c6d925823 Peter Zijlstra 2023-01-20 60
> 700f4c6d925823 Peter Zijlstra 2023-01-20 61 if ((type == JMP || type == RET) && (op = __is_Jcc(insn)))
> 700f4c6d925823 Peter Zijlstra 2023-01-20 62 type = JCC;
>
> Smatch is concerned that type can start as "JCC".
It can't. What's the normal way to shut this kind of warnings up?
Something like BUG_ON(type==JCC); should squash that value I suppose,
but it does seems a bit crude.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [peterz-queue:x86/core 3/3] arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op'.
2023-01-23 15:23 ` Peter Zijlstra
@ 2023-01-23 15:46 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2023-01-23 15:46 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: oe-kbuild, lkp, oe-kbuild-all
On Mon, Jan 23, 2023 at 04:23:21PM +0100, Peter Zijlstra wrote:
> On Mon, Jan 23, 2023 at 03:02:54PM +0300, Dan Carpenter wrote:
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/core
> > head: 700f4c6d925823018a2d09f92de5405065d2ffec
> > commit: 700f4c6d925823018a2d09f92de5405065d2ffec [3/3] x86/static_call: Add support for Jcc tail-calls
> > config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20230121/202301211834.noGVyk06-lkp@intel.com/config)
> > compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
> >
> > If you fix the issue, kindly add following tag where applicable
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Reported-by: Dan Carpenter <error27@gmail.com>
> >
> > smatch warnings:
> > arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op'.
> >
> > vim +/op +98 arch/x86/kernel/static_call.c
> >
> > c27c753ea6fd12 Thomas Gleixner 2022-07-12 53 static void __ref __static_call_transform(void *insn, enum insn_type type,
> > c27c753ea6fd12 Thomas Gleixner 2022-07-12 54 void *func, bool modinit)
> > e6d6c071f22de2 Josh Poimboeuf 2020-08-18 55 {
> > 3f2a8fc4b15de1 Peter Zijlstra 2021-01-18 56 const void *emulate = NULL;
> > 452cddbff74b6a Peter Zijlstra 2020-08-18 57 int size = CALL_INSN_SIZE;
> > 452cddbff74b6a Peter Zijlstra 2020-08-18 58 const void *code;
> > 700f4c6d925823 Peter Zijlstra 2023-01-20 59 u8 op, buf[6];
> > 700f4c6d925823 Peter Zijlstra 2023-01-20 60
> > 700f4c6d925823 Peter Zijlstra 2023-01-20 61 if ((type == JMP || type == RET) && (op = __is_Jcc(insn)))
> > 700f4c6d925823 Peter Zijlstra 2023-01-20 62 type = JCC;
> >
> > Smatch is concerned that type can start as "JCC".
>
> It can't. What's the normal way to shut this kind of warnings up?
>
> Something like BUG_ON(type==JCC); should squash that value I suppose,
> but it does seems a bit crude.
We could just ignore it. These are one time only emails.
This code hasn't hit linux-next yet, so I don't have it on my system.
It may be that using the cross function DB silences the warning.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-01-23 15:47 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-23 12:02 [peterz-queue:x86/core 3/3] arch/x86/kernel/static_call.c:98 __static_call_transform() error: uninitialized symbol 'op' Dan Carpenter
2023-01-23 15:23 ` Peter Zijlstra
2023-01-23 15:46 ` Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2023-01-21 10:21 kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.