Hi Ross,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tip/x86/core]
[also build test WARNING on herbert-cryptodev-2.6/master 
herbert-crypto-2.6/master linus/master v6.6 next-20231110]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Ross-Philipson/x86-boot-Place-kernel_info-at-a-fixed-offset/20231111-063453
base:   tip/x86/core
patch link:    
https://lore.kernel.org/r/20231110222751.219836-10-ross.philipson%40oracle.com
patch subject: [PATCH v7 09/13] x86: Secure Launch SMP bringup support
config: x86_64-rhel-8.3-rust 
(https://download.01.org/0day-ci/archive/20231111/[email protected]/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git 
ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20231111/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

>> arch/x86/kernel/smpboot.c:1097:6: warning: variable 'ret' is used 
>> uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
           if (slaunch_is_txt_launch())
               ^~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kernel/smpboot.c:1107:6: note: uninitialized use occurs here
           if (ret)
               ^~~
   arch/x86/kernel/smpboot.c:1097:2: note: remove the 'if' if its condition is 
always false
           if (slaunch_is_txt_launch())
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kernel/smpboot.c:1046:9: note: initialize the variable 'ret' to 
silence this warning
           int ret;
                  ^
                   = 0
   1 warning generated.


vim +1097 arch/x86/kernel/smpboot.c

  1036  
  1037  /*
  1038   * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad
  1039   * (ie clustered apic addressing mode), this is a LOGICAL apic ID.
  1040   * Returns zero if startup was successfully sent, else error code from
  1041   * ->wakeup_secondary_cpu.
  1042   */
  1043  static int do_boot_cpu(u32 apicid, int cpu, struct task_struct *idle)
  1044  {
  1045          unsigned long start_ip = real_mode_header->trampoline_start;
  1046          int ret;
  1047  
  1048  #ifdef CONFIG_X86_64
  1049          /* If 64-bit wakeup method exists, use the 64-bit mode 
trampoline IP */
  1050          if (apic->wakeup_secondary_cpu_64)
  1051                  start_ip = real_mode_header->trampoline_start64;
  1052  #endif
  1053          idle->thread.sp = (unsigned long)task_pt_regs(idle);
  1054          initial_code = (unsigned long)start_secondary;
  1055  
  1056          if (IS_ENABLED(CONFIG_X86_32)) {
  1057                  early_gdt_descr.address = (unsigned 
long)get_cpu_gdt_rw(cpu);
  1058                  initial_stack  = idle->thread.sp;
  1059          } else if (!(smpboot_control & STARTUP_PARALLEL_MASK)) {
  1060                  smpboot_control = cpu;
  1061          }
  1062  
  1063          /* Enable the espfix hack for this CPU */
  1064          init_espfix_ap(cpu);
  1065  
  1066          /* So we see what's up */
  1067          announce_cpu(cpu, apicid);
  1068  
  1069          /*
  1070           * This grunge runs the startup process for
  1071           * the targeted processor.
  1072           */
  1073          if (x86_platform.legacy.warm_reset) {
  1074  
  1075                  pr_debug("Setting warm reset code and vector.\n");
  1076  
  1077                  smpboot_setup_warm_reset_vector(start_ip);
  1078                  /*
  1079                   * Be paranoid about clearing APIC errors.
  1080                  */
  1081                  if (APIC_INTEGRATED(boot_cpu_apic_version)) {
  1082                          apic_write(APIC_ESR, 0);
  1083                          apic_read(APIC_ESR);
  1084                  }
  1085          }
  1086  
  1087          smp_mb();
  1088  
  1089          /*
  1090           * Wake up a CPU in difference cases:
  1091           * - Intel TXT DRTM launch uses its own method to wake the APs
  1092           * - Use a method from the APIC driver if one defined, with 
wakeup
  1093           *   straight to 64-bit mode preferred over wakeup to RM.
  1094           * Otherwise,
  1095           * - Use an INIT boot APIC message
  1096           */
> 1097          if (slaunch_is_txt_launch())
  1098                  slaunch_wakeup_cpu_from_txt(cpu, apicid);
  1099          else if (apic->wakeup_secondary_cpu_64)
  1100                  ret = apic->wakeup_secondary_cpu_64(apicid, start_ip);
  1101          else if (apic->wakeup_secondary_cpu)
  1102                  ret = apic->wakeup_secondary_cpu(apicid, start_ip);
  1103          else
  1104                  ret = wakeup_secondary_cpu_via_init(apicid, start_ip);
  1105  
  1106          /* If the wakeup mechanism failed, cleanup the warm reset 
vector */
  1107          if (ret)
  1108                  arch_cpuhp_cleanup_kick_cpu(cpu);
  1109          return ret;
  1110  }
  1111  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to