CC: [email protected]
CC: "Pan, Kris" <[email protected]>

tree:   https://github.com/intel/linux-intel-lts.git 4.19/android_r
head:   bab33a719ee83c9aa6b042027bf76e0c6916eeed
commit: b652a52d36a85d1b731921ba08e701d7150ce200 [19120/24281] Merge branch 
'aosp/android-4.19-stable' into android_r
:::::: branch date: 2 days ago
:::::: commit date: 11 months ago
config: i386-randconfig-s002-20210730 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # 
https://github.com/intel/linux-intel-lts/commit/b652a52d36a85d1b731921ba08e701d7150ce200
        git remote add intel-linux-intel-lts 
https://github.com/intel/linux-intel-lts.git
        git fetch --no-tags intel-linux-intel-lts 4.19/android_r
        git checkout b652a52d36a85d1b731921ba08e701d7150ce200
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir 
ARCH=i386 SHELL=/bin/bash arch/x86/kernel/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
>> arch/x86/kernel/smp.c:273:1: sparse: sparse: unused label 'finish'
   arch/x86/kernel/smp.c:190:16: warning: no previous prototype for 
'smp_reboot_interrupt' [-Wmissing-prototypes]
     190 | __visible void smp_reboot_interrupt(struct pt_regs *regs)
         |                ^~~~~~~~~~~~~~~~~~~~
   arch/x86/kernel/smp.c: In function 'native_stop_other_cpus':
   arch/x86/kernel/smp.c:273:1: warning: label 'finish' defined but not used 
[-Wunused-label]
     273 | finish:
         | ^~~~~~
   arch/x86/kernel/smp.c: At top level:
   arch/x86/kernel/smp.c:285:28: warning: no previous prototype for 
'smp_reschedule_interrupt' [-Wmissing-prototypes]
     285 | __visible void __irq_entry smp_reschedule_interrupt(struct pt_regs 
*regs)
         |                            ^~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kernel/smp.c:306:28: warning: no previous prototype for 
'smp_call_function_interrupt' [-Wmissing-prototypes]
     306 | __visible void __irq_entry smp_call_function_interrupt(struct 
pt_regs *regs)
         |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kernel/smp.c:316:28: warning: no previous prototype for 
'smp_call_function_single_interrupt' [-Wmissing-prototypes]
     316 | __visible void __irq_entry smp_call_function_single_interrupt(struct 
pt_regs *r)
         |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

