Hi Balbir,

[auto build test ERROR on powerpc/next]
[also build test ERROR on v4.13-rc1 next-20170721]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Balbir-Singh/powerpc-xmon-support-dumping-software-pagetables/20170723-002848
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-akebono_defconfig (attached as .config)
compiler: powerpc-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget 
https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

   arch/powerpc/xmon/xmon.c: In function 'show_pte':
>> arch/powerpc/xmon/xmon.c:2929:6: error: implicit declaration of function 
>> 'pud_huge' [-Werror=implicit-function-declaration]
     if (pud_huge(*pudp)) {
         ^~~~~~~~
>> arch/powerpc/xmon/xmon.c:2942:6: error: implicit declaration of function 
>> 'pmd_huge' [-Werror=implicit-function-declaration]
     if (pmd_huge(*pmdp)) {
         ^~~~~~~~
   cc1: all warnings being treated as errors

vim +/pud_huge +2929 arch/powerpc/xmon/xmon.c

  2874  
  2875  static void show_pte(unsigned long tskv)
  2876  {
  2877          unsigned long addr = 0;
  2878          struct task_struct *tsk = NULL;
  2879          struct mm_struct *mm;
  2880          pgd_t *pgdp;
  2881          pud_t *pudp;
  2882          pmd_t *pmdp;
  2883          pte_t *ptep;
  2884  
  2885          tsk = (struct task_struct *)tskv;
  2886          if (tsk == NULL)
  2887                  mm = &init_mm;
  2888          else
  2889                  mm = tsk->active_mm;
  2890  
  2891          if (mm == NULL)
  2892                  mm = &init_mm;
  2893  
  2894          if (!scanhex(&addr))
  2895                  printf("need address to translate\n");
  2896  
  2897          if (setjmp(bus_error_jmp) != 0) {
  2898                  catch_memory_errors = 0;
  2899                  printf("*** Error dumping pte for task %p\n", tsk);
  2900                  return;
  2901          }
  2902  
  2903          catch_memory_errors = 1;
  2904          sync();
  2905  
  2906          if (mm == &init_mm)
  2907                  pgdp = pgd_offset_k(addr);
  2908          else
  2909                  pgdp = pgd_offset(mm, addr);
  2910  
  2911          if (pgd_none(*pgdp)) {
  2912                  printf("no linux page table for address\n");
  2913                  return;
  2914          }
  2915  
  2916          if (pgd_huge(*pgdp)) {
  2917                  format_pte(pgd_val(*pgdp));
  2918                  return;
  2919          }
  2920          printf("G: 0x%8lx\t", pgd_val(*pgdp));
  2921  
  2922          pudp = pud_offset(pgdp, addr);
  2923  
  2924          if (pud_none(*pudp)) {
  2925                  printf("No valid PUD\n");
  2926                  return;
  2927          }
  2928  
> 2929          if (pud_huge(*pudp)) {
  2930                  format_pte(pud_val(*pudp));
  2931                  return;
  2932          }
  2933          printf("U: 0x%8lx\t", pud_val(*pudp));
  2934  
  2935          pmdp = pmd_offset(pudp, addr);
  2936  
  2937          if (pmd_none(*pmdp)) {
  2938                  printf("No valid PMD\n");
  2939                  return;
  2940          }
  2941  
> 2942          if (pmd_huge(*pmdp)) {
  2943                  format_pte(pmd_val(*pmdp));
  2944                  return;
  2945          }
  2946          printf("M: 0x%8lx\t", pmd_val(*pmdp));
  2947  
  2948          /* pte_offset_map is the same as pte_offset_kernel */
  2949          ptep = pte_offset_kernel(pmdp, addr);
  2950          if (pte_none(*ptep)) {
  2951                  printf("no valid PTE\n");
  2952                  return;
  2953          }
  2954  
  2955          format_pte(pte_val(*ptep));
  2956  
  2957          sync();
  2958          __delay(200);
  2959          catch_memory_errors = 0;
  2960  }
  2961  static void show_tasks(void)
  2962  {
  2963          unsigned long tskv;
  2964          struct task_struct *tsk = NULL;
  2965  
  2966          printf("     task_struct     ->thread.ksp    PID   PPID S  P 
CMD\n");
  2967  
  2968          if (scanhex(&tskv))
  2969                  tsk = (struct task_struct *)tskv;
  2970  
  2971          if (setjmp(bus_error_jmp) != 0) {
  2972                  catch_memory_errors = 0;
  2973                  printf("*** Error dumping task %p\n", tsk);
  2974                  return;
  2975          }
  2976  
  2977          catch_memory_errors = 1;
  2978          sync();
  2979  
  2980          if (tsk)
  2981                  show_task(tsk);
  2982          else
  2983                  for_each_process(tsk)
  2984                          show_task(tsk);
  2985  
  2986          sync();
  2987          __delay(200);
  2988          catch_memory_errors = 0;
  2989  }
  2990  

---
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