Hi Jonathan,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-xe/drm-xe-next]
[also build test ERROR on next-20250218]
[cannot apply to linus/master v6.14-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Jonathan-Cavitt/drm-xe-xe_exec_queue-Add-ID-param-to-exec-queue-struct/20250219-042528
base:   https://gitlab.freedesktop.org/drm/xe/kernel.git drm-xe-next
patch link:    
https://lore.kernel.org/r/20250218202426.103151-7-jonathan.cavitt%40intel.com
patch subject: [PATCH v2 6/6] drm/xe/xe_query: Add support for per-drm-client 
reset stat querying
config: xtensa-randconfig-001-20250219 
(https://download.01.org/0day-ci/archive/20250219/202502191202.it7kbp8q-...@intel.com/config)
compiler: xtensa-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250219/202502191202.it7kbp8q-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202502191202.it7kbp8q-...@intel.com/

All errors (new ones prefixed by >>):

   drivers/gpu/drm/xe/xe_query.c: In function 'calc_reset_stats_size':
>> drivers/gpu/drm/xe/xe_query.c:749:26: error: 'struct xe_drm_client' has no 
>> member named 'blame_lock'
     749 |         spin_lock(&client->blame_lock);
         |                          ^~
>> drivers/gpu/drm/xe/xe_query.c:750:62: error: 'struct xe_drm_client' has no 
>> member named 'blame_len'
     750 |         size += sizeof(struct drm_xe_exec_queue_ban) * 
client->blame_len;
         |                                                              ^~
   drivers/gpu/drm/xe/xe_query.c:751:26: error: 'struct xe_drm_client' has no 
member named 'blame_lock'
     751 |         spin_lock(&client->blame_lock);
         |                          ^~
   drivers/gpu/drm/xe/xe_query.c: In function 'query_reset_stats':
>> drivers/gpu/drm/xe/xe_query.c:778:47: error: 'struct xe_drm_client' has no 
>> member named 'reset_count'
     778 |         resp.reset_count = atomic_read(&client->reset_count);
         |                                               ^~
   drivers/gpu/drm/xe/xe_query.c:780:26: error: 'struct xe_drm_client' has no 
member named 'blame_lock'
     780 |         spin_lock(&client->blame_lock);
         |                          ^~
   drivers/gpu/drm/xe/xe_query.c:781:32: error: 'struct xe_drm_client' has no 
member named 'blame_len'
     781 |         resp.ban_count = client->blame_len;
         |                                ^~
   In file included from include/linux/list.h:5,
                    from include/linux/smp.h:12,
                    from include/linux/sched/clock.h:5,
                    from drivers/gpu/drm/xe/xe_query.c:9:
>> drivers/gpu/drm/xe/xe_query.c:782:39: error: 'struct xe_drm_client' has no 
>> member named 'blame_list'
     782 |         list_for_each_entry(b, &client->blame_list, list) {
         |                                       ^~
   include/linux/container_of.h:19:33: note: in definition of macro 
'container_of'
      19 |         void *__mptr = (void *)(ptr);                                
   \
         |                                 ^~~
   include/linux/list.h:612:9: note: in expansion of macro 'list_entry'
     612 |         list_entry((ptr)->next, type, member)
         |         ^~~~~~~~~~
   include/linux/list.h:770:20: note: in expansion of macro 'list_first_entry'
     770 |         for (pos = list_first_entry(head, typeof(*pos), member);     
   \
         |                    ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/xe/xe_query.c:782:9: note: in expansion of macro 
'list_for_each_entry'
     782 |         list_for_each_entry(b, &client->blame_list, list) {
         |         ^~~~~~~~~~~~~~~~~~~
   In file included from include/linux/container_of.h:5:
>> drivers/gpu/drm/xe/xe_query.c:782:39: error: 'struct xe_drm_client' has no 
>> member named 'blame_list'
     782 |         list_for_each_entry(b, &client->blame_list, list) {
         |                                       ^~
   include/linux/build_bug.h:78:56: note: in definition of macro 
'__static_assert'
      78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
         |                                                        ^~~~
   include/linux/container_of.h:20:9: note: in expansion of macro 
'static_assert'
      20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||    
   \
         |         ^~~~~~~~~~~~~
   include/linux/container_of.h:20:23: note: in expansion of macro '__same_type'
      20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||    
   \
         |                       ^~~~~~~~~~~
   include/linux/list.h:601:9: note: in expansion of macro 'container_of'
     601 |         container_of(ptr, type, member)
         |         ^~~~~~~~~~~~
   include/linux/list.h:612:9: note: in expansion of macro 'list_entry'
     612 |         list_entry((ptr)->next, type, member)
         |         ^~~~~~~~~~
   include/linux/list.h:770:20: note: in expansion of macro 'list_first_entry'
     770 |         for (pos = list_first_entry(head, typeof(*pos), member);     
   \
         |                    ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/xe/xe_query.c:782:9: note: in expansion of macro 
'list_for_each_entry'
     782 |         list_for_each_entry(b, &client->blame_list, list) {
         |         ^~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/xe/xe_query.c:782:39: error: 'struct xe_drm_client' has no 
>> member named 'blame_list'
     782 |         list_for_each_entry(b, &client->blame_list, list) {
         |                                       ^~
   include/linux/build_bug.h:78:56: note: in definition of macro 
'__static_assert'
      78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
         |                                                        ^~~~
   include/linux/container_of.h:20:9: note: in expansion of macro 
'static_assert'
      20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||    
   \
         |         ^~~~~~~~~~~~~
   include/linux/container_of.h:21:23: note: in expansion of macro '__same_type'
      21 |                       __same_type(*(ptr), void),                     
   \
         |                       ^~~~~~~~~~~
   include/linux/list.h:601:9: note: in expansion of macro 'container_of'
     601 |         container_of(ptr, type, member)
         |         ^~~~~~~~~~~~
   include/linux/list.h:612:9: note: in expansion of macro 'list_entry'
     612 |         list_entry((ptr)->next, type, member)
         |         ^~~~~~~~~~
   include/linux/list.h:770:20: note: in expansion of macro 'list_first_entry'
     770 |         for (pos = list_first_entry(head, typeof(*pos), member);     
   \
         |                    ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/xe/xe_query.c:782:9: note: in expansion of macro 
'list_for_each_entry'
     782 |         list_for_each_entry(b, &client->blame_list, list) {
         |         ^~~~~~~~~~~~~~~~~~~
   include/linux/compiler_types.h:483:27: error: expression in static assertion 
is not an integer
     483 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), 
typeof(b))
         |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: in definition of macro 
'__static_assert'
      78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
         |                                                        ^~~~
   include/linux/container_of.h:20:9: note: in expansion of macro 
'static_assert'
      20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||    
   \
         |         ^~~~~~~~~~~~~
   include/linux/container_of.h:20:23: note: in expansion of macro '__same_type'
      20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||    
   \
         |                       ^~~~~~~~~~~
   include/linux/list.h:601:9: note: in expansion of macro 'container_of'
     601 |         container_of(ptr, type, member)
         |         ^~~~~~~~~~~~
   include/linux/list.h:612:9: note: in expansion of macro 'list_entry'
     612 |         list_entry((ptr)->next, type, member)
         |         ^~~~~~~~~~
   include/linux/list.h:770:20: note: in expansion of macro 'list_first_entry'
     770 |         for (pos = list_first_entry(head, typeof(*pos), member);     
   \
         |                    ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/xe/xe_query.c:782:9: note: in expansion of macro 
'list_for_each_entry'
     782 |         list_for_each_entry(b, &client->blame_list, list) {
         |         ^~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/xe/xe_query.c:782:39: error: 'struct xe_drm_client' has no 
>> member named 'blame_list'
     782 |         list_for_each_entry(b, &client->blame_list, list) {
         |                                       ^~
   include/linux/list.h:761:37: note: in definition of macro 
'list_entry_is_head'
     761 |         list_is_head(&pos->member, (head))
         |                                     ^~~~
   drivers/gpu/drm/xe/xe_query.c:782:9: note: in expansion of macro 
'list_for_each_entry'
     782 |         list_for_each_entry(b, &client->blame_list, list) {
         |         ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/xe/xe_query.c:800:28: error: 'struct xe_drm_client' has no 
member named 'blame_lock'
     800 |         spin_unlock(&client->blame_lock);
         |                            ^~


vim +749 drivers/gpu/drm/xe/xe_query.c

   744  
   745  static size_t calc_reset_stats_size(struct xe_drm_client *client)
   746  {
   747          size_t size = sizeof(struct drm_xe_query_reset_stats);
   748  
 > 749          spin_lock(&client->blame_lock);
 > 750          size += sizeof(struct drm_xe_exec_queue_ban) * 
 > client->blame_len;
   751          spin_lock(&client->blame_lock);
   752  
   753          return size;
   754  }
   755  
   756  static int query_reset_stats(struct xe_device *xe,
   757                               struct drm_xe_device_query *query,
   758                               struct drm_file *file)
   759  {
   760          void __user *query_ptr = u64_to_user_ptr(query->data);
   761          struct drm_xe_query_reset_stats resp;
   762          struct xe_file *xef = to_xe_file(file);
   763          struct xe_drm_client *client = xef->client;
   764          struct blame *b;
   765          size_t size = calc_reset_stats_size(client);
   766          int i = 0;
   767  
   768          if (query->size == 0) {
   769                  query->size = size;
   770                  return 0;
   771          } else if (XE_IOCTL_DBG(xe, query->size != size)) {
   772                  return -EINVAL;
   773          }
   774  
   775          if (copy_from_user(&resp, query_ptr, size))
   776                  return -EFAULT;
   777  
 > 778          resp.reset_count = atomic_read(&client->reset_count);
   779  
   780          spin_lock(&client->blame_lock);
 > 781          resp.ban_count = client->blame_len;
 > 782          list_for_each_entry(b, &client->blame_list, list) {
   783                  struct drm_xe_exec_queue_ban *ban = &resp.ban_list[i++];
   784                  struct pagefault *pf = b->pf;
   785  
   786                  ban->exec_queue_id = b->exec_queue_id;
   787                  ban->pf_found = pf ? 1 : 0;
   788                  if (!pf)
   789                          continue;
   790  
   791                  ban->access_type = pf->access_type;
   792                  ban->fault_type = pf->fault_type;
   793                  ban->vfid = pf->vfid;
   794                  ban->asid = pf->asid;
   795                  ban->pdata = pf->pdata;
   796                  ban->engine_class = 
xe_to_user_engine_class[pf->engine_class];
   797                  ban->engine_instance = pf->engine_instance;
   798                  ban->fault_addr = pf->page_addr;
   799          }
   800          spin_unlock(&client->blame_lock);
   801  
   802          if (copy_to_user(query_ptr, &resp, size))
   803                  return -EFAULT;
   804  
   805          return 0;
   806  }
   807  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to