vim +/finish +273 arch/x86/kernel/smp.c

ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  204  
5d2b86d90f7cc4 Don Zickus     2012-05-11  205  static void 
native_stop_other_cpus(int wait)
f9e47a126be2ea Glauber Costa  2008-03-03  206  {
f9e47a126be2ea Glauber Costa  2008-03-03  207   unsigned long flags;
76fac077db6b34 Alok Kataria   2010-10-11  208   unsigned long timeout;
f9e47a126be2ea Glauber Costa  2008-03-03  209  
f9e47a126be2ea Glauber Costa  2008-03-03  210   if (reboot_force)
f9e47a126be2ea Glauber Costa  2008-03-03  211           return;
f9e47a126be2ea Glauber Costa  2008-03-03  212  
4ef702c10b5df1 Andi Kleen     2009-05-27  213   /*
4ef702c10b5df1 Andi Kleen     2009-05-27  214    * Use an own vector here 
because smp_call_function
4ef702c10b5df1 Andi Kleen     2009-05-27  215    * does lots of things not 
suitable in a panic situation.
7d007d21e539db Don Zickus     2012-05-11  216    */
7d007d21e539db Don Zickus     2012-05-11  217  
7d007d21e539db Don Zickus     2012-05-11  218   /*
7d007d21e539db Don Zickus     2012-05-11  219    * We start by using the 
REBOOT_VECTOR irq.
7d007d21e539db Don Zickus     2012-05-11  220    * The irq is treated as a sync 
point to allow critical
7d007d21e539db Don Zickus     2012-05-11  221    * regions of code on other 
cpus to release their spin locks
7d007d21e539db Don Zickus     2012-05-11  222    * and re-enable irqs.  Jumping 
straight to an NMI might
7d007d21e539db Don Zickus     2012-05-11  223    * accidentally cause deadlocks 
with further shutdown/panic
7d007d21e539db Don Zickus     2012-05-11  224    * code.  By syncing, we give 
the cpus up to one second to
7d007d21e539db Don Zickus     2012-05-11  225    * finish their work before we 
force them off with the NMI.
4ef702c10b5df1 Andi Kleen     2009-05-27  226    */
4ef702c10b5df1 Andi Kleen     2009-05-27  227   if (num_online_cpus() > 1) {
7d007d21e539db Don Zickus     2012-05-11  228           /* did someone beat us 
here? */
7d007d21e539db Don Zickus     2012-05-11  229           if 
(atomic_cmpxchg(&stopping_cpu, -1, safe_smp_processor_id()) != -1)
7d007d21e539db Don Zickus     2012-05-11  230                   return;
7d007d21e539db Don Zickus     2012-05-11  231  
7d007d21e539db Don Zickus     2012-05-11  232           /* sync above data 
before sending IRQ */
7d007d21e539db Don Zickus     2012-05-11  233           wmb();
7d007d21e539db Don Zickus     2012-05-11  234  
4ef702c10b5df1 Andi Kleen     2009-05-27  235           
apic->send_IPI_allbutself(REBOOT_VECTOR);
4ef702c10b5df1 Andi Kleen     2009-05-27  236  
76fac077db6b34 Alok Kataria   2010-10-11  237           /*
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  238            * Don't wait longer 
than a second for IPI completion. The
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  239            * wait request is not 
checked here because that would
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  240            * prevent an NMI 
shutdown attempt in case that not all
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  241            * CPUs reach shutdown 
state.
76fac077db6b34 Alok Kataria   2010-10-11  242            */
76fac077db6b34 Alok Kataria   2010-10-11  243           timeout = USEC_PER_SEC;
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  244           while 
(num_online_cpus() > 1 && timeout--)
4ef702c10b5df1 Andi Kleen     2009-05-27  245                   udelay(1);
4ef702c10b5df1 Andi Kleen     2009-05-27  246   }
4ef702c10b5df1 Andi Kleen     2009-05-27  247  
7d007d21e539db Don Zickus     2012-05-11  248   /* if the REBOOT_VECTOR didn't 
work, try with the NMI */
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  249   if (num_online_cpus() > 1) {
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  250           /*
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  251            * If NMI IPI is 
enabled, try to register the stop handler
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  252            * and send the IPI. In 
any case try to wait for the other
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  253            * CPUs to stop.
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  254            */
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  255           if (!smp_no_nmi_ipi && 
!register_stop_handler()) {
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  256                   /* Sync above 
data before sending IRQ */
7d007d21e539db Don Zickus     2012-05-11  257                   wmb();
7d007d21e539db Don Zickus     2012-05-11  258  
7d007d21e539db Don Zickus     2012-05-11  259                   
pr_emerg("Shutting down cpus with NMI\n");
7d007d21e539db Don Zickus     2012-05-11  260  
7d007d21e539db Don Zickus     2012-05-11  261                   
apic->send_IPI_allbutself(NMI_VECTOR);
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  262           }
7d007d21e539db Don Zickus     2012-05-11  263           /*
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  264            * Don't wait longer 
than 10 ms if the caller didn't
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  265            * reqeust it. If wait 
is true, the machine hangs here if
ce7fdd5cd83e0a Grzegorz Halat 2019-06-28  266            * one or more CPUs do 
not reach shutdown state.
7d007d21e539db Don Zickus     2012-05-11  267            */
7d007d21e539db Don Zickus     2012-05-11  268           timeout = USEC_PER_MSEC 
* 10;
7d007d21e539db Don Zickus     2012-05-11  269           while 
(num_online_cpus() > 1 && (wait || timeout--))
7d007d21e539db Don Zickus     2012-05-11  270                   udelay(1);
7d007d21e539db Don Zickus     2012-05-11  271   }
7d007d21e539db Don Zickus     2012-05-11  272  
7d007d21e539db Don Zickus     2012-05-11 @273  finish:
cd7b77710e3d52 Duan, YayongX  2017-12-27  274   store_regs(NULL);
f9e47a126be2ea Glauber Costa  2008-03-03  275   local_irq_save(flags);
f9e47a126be2ea Glauber Costa  2008-03-03  276   disable_local_APIC();
8838eb6c0bf3b6 Ashok Raj      2015-08-12  277   
mcheck_cpu_clear(this_cpu_ptr(&cpu_info));
f9e47a126be2ea Glauber Costa  2008-03-03  278   local_irq_restore(flags);
f9e47a126be2ea Glauber Costa  2008-03-03  279  }
f9e47a126be2ea Glauber Costa  2008-03-03  280  

:::::: The code at line 273 was first introduced by commit
:::::: 7d007d21e539dbecb6942c5734e6649f720982cf x86/reboot: Use NMI to assist 
in shutting down if IRQ fails

:::::: TO: Don Zickus <[email protected]>
:::::: CC: Ingo Molnar <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to