[aegl:resctrl2_v64 2/3] arch/x86/include/asm/resctrl.h:114:45: error: invalid use of undefined type 'struct resctrl_group'

kernel test robot <[email protected]>
Newsgroups gmane.linux.ports.ia64
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git resctrl2_v64
head:   afb7cdd4d64023650b5cc6e003b1aa3d2ab80af1
commit: eda3e6a0e3b6c896d9ced0e8488c06cd373abd2e [2/3] resctrl2: Arch x86 modules for most of the legacy control/monitor functions
config: i386-randconfig-i062-20230703 (https://download.01.org/0day-ci/archive/20230703/[email protected]/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230703/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All error/warnings (new ones prefixed by >>):

   In file included from arch/x86/kernel/process_32.c:55:
>> arch/x86/include/asm/resctrl.h:101:36: warning: 'struct resctrl_group' declared inside parameter list will not be visible outside of this definition or declaration
     101 | bool arch_alloc_resctrl_ids(struct resctrl_group *rg);
         |                                    ^~~~~~~~~~~~~
   arch/x86/include/asm/resctrl.h:102:35: warning: 'struct resctrl_group' declared inside parameter list will not be visible outside of this definition or declaration
     102 | void arch_free_resctrl_ids(struct resctrl_group *rg);
         |                                   ^~~~~~~~~~~~~
   arch/x86/include/asm/resctrl.h:112:66: warning: 'struct resctrl_group' declared inside parameter list will not be visible outside of this definition or declaration
     112 | static inline bool is_closid_match(struct task_struct *t, struct resctrl_group *rg)
         |                                                                  ^~~~~~~~~~~~~
   arch/x86/include/asm/resctrl.h: In function 'is_closid_match':
>> arch/x86/include/asm/resctrl.h:114:45: error: invalid use of undefined type 'struct resctrl_group'
     114 |         return (t->resctrl_ids >> 32) == (rg->resctrl_ids >> 32);
         |                                             ^~
   arch/x86/include/asm/resctrl.h: At top level:
   arch/x86/include/asm/resctrl.h:117:75: warning: 'struct resctrl_group' declared inside parameter list will not be visible outside of this definition or declaration
     117 | static inline bool arch_is_resctrl_id_match(struct task_struct *t, struct resctrl_group *rg)
         |                                                                           ^~~~~~~~~~~~~
   arch/x86/include/asm/resctrl.h: In function 'arch_is_resctrl_id_match':
   arch/x86/include/asm/resctrl.h:119:15: error: invalid use of undefined type 'struct resctrl_group'
     119 |         if (rg->type == DIR_MON)
         |               ^~
>> arch/x86/include/asm/resctrl.h:119:25: error: 'DIR_MON' undeclared (first use in this function)
     119 |         if (rg->type == DIR_MON)
         |                         ^~~~~~~
   arch/x86/include/asm/resctrl.h:119:25: note: each undeclared identifier is reported only once for each function it appears in
   arch/x86/include/asm/resctrl.h:120:44: error: invalid use of undefined type 'struct resctrl_group'
     120 |                 return t->resctrl_ids == rg->resctrl_ids;
         |                                            ^~
>> arch/x86/include/asm/resctrl.h:121:35: error: passing argument 2 of 'is_closid_match' from incompatible pointer type [-Werror=incompatible-pointer-types]
     121 |         return is_closid_match(t, rg);
         |                                   ^~
         |                                   |
         |                                   struct resctrl_group *
   arch/x86/include/asm/resctrl.h:112:81: note: expected 'struct resctrl_group *' but argument is of type 'struct resctrl_group *'
     112 | static inline bool is_closid_match(struct task_struct *t, struct resctrl_group *rg)
         |                                                           ~~~~~~~~~~~~~~~~~~~~~~^~
   arch/x86/include/asm/resctrl.h: At top level:
   arch/x86/include/asm/resctrl.h:124:68: warning: 'struct resctrl_group' declared inside parameter list will not be visible outside of this definition or declaration
     124 | static inline bool arch_set_task_ids(struct task_struct *t, struct resctrl_group *rg)
         |                                                                    ^~~~~~~~~~~~~
   arch/x86/include/asm/resctrl.h: In function 'arch_set_task_ids':
   arch/x86/include/asm/resctrl.h:126:15: error: invalid use of undefined type 'struct resctrl_group'
     126 |         if (rg->type == DIR_MON) {
         |               ^~
   arch/x86/include/asm/resctrl.h:126:25: error: 'DIR_MON' undeclared (first use in this function)
     126 |         if (rg->type == DIR_MON) {
         |                         ^~~~~~~
   arch/x86/include/asm/resctrl.h:127:41: error: passing argument 2 of 'is_closid_match' from incompatible pointer type [-Werror=incompatible-pointer-types]
     127 |                 if (!is_closid_match(t, rg)) {
         |                                         ^~
         |                                         |
         |                                         struct resctrl_group *
   arch/x86/include/asm/resctrl.h:112:81: note: expected 'struct resctrl_group *' but argument is of type 'struct resctrl_group *'
     112 | static inline bool is_closid_match(struct task_struct *t, struct resctrl_group *rg)
         |                                                           ~~~~~~~~~~~~~~~~~~~~~~^~
   In file included from ./arch/x86/include/generated/asm/rwonce.h:1,
                    from include/linux/compiler.h:246,
                    from include/linux/dev_printk.h:14,
                    from include/linux/device.h:15,
                    from include/linux/node.h:18,
                    from include/linux/cpu.h:17,
                    from arch/x86/kernel/process_32.c:12:
   arch/x86/include/asm/resctrl.h:133:38: error: invalid use of undefined type 'struct resctrl_group'
     133 |         WRITE_ONCE(t->resctrl_ids, rg->resctrl_ids);
         |                                      ^~
   include/asm-generic/rwonce.h:55:40: note: in definition of macro '__WRITE_ONCE'
      55 |         *(volatile typeof(x) *)&(x) = (val);                            \
         |                                        ^~~
   arch/x86/include/asm/resctrl.h:133:9: note: in expansion of macro 'WRITE_ONCE'
     133 |         WRITE_ONCE(t->resctrl_ids, rg->resctrl_ids);
         |         ^~~~~~~~~~
   cc1: some warnings being treated as errors
--
>> fs/resctrl2/arch/x86/alloc.c:55:6: warning: no previous prototype for 'closid_free' [-Wmissing-prototypes]
      55 | void closid_free(int closid)
         |      ^~~~~~~~~~~
--
   fs/resctrl2/arch/x86/rdt_monitor.c: In function 'rdt_rmid_read':
>> fs/resctrl2/arch/x86/rdt_monitor.c:304:26: warning: variable 'm' set but not used [-Wunused-but-set-variable]
     304 |         struct mydomain *m;
         |                          ^


vim +114 arch/x86/include/asm/resctrl.h

   100	
 > 101	bool arch_alloc_resctrl_ids(struct resctrl_group *rg);
   102	void arch_free_resctrl_ids(struct resctrl_group *rg);
   103	bool arch_init_alloc_ids(struct resctrl_resource *r);
   104	int rmid_alloc(int prmid);
   105	void rmid_free(int rmid);
   106	void arch_add_monitor(int mon_event);
   107	void arch_del_monitor(int mon_event);
   108	u64 rdt_rmid_read(int domain_id, int rmid, int event);
   109	void rdt_mbm_apply_quirk(int num_rmids);
   110	u64 get_corrected_mbm_count(u32 rmid, unsigned long val);
   111	
   112	static inline bool is_closid_match(struct task_struct *t, struct resctrl_group *rg)
   113	{
 > 114		return (t->resctrl_ids >> 32) == (rg->resctrl_ids >> 32);
   115	}
   116	
   117	static inline bool arch_is_resctrl_id_match(struct task_struct *t, struct resctrl_group *rg)
   118	{
 > 119		if (rg->type == DIR_MON)
   120			return t->resctrl_ids == rg->resctrl_ids;
 > 121		return is_closid_match(t, rg);
   122	}
   123	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.