Hi Rick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.18-rc5]
[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/Rick-Edgecombe/KASLR-feature-to-randomize-each-loadable-module/20180707-083637
config: um-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=um 

All errors (new ones prefixed by >>):

   mm/vmalloc.c: In function 'modulefraginfo_debug_show':
>> mm/vmalloc.c:2964:41: error: 'MODULES_RAND_LEN' undeclared (first use in 
>> this function); did you mean 'MODULE_NAME_LEN'?
       if (obj->va_start >= MODULES_VADDR + MODULES_RAND_LEN)
                                            ^~~~~~~~~~~~~~~~
                                            MODULE_NAME_LEN
   mm/vmalloc.c:2964:41: note: each undeclared identifier is reported only once 
for each function it appears in

vim +2964 mm/vmalloc.c

  2933  
  2934  #if defined(CONFIG_DEBUG_FS) && defined(CONFIG_X86_64)
  2935  #if defined(CONFIG_RANDOMIZE_BASE)
  2936  static void print_backup_area(struct seq_file *m, unsigned long 
backup_cnt)
  2937  {
  2938          if (kaslr_enabled())
  2939                  seq_printf(m, "Allocations in backup area:\t%lu\n", 
backup_cnt);
  2940  }
  2941  #else
  2942  static void print_backup_area(struct seq_file *m, unsigned long 
backup_cnt)
  2943  {
  2944  }
  2945  #endif
  2946  static int modulefraginfo_debug_show(struct seq_file *m, void *v)
  2947  {
  2948          struct list_head *i;
  2949          unsigned long last_end = MODULES_VADDR;
  2950          unsigned long total_free = 0;
  2951          unsigned long largest_free = 0;
  2952          unsigned long backup_cnt = 0;
  2953          unsigned long gap;
  2954  
  2955          spin_lock(&vmap_area_lock);
  2956  
  2957          list_for_each(i, &vmap_area_list) {
  2958                  struct vmap_area *obj = list_entry(i, struct vmap_area, 
list);
  2959  
  2960                  if (!(obj->flags & VM_LAZY_FREE)
  2961                          && obj->va_start >= MODULES_VADDR
  2962                          && obj->va_end <= MODULES_END) {
  2963  
> 2964                          if (obj->va_start >= MODULES_VADDR + 
> MODULES_RAND_LEN)
  2965                                  backup_cnt++;
  2966  
  2967                          gap = (obj->va_start - last_end);
  2968                          if (gap > largest_free)
  2969                                  largest_free = gap;
  2970                          total_free += gap;
  2971  
  2972                          last_end = obj->va_end;
  2973                  }
  2974          }
  2975  
  2976          gap = (MODULES_END - last_end);
  2977          if (gap > largest_free)
  2978                  largest_free = gap;
  2979          total_free += gap;
  2980  
  2981          spin_unlock(&vmap_area_lock);
  2982  
  2983          seq_printf(m, "Largest free space:\t\t%lu\n", largest_free);
  2984          if (total_free)
  2985                  seq_printf(m, "External Memory Fragmentation:\t%lu%%\n",
  2986                          100-(100*largest_free/total_free));
  2987          else
  2988                  seq_puts(m, "External Memory Fragmentation:\t0%%\n");
  2989  
  2990          print_backup_area(m, backup_cnt);
  2991  
  2992          return 0;
  2993  }
  2994  

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