Hi Jason,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on v5.5 next-20200204]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Jason-Yan/implement-KASLR-for-powerpc-fsl_booke-64/20200205-105837
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 7.5.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   arch/powerpc/kernel/setup_64.c: In function 'early_setup':
>> arch/powerpc/kernel/setup_64.c:303:2: error: implicit declaration of 
>> function 'kaslr_early_init'; did you mean 'udbg_early_init'? 
>> [-Werror=implicit-function-declaration]
     kaslr_early_init(__va(dt_ptr), 0);
     ^~~~~~~~~~~~~~~~
     udbg_early_init
   cc1: all warnings being treated as errors

vim +303 arch/powerpc/kernel/setup_64.c

   262  
   263  /*
   264   * Early initialization entry point. This is called by head.S
   265   * with MMU translation disabled. We rely on the "feature" of
   266   * the CPU that ignores the top 2 bits of the address in real
   267   * mode so we can access kernel globals normally provided we
   268   * only toy with things in the RMO region. From here, we do
   269   * some early parsing of the device-tree to setup out MEMBLOCK
   270   * data structures, and allocate & initialize the hash table
   271   * and segment tables so we can start running with translation
   272   * enabled.
   273   *
   274   * It is this function which will call the probe() callback of
   275   * the various platform types and copy the matching one to the
   276   * global ppc_md structure. Your platform can eventually do
   277   * some very early initializations from the probe() routine, but
   278   * this is not recommended, be very careful as, for example, the
   279   * device-tree is not accessible via normal means at this point.
   280   */
   281  
   282  void __init early_setup(unsigned long dt_ptr)
   283  {
   284          static __initdata struct paca_struct boot_paca;
   285  
   286          /* -------- printk is _NOT_ safe to use here ! ------- */
   287  
   288          /* Try new device tree based feature discovery ... */
   289          if (!dt_cpu_ftrs_init(__va(dt_ptr)))
   290                  /* Otherwise use the old style CPU table */
   291                  identify_cpu(0, mfspr(SPRN_PVR));
   292  
   293          /* Assume we're on cpu 0 for now. Don't write to the paca yet! 
*/
   294          initialise_paca(&boot_paca, 0);
   295          setup_paca(&boot_paca);
   296          fixup_boot_paca();
   297  
   298          /* -------- printk is now safe to use ------- */
   299  
   300          /* Enable early debugging if any specified (see udbg.h) */
   301          udbg_early_init();
   302  
 > 303          kaslr_early_init(__va(dt_ptr), 0);
   304  
   305          udbg_printf(" -> %s(), dt_ptr: 0x%lx\n", __func__, dt_ptr);
   306  
   307          /*
   308           * Do early initialization using the flattened device
   309           * tree, such as retrieving the physical memory map or
   310           * calculating/retrieving the hash table size.
   311           */
   312          early_init_devtree(__va(dt_ptr));
   313  
   314          /* Now we know the logical id of our boot cpu, setup the paca. 
*/
   315          if (boot_cpuid != 0) {
   316                  /* Poison paca_ptrs[0] again if it's not the boot cpu */
   317                  memset(&paca_ptrs[0], 0x88, sizeof(paca_ptrs[0]));
   318          }
   319          setup_paca(paca_ptrs[boot_cpuid]);
   320          fixup_boot_paca();
   321  
   322          /*
   323           * Configure exception handlers. This include setting up 
trampolines
   324           * if needed, setting exception endian mode, etc...
   325           */
   326          configure_exceptions();
   327  
   328          /*
   329           * Configure Kernel Userspace Protection. This needs to happen 
before
   330           * feature fixups for platforms that implement this using 
features.
   331           */
   332          setup_kup();
   333  
   334          /* Apply all the dynamic patching */
   335          apply_feature_fixups();
   336          setup_feature_keys();
   337  
   338          early_ioremap_setup();
   339  
   340          /* Initialize the hash table or TLB handling */
   341          early_init_mmu();
   342  
   343          /*
   344           * After firmware and early platform setup code has set things 
up,
   345           * we note the SPR values for configurable control/performance
   346           * registers, and use those as initial defaults.
   347           */
   348          record_spr_defaults();
   349  
   350          /*
   351           * At this point, we can let interrupts switch to virtual mode
   352           * (the MMU has been setup), so adjust the MSR in the PACA to
   353           * have IR and DR set and enable AIL if it exists
   354           */
   355          cpu_ready_for_interrupts();
   356  
   357          /*
   358           * We enable ftrace here, but since we only support 
DYNAMIC_FTRACE, it
   359           * will only actually get enabled on the boot cpu much later 
once
   360           * ftrace itself has been initialized.
   361           */
   362          this_cpu_enable_ftrace();
   363  
   364          udbg_printf(" <- %s()\n", __func__);
   365  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to