tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 
WIP.sched/core
head:   4906e0da940c919f1669c365cb2e1434bd0cbbe9
commit: 239a7a08abab3068f29746f53d65c834c1c63579 [138/170] sched/headers: Split 
<linux/sched/task_stack> out of <linux/sched.h>
config: mips-mips_paravirt_defconfig (attached as .config)
compiler: mips64-linux-gnuabi64-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget 
https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
 -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 239a7a08abab3068f29746f53d65c834c1c63579
        # save the attached .config to linux build tree
        make.cross ARCH=mips 

All warnings (new ones prefixed by >>):

   In file included from arch/mips/include/asm/thread_info.h:15:0,
                    from include/linux/thread_info.h:25,
                    from include/asm-generic/preempt.h:4,
                    from ./arch/mips/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:80,
                    from include/linux/interrupt.h:8,
                    from arch/mips/paravirt/paravirt-smp.c:9:
   arch/mips/paravirt/paravirt-smp.c: In function 'paravirt_boot_secondary':
   arch/mips/include/asm/processor.h:384:41: error: implicit declaration of 
function 'task_stack_page' [-Werror=implicit-function-declaration]
    #define __KSTK_TOS(tsk) ((unsigned long)task_stack_page(tsk) + \
                                            ^
>> arch/mips/paravirt/paravirt-smp.c:106:25: note: in expansion of macro 
>> '__KSTK_TOS'
     paravirt_smp_sp[cpu] = __KSTK_TOS(idle);
                            ^~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/__KSTK_TOS +106 arch/mips/paravirt/paravirt-smp.c

18280eda David Daney   2014-05-28    3   * License.  See the file "COPYING" in 
the main directory of this archive
18280eda David Daney   2014-05-28    4   * for more details.
18280eda David Daney   2014-05-28    5   *
18280eda David Daney   2014-05-28    6   * Copyright (C) 2013 Cavium, Inc.
18280eda David Daney   2014-05-28    7   */
18280eda David Daney   2014-05-28    8  
18280eda David Daney   2014-05-28   @9  #include <linux/interrupt.h>
18280eda David Daney   2014-05-28   10  #include <linux/cpumask.h>
18280eda David Daney   2014-05-28   11  #include <linux/kernel.h>
18280eda David Daney   2014-05-28   12  #include <linux/sched.h>
18280eda David Daney   2014-05-28   13  
18280eda David Daney   2014-05-28   14  #include <asm/mipsregs.h>
18280eda David Daney   2014-05-28   15  #include <asm/setup.h>
18280eda David Daney   2014-05-28   16  #include <asm/time.h>
18280eda David Daney   2014-05-28   17  #include <asm/smp.h>
18280eda David Daney   2014-05-28   18  
18280eda David Daney   2014-05-28   19  /*
18280eda David Daney   2014-05-28   20   * Writing the sp releases the CPU, so 
writes must be ordered, gp
18280eda David Daney   2014-05-28   21   * first, then sp.
18280eda David Daney   2014-05-28   22   */
18280eda David Daney   2014-05-28   23  unsigned long paravirt_smp_sp[NR_CPUS];
18280eda David Daney   2014-05-28   24  unsigned long paravirt_smp_gp[NR_CPUS];
18280eda David Daney   2014-05-28   25  
18280eda David Daney   2014-05-28   26  static int numcpus = 1;
18280eda David Daney   2014-05-28   27  
18280eda David Daney   2014-05-28   28  static int __init set_numcpus(char *str)
18280eda David Daney   2014-05-28   29  {
18280eda David Daney   2014-05-28   30          int newval;
18280eda David Daney   2014-05-28   31  
18280eda David Daney   2014-05-28   32          if (get_option(&str, &newval)) {
18280eda David Daney   2014-05-28   33                  if (newval < 1 || 
newval >= NR_CPUS)
18280eda David Daney   2014-05-28   34                          goto bad;
18280eda David Daney   2014-05-28   35                  numcpus = newval;
18280eda David Daney   2014-05-28   36                  return 0;
18280eda David Daney   2014-05-28   37          }
18280eda David Daney   2014-05-28   38  bad:
18280eda David Daney   2014-05-28   39          return -EINVAL;
18280eda David Daney   2014-05-28   40  }
18280eda David Daney   2014-05-28   41  early_param("numcpus", set_numcpus);
18280eda David Daney   2014-05-28   42  
18280eda David Daney   2014-05-28   43  
18280eda David Daney   2014-05-28   44  static void paravirt_smp_setup(void)
18280eda David Daney   2014-05-28   45  {
18280eda David Daney   2014-05-28   46          int id;
18280eda David Daney   2014-05-28   47          unsigned int cpunum = 
get_ebase_cpunum();
18280eda David Daney   2014-05-28   48  
18280eda David Daney   2014-05-28   49          if (WARN_ON(cpunum >= NR_CPUS))
18280eda David Daney   2014-05-28   50                  return;
18280eda David Daney   2014-05-28   51  
18280eda David Daney   2014-05-28   52          /* The present CPUs are 
initially just the boot cpu (CPU 0). */
18280eda David Daney   2014-05-28   53          for (id = 0; id < NR_CPUS; 
id++) {
18280eda David Daney   2014-05-28   54                  set_cpu_possible(id, id 
== 0);
18280eda David Daney   2014-05-28   55                  set_cpu_present(id, id 
== 0);
18280eda David Daney   2014-05-28   56          }
18280eda David Daney   2014-05-28   57          __cpu_number_map[cpunum] = 0;
18280eda David Daney   2014-05-28   58          __cpu_logical_map[0] = cpunum;
18280eda David Daney   2014-05-28   59  
18280eda David Daney   2014-05-28   60          for (id = 0; id < numcpus; 
id++) {
18280eda David Daney   2014-05-28   61                  set_cpu_possible(id, 
true);
18280eda David Daney   2014-05-28   62                  set_cpu_present(id, 
true);
18280eda David Daney   2014-05-28   63                  __cpu_number_map[id] = 
id;
18280eda David Daney   2014-05-28   64                  __cpu_logical_map[id] = 
id;
18280eda David Daney   2014-05-28   65          }
18280eda David Daney   2014-05-28   66  }
18280eda David Daney   2014-05-28   67  
18280eda David Daney   2014-05-28   68  void irq_mbox_ipi(int cpu, unsigned int 
actions);
18280eda David Daney   2014-05-28   69  static void 
paravirt_send_ipi_single(int cpu, unsigned int action)
18280eda David Daney   2014-05-28   70  {
18280eda David Daney   2014-05-28   71          irq_mbox_ipi(cpu, action);
18280eda David Daney   2014-05-28   72  }
18280eda David Daney   2014-05-28   73  
18280eda David Daney   2014-05-28   74  static void 
paravirt_send_ipi_mask(const struct cpumask *mask, unsigned int action)
18280eda David Daney   2014-05-28   75  {
18280eda David Daney   2014-05-28   76          unsigned int cpu;
18280eda David Daney   2014-05-28   77  
8dd92891 Rusty Russell 2015-03-05   78          for_each_cpu(cpu, mask)
18280eda David Daney   2014-05-28   79                  
paravirt_send_ipi_single(cpu, action);
18280eda David Daney   2014-05-28   80  }
18280eda David Daney   2014-05-28   81  
18280eda David Daney   2014-05-28   82  static void 
paravirt_init_secondary(void)
18280eda David Daney   2014-05-28   83  {
18280eda David Daney   2014-05-28   84          unsigned int sr;
18280eda David Daney   2014-05-28   85  
18280eda David Daney   2014-05-28   86          sr = set_c0_status(ST0_BEV);
18280eda David Daney   2014-05-28   87          write_c0_ebase((u32)ebase);
18280eda David Daney   2014-05-28   88  
18280eda David Daney   2014-05-28   89          sr |= STATUSF_IP2; /* Interrupt 
controller on IP2 */
18280eda David Daney   2014-05-28   90          write_c0_status(sr);
18280eda David Daney   2014-05-28   91  
18280eda David Daney   2014-05-28   92          irq_cpu_online();
18280eda David Daney   2014-05-28   93  }
18280eda David Daney   2014-05-28   94  
18280eda David Daney   2014-05-28   95  static void paravirt_smp_finish(void)
18280eda David Daney   2014-05-28   96  {
18280eda David Daney   2014-05-28   97          /* to generate the first CPU 
timer interrupt */
18280eda David Daney   2014-05-28   98          
write_c0_compare(read_c0_count() + mips_hpt_frequency / HZ);
18280eda David Daney   2014-05-28   99          local_irq_enable();
18280eda David Daney   2014-05-28  100  }
18280eda David Daney   2014-05-28  101  
18280eda David Daney   2014-05-28  102  static void paravirt_boot_secondary(int 
cpu, struct task_struct *idle)
18280eda David Daney   2014-05-28  103  {
18280eda David Daney   2014-05-28  104          paravirt_smp_gp[cpu] = 
(unsigned long)task_thread_info(idle);
18280eda David Daney   2014-05-28  105          smp_wmb();
18280eda David Daney   2014-05-28 @106          paravirt_smp_sp[cpu] = 
__KSTK_TOS(idle);
18280eda David Daney   2014-05-28  107  }
18280eda David Daney   2014-05-28  108  
18280eda David Daney   2014-05-28  109  static irqreturn_t 
paravirt_reched_interrupt(int irq, void *dev_id)

:::::: The code at line 106 was first introduced by commit
:::::: 18280edafef1b8ffc920743eddaf6cf6612b1509 MIPS: Add code for new system 
'paravirt'

:::::: TO: David Daney <david.da...@cavium.com>
:::::: CC: Ralf Baechle <r...@linux-mips.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to