Hi Sahara,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.16 next-20180409]
[cannot apply to tip/x86/core]
[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/kpark3469-gmail-com/usercopy-reimplement-arch_within_stack_frames/20180409-221953
config: x86_64-randconfig-s0-04100256 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/gpu//drm/drm_mm.c: In function 'save_stack':
   drivers/gpu//drm/drm_mm.c:109:9: error: variable 'trace' has initializer but 
incomplete type
     struct stack_trace trace = {
            ^~~~~~~~~~~
>> drivers/gpu//drm/drm_mm.c:110:3: error: unknown field 'entries' specified in 
>> initializer
      .entries = entries,
      ^
   drivers/gpu//drm/drm_mm.c:110:14: warning: excess elements in struct 
initializer
      .entries = entries,
                 ^~~~~~~
   drivers/gpu//drm/drm_mm.c:110:14: note: (near initialization for 'trace')
>> drivers/gpu//drm/drm_mm.c:111:3: error: unknown field 'max_entries' 
>> specified in initializer
      .max_entries = STACKDEPTH,
      ^
   drivers/gpu//drm/drm_mm.c:103:20: warning: excess elements in struct 
initializer
    #define STACKDEPTH 32
                       ^
   drivers/gpu//drm/drm_mm.c:111:18: note: in expansion of macro 'STACKDEPTH'
      .max_entries = STACKDEPTH,
                     ^~~~~~~~~~
   drivers/gpu//drm/drm_mm.c:103:20: note: (near initialization for 'trace')
    #define STACKDEPTH 32
                       ^
   drivers/gpu//drm/drm_mm.c:111:18: note: in expansion of macro 'STACKDEPTH'
      .max_entries = STACKDEPTH,
                     ^~~~~~~~~~
>> drivers/gpu//drm/drm_mm.c:112:3: error: unknown field 'skip' specified in 
>> initializer
      .skip = 1
      ^
   drivers/gpu//drm/drm_mm.c:112:11: warning: excess elements in struct 
initializer
      .skip = 1
              ^
   drivers/gpu//drm/drm_mm.c:112:11: note: (near initialization for 'trace')
   drivers/gpu//drm/drm_mm.c:109:21: error: storage size of 'trace' isn't known
     struct stack_trace trace = {
                        ^~~~~
>> drivers/gpu//drm/drm_mm.c:115:2: error: implicit declaration of function 
>> 'save_stack_trace' [-Werror=implicit-function-declaration]
     save_stack_trace(&trace);
     ^~~~~~~~~~~~~~~~
   drivers/gpu//drm/drm_mm.c:109:21: warning: unused variable 'trace' 
[-Wunused-variable]
     struct stack_trace trace = {
                        ^~~~~
   drivers/gpu//drm/drm_mm.c: In function 'show_leaks':
   drivers/gpu//drm/drm_mm.c:135:10: error: variable 'trace' has initializer 
but incomplete type
      struct stack_trace trace = {
             ^~~~~~~~~~~
   drivers/gpu//drm/drm_mm.c:136:4: error: unknown field 'entries' specified in 
initializer
       .entries = entries,
       ^
   drivers/gpu//drm/drm_mm.c:136:15: warning: excess elements in struct 
initializer
       .entries = entries,
                  ^~~~~~~
   drivers/gpu//drm/drm_mm.c:136:15: note: (near initialization for 'trace')
   drivers/gpu//drm/drm_mm.c:137:4: error: unknown field 'max_entries' 
specified in initializer
       .max_entries = STACKDEPTH
       ^
   drivers/gpu//drm/drm_mm.c:103:20: warning: excess elements in struct 
initializer
    #define STACKDEPTH 32
                       ^
   drivers/gpu//drm/drm_mm.c:137:19: note: in expansion of macro 'STACKDEPTH'
       .max_entries = STACKDEPTH
                      ^~~~~~~~~~
   drivers/gpu//drm/drm_mm.c:103:20: note: (near initialization for 'trace')
    #define STACKDEPTH 32
                       ^
   drivers/gpu//drm/drm_mm.c:137:19: note: in expansion of macro 'STACKDEPTH'
       .max_entries = STACKDEPTH
                      ^~~~~~~~~~
   drivers/gpu//drm/drm_mm.c:135:22: error: storage size of 'trace' isn't known
      struct stack_trace trace = {
                         ^~~~~
   drivers/gpu//drm/drm_mm.c:147:3: error: implicit declaration of function 
'snprint_stack_trace' [-Werror=implicit-function-declaration]
      snprint_stack_trace(buf, BUFSZ, &trace, 0);
      ^~~~~~~~~~~~~~~~~~~
   drivers/gpu//drm/drm_mm.c:135:22: warning: unused variable 'trace' 
[-Wunused-variable]
      struct stack_trace trace = {
                         ^~~~~
   cc1: some warnings being treated as errors

vim +/max_entries +111 drivers/gpu//drm/drm_mm.c

5705670d Chris Wilson 2016-10-31  105  
5705670d Chris Wilson 2016-10-31  106  static noinline void save_stack(struct 
drm_mm_node *node)
5705670d Chris Wilson 2016-10-31  107  {
5705670d Chris Wilson 2016-10-31  108   unsigned long entries[STACKDEPTH];
5705670d Chris Wilson 2016-10-31 @109   struct stack_trace trace = {
5705670d Chris Wilson 2016-10-31 @110           .entries = entries,
5705670d Chris Wilson 2016-10-31 @111           .max_entries = STACKDEPTH,
5705670d Chris Wilson 2016-10-31 @112           .skip = 1
5705670d Chris Wilson 2016-10-31  113   };
5705670d Chris Wilson 2016-10-31  114  
5705670d Chris Wilson 2016-10-31 @115   save_stack_trace(&trace);
5705670d Chris Wilson 2016-10-31  116   if (trace.nr_entries != 0 &&
5705670d Chris Wilson 2016-10-31  117       trace.entries[trace.nr_entries-1] 
== ULONG_MAX)
5705670d Chris Wilson 2016-10-31  118           trace.nr_entries--;
5705670d Chris Wilson 2016-10-31  119  
5705670d Chris Wilson 2016-10-31  120   /* May be called under spinlock, so 
avoid sleeping */
5705670d Chris Wilson 2016-10-31  121   node->stack = depot_save_stack(&trace, 
GFP_NOWAIT);
5705670d Chris Wilson 2016-10-31  122  }
5705670d Chris Wilson 2016-10-31  123  

:::::: The code at line 111 was first introduced by commit
:::::: 5705670d0463423337c82d00877989e7df8b169d drm: Track drm_mm allocators 
and show leaks on shutdown

:::::: TO: Chris Wilson <ch...@chris-wilson.co.uk>
:::::: CC: Daniel Vetter <daniel.vet...@ffwll.ch>

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