* [android-common:android16-6.12-desktop 17/17] drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_iommu_map_param'
@ 2026-03-13 5:20 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-03-13 5:20 UTC (permalink / raw)
To: cros-kernel-buildreports; +Cc: oe-kbuild-all
Hi Vineeth,
FYI, the error/warning still remains.
tree: https://android.googlesource.com/kernel/common android16-6.12-desktop
head: 6e8e96179140c3b15e8cec8ee8510e05991fc932
commit: a50249ddd81d8447488e9ad265fe0a99880dcea0 [17/17] ANDROID: iommu/vt-d: Paravirtualize domain pagetable management
config: x86_64-randconfig-073-20260311 (https://download.01.org/0day-ci/archive/20260313/202603131307.pWrNppVT-lkp@intel.com/config)
compiler: gcc-13 (Debian 13.3.0-16) 13.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260313/202603131307.pWrNppVT-lkp@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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603131307.pWrNppVT-lkp@intel.com/
All errors (new ones prefixed by >>):
| ^
drivers/iommu/intel/iommu_pkvm.h:56:16: note: in expansion of macro 'pkvm_iommu_hypercall'
56 | return pkvm_iommu_hypercall(iommu_set_pasid_sl, pasid_table_param, param);
| ^~~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/kvm_pkvm.h:326:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_pasid_table_param'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^
include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk'
502 | size_t __fortify_size = (size_t)(size); \
| ^~~~
arch/x86/include/asm/kvm_pkvm.h:326:17: note: in expansion of macro 'memset'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^~~~~~
drivers/iommu/intel/iommu_pkvm.h:19:17: note: in expansion of macro 'put_this_pv_param'
19 | put_this_pv_param(p, f); \
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:56:16: note: in expansion of macro 'pkvm_iommu_hypercall'
56 | return pkvm_iommu_hypercall(iommu_set_pasid_sl, pasid_table_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_domain_alloc':
drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_domain_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_domain_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_domain_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_domain_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/kvm_pkvm.h:326:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_domain_param'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^
include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk'
502 | size_t __fortify_size = (size_t)(size); \
| ^~~~
arch/x86/include/asm/kvm_pkvm.h:326:17: note: in expansion of macro 'memset'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^~~~~~
drivers/iommu/intel/iommu_pkvm.h:19:17: note: in expansion of macro 'put_this_pv_param'
19 | put_this_pv_param(p, f); \
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_domain_free':
drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_domain_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_domain_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_domain_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_domain_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/kvm_pkvm.h:326:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_domain_param'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^
include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk'
502 | size_t __fortify_size = (size_t)(size); \
| ^~~~
arch/x86/include/asm/kvm_pkvm.h:326:17: note: in expansion of macro 'memset'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^~~~~~
drivers/iommu/intel/iommu_pkvm.h:19:17: note: in expansion of macro 'put_this_pv_param'
19 | put_this_pv_param(p, f); \
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_map_pages':
>> drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_iommu_map_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_iommu_map_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_iommu_map_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_iommu_map_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/kvm_pkvm.h:326:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_iommu_map_param'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^
include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk'
502 | size_t __fortify_size = (size_t)(size); \
| ^~~~
arch/x86/include/asm/kvm_pkvm.h:326:17: note: in expansion of macro 'memset'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^~~~~~
drivers/iommu/intel/iommu_pkvm.h:19:17: note: in expansion of macro 'put_this_pv_param'
19 | put_this_pv_param(p, f); \
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
--
| ^
drivers/iommu/intel/iommu_pkvm.h:56:16: note: in expansion of macro 'pkvm_iommu_hypercall'
56 | return pkvm_iommu_hypercall(iommu_set_pasid_sl, pasid_table_param, param);
| ^~~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/kvm_pkvm.h:326:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_pasid_table_param'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^
include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk'
502 | size_t __fortify_size = (size_t)(size); \
| ^~~~
arch/x86/include/asm/kvm_pkvm.h:326:17: note: in expansion of macro 'memset'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^~~~~~
drivers/iommu/intel/iommu_pkvm.h:19:17: note: in expansion of macro 'put_this_pv_param'
19 | put_this_pv_param(p, f); \
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:56:16: note: in expansion of macro 'pkvm_iommu_hypercall'
56 | return pkvm_iommu_hypercall(iommu_set_pasid_sl, pasid_table_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_domain_alloc':
drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_domain_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_domain_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_domain_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_domain_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/kvm_pkvm.h:326:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_domain_param'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^
include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk'
502 | size_t __fortify_size = (size_t)(size); \
| ^~~~
arch/x86/include/asm/kvm_pkvm.h:326:17: note: in expansion of macro 'memset'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^~~~~~
drivers/iommu/intel/iommu_pkvm.h:19:17: note: in expansion of macro 'put_this_pv_param'
19 | put_this_pv_param(p, f); \
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:61:16: note: in expansion of macro 'pkvm_iommu_hypercall'
61 | return pkvm_iommu_hypercall(iommu_domain_alloc, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_domain_free':
drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_domain_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_domain_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_domain_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_domain_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/kvm_pkvm.h:326:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_domain_param'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^
include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk'
502 | size_t __fortify_size = (size_t)(size); \
| ^~~~
arch/x86/include/asm/kvm_pkvm.h:326:17: note: in expansion of macro 'memset'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^~~~~~
drivers/iommu/intel/iommu_pkvm.h:19:17: note: in expansion of macro 'put_this_pv_param'
19 | put_this_pv_param(p, f); \
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:66:16: note: in expansion of macro 'pkvm_iommu_hypercall'
66 | return pkvm_iommu_hypercall(iommu_domain_free, domain_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_map_pages':
>> drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_iommu_map_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_iommu_map_param'
16 | *p = *(param); \
| ^
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_iommu_map_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_iommu_map_param'
18 | *(param) = *p; \
| ^
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/kvm_pkvm.h:326:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_iommu_map_param'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^
include/linux/fortify-string.h:502:42: note: in definition of macro '__fortify_memset_chk'
502 | size_t __fortify_size = (size_t)(size); \
| ^~~~
arch/x86/include/asm/kvm_pkvm.h:326:17: note: in expansion of macro 'memset'
326 | memset(ptr, 0, sizeof(*ptr)); \
| ^~~~~~
drivers/iommu/intel/iommu_pkvm.h:19:17: note: in expansion of macro 'put_this_pv_param'
19 | put_this_pv_param(p, f); \
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu_pkvm.h:72:16: note: in expansion of macro 'pkvm_iommu_hypercall'
72 | return pkvm_iommu_hypercall(iommu_map_pages, iommu_map_param, param);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c: At top level:
drivers/iommu/intel/iommu.c:939:40: warning: 'struct pkvm_memcache' declared inside parameter list will not be visible outside of this definition or declaration
939 | static int fill_domain_memcache(struct pkvm_memcache *mc, unsigned long nr_pages,
| ^~~~~~~~~~~~~
drivers/iommu/intel/iommu.c: In function 'fill_domain_memcache':
>> drivers/iommu/intel/iommu.c:947:16: error: implicit declaration of function '__topup_pkvm_memcache' [-Werror=implicit-function-declaration]
947 | return __topup_pkvm_memcache(mc, nr_pages, domain_mc_alloc_fn,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c: At top level:
drivers/iommu/intel/iommu.c:951:41: warning: 'struct pkvm_memcache' declared inside parameter list will not be visible outside of this definition or declaration
951 | static void free_domain_memcache(struct pkvm_memcache *mc)
| ^~~~~~~~~~~~~
drivers/iommu/intel/iommu.c: In function 'free_domain_memcache':
>> drivers/iommu/intel/iommu.c:953:9: error: implicit declaration of function '__free_pkvm_memcache' [-Werror=implicit-function-declaration]
953 | __free_pkvm_memcache(mc, domain_mc_free_fn, host_va, NULL);
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c: In function 'pv_domain_free':
drivers/iommu/intel/iommu.c:1436:16: error: variable 'param' has initializer but incomplete type
1436 | struct pkvm_domain_param param = {
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1437:18: error: 'struct pkvm_domain_param' has no member named 'pgd_gpa'
1437 | .pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~
In file included from include/linux/kexec.h:20:
arch/x86/include/asm/io.h:155:22: warning: excess elements in struct initializer
155 | #define virt_to_phys virt_to_phys
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1437:28: note: in expansion of macro 'virt_to_phys'
1437 | .pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~~~~~~
arch/x86/include/asm/io.h:155:22: note: (near initialization for 'param')
155 | #define virt_to_phys virt_to_phys
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1437:28: note: in expansion of macro 'virt_to_phys'
1437 | .pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1436:34: error: storage size of 'param' isn't known
1436 | struct pkvm_domain_param param = {
| ^~~~~
drivers/iommu/intel/iommu.c:1436:34: warning: unused variable 'param' [-Wunused-variable]
drivers/iommu/intel/iommu.c: In function 'pv_context_mapping':
drivers/iommu/intel/iommu.c:1528:16: error: variable 'param' has initializer but incomplete type
1528 | struct pkvm_lm_context_param param = {
| ^~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1529:18: error: 'struct pkvm_lm_context_param' has no member named 'phys'
1529 | .phys = iommu->reg_phys,
| ^~~~
drivers/iommu/intel/iommu.c:1529:25: warning: excess elements in struct initializer
1529 | .phys = iommu->reg_phys,
| ^~~~~
drivers/iommu/intel/iommu.c:1529:25: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:1530:18: error: 'struct pkvm_lm_context_param' has no member named 'bdf'
1530 | .bdf = PCI_DEVID(bus, devfn),
| ^~~
In file included from drivers/iommu/intel/iommu.c:20:
include/linux/pci.h:72:33: warning: excess elements in struct initializer
72 | #define PCI_DEVID(bus, devfn) ((((u16)(bus)) << 8) | (devfn))
| ^
drivers/iommu/intel/iommu.c:1530:24: note: in expansion of macro 'PCI_DEVID'
1530 | .bdf = PCI_DEVID(bus, devfn),
| ^~~~~~~~~
include/linux/pci.h:72:33: note: (near initialization for 'param')
72 | #define PCI_DEVID(bus, devfn) ((((u16)(bus)) << 8) | (devfn))
| ^
drivers/iommu/intel/iommu.c:1530:24: note: in expansion of macro 'PCI_DEVID'
1530 | .bdf = PCI_DEVID(bus, devfn),
| ^~~~~~~~~
drivers/iommu/intel/iommu.c:1531:18: error: 'struct pkvm_lm_context_param' has no member named 'domain_pgd_gpa'
1531 | .domain_pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~~~~~~~~
arch/x86/include/asm/io.h:155:22: warning: excess elements in struct initializer
155 | #define virt_to_phys virt_to_phys
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1531:35: note: in expansion of macro 'virt_to_phys'
1531 | .domain_pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~~~~~~
arch/x86/include/asm/io.h:155:22: note: (near initialization for 'param')
155 | #define virt_to_phys virt_to_phys
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1531:35: note: in expansion of macro 'virt_to_phys'
1531 | .domain_pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1532:18: error: 'struct pkvm_lm_context_param' has no member named 'did'
1532 | .did = domain_id_iommu(domain, iommu),
| ^~~
drivers/iommu/intel/iommu.c:1532:24: warning: excess elements in struct initializer
1532 | .did = domain_id_iommu(domain, iommu),
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1532:24: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:1533:18: error: 'struct pkvm_lm_context_param' has no member named 'ats_supported'
1533 | .ats_supported = info ? info->ats_supported : 0,
| ^~~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1533:34: warning: excess elements in struct initializer
1533 | .ats_supported = info ? info->ats_supported : 0,
| ^~~~
drivers/iommu/intel/iommu.c:1533:34: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:1534:18: error: 'struct pkvm_lm_context_param' has no member named 'ats_qdep'
1534 | .ats_qdep = info->ats_qdep,
| ^~~~~~~~
drivers/iommu/intel/iommu.c:1534:29: warning: excess elements in struct initializer
1534 | .ats_qdep = info->ats_qdep,
| ^~~~
drivers/iommu/intel/iommu.c:1534:29: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:1528:38: error: storage size of 'param' isn't known
1528 | struct pkvm_lm_context_param param = {
| ^~~~~
drivers/iommu/intel/iommu.c:1528:38: warning: unused variable 'param' [-Wunused-variable]
drivers/iommu/intel/iommu.c: In function 'pv_domain_mapping':
drivers/iommu/intel/iommu.c:1705:16: error: variable 'param' has initializer but incomplete type
1705 | struct pkvm_iommu_map_param param = {
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/iommu/intel/iommu.c:1706:18: error: 'struct pkvm_iommu_map_param' has no member named 'pgd_gpa'
1706 | .pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~
arch/x86/include/asm/io.h:155:22: warning: excess elements in struct initializer
155 | #define virt_to_phys virt_to_phys
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1706:28: note: in expansion of macro 'virt_to_phys'
1706 | .pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~~~~~~
arch/x86/include/asm/io.h:155:22: note: (near initialization for 'param')
155 | #define virt_to_phys virt_to_phys
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1706:28: note: in expansion of macro 'virt_to_phys'
1706 | .pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~~~~~~
>> drivers/iommu/intel/iommu.c:1707:18: error: 'struct pkvm_iommu_map_param' has no member named 'iov_pfn'
1707 | .iov_pfn = iov_pfn,
| ^~~~~~~
drivers/iommu/intel/iommu.c:1707:28: warning: excess elements in struct initializer
1707 | .iov_pfn = iov_pfn,
| ^~~~~~~
drivers/iommu/intel/iommu.c:1707:28: note: (near initialization for 'param')
>> drivers/iommu/intel/iommu.c:1708:18: error: 'struct pkvm_iommu_map_param' has no member named 'phys_pfn'
1708 | .phys_pfn = phys_pfn,
| ^~~~~~~~
drivers/iommu/intel/iommu.c:1708:29: warning: excess elements in struct initializer
1708 | .phys_pfn = phys_pfn,
| ^~~~~~~~
drivers/iommu/intel/iommu.c:1708:29: note: (near initialization for 'param')
>> drivers/iommu/intel/iommu.c:1709:18: error: 'struct pkvm_iommu_map_param' has no member named 'nr_pages'
1709 | .nr_pages = nr_pages,
| ^~~~~~~~
drivers/iommu/intel/iommu.c:1709:29: warning: excess elements in struct initializer
1709 | .nr_pages = nr_pages,
| ^~~~~~~~
drivers/iommu/intel/iommu.c:1709:29: note: (near initialization for 'param')
>> drivers/iommu/intel/iommu.c:1710:18: error: 'struct pkvm_iommu_map_param' has no member named 'prot'
1710 | .prot = prot,
| ^~~~
drivers/iommu/intel/iommu.c:1710:25: warning: excess elements in struct initializer
1710 | .prot = prot,
| ^~~~
drivers/iommu/intel/iommu.c:1710:25: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:1705:37: error: storage size of 'param' isn't known
1705 | struct pkvm_iommu_map_param param = {
| ^~~~~
>> drivers/iommu/intel/iommu.c:1716:55: error: implicit declaration of function '__pkvm_pgtable_max_pages' [-Werror=implicit-function-declaration]
1716 | ret = fill_domain_memcache(¶m.mc, __pkvm_pgtable_max_pages(nr_pages),
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1705:37: warning: unused variable 'param' [-Wunused-variable]
1705 | struct pkvm_iommu_map_param param = {
| ^~~~~
drivers/iommu/intel/iommu.c: In function 'pv_context_clear':
drivers/iommu/intel/iommu.c:1854:16: error: variable 'param' has initializer but incomplete type
1854 | struct pkvm_clear_translation_param param = {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c:1855:18: error: 'struct pkvm_clear_translation_param' has no member named 'phys'
1855 | .phys = info->iommu->reg_phys,
| ^~~~
drivers/iommu/intel/iommu.c:1855:25: warning: excess elements in struct initializer
1855 | .phys = info->iommu->reg_phys,
| ^~~~
drivers/iommu/intel/iommu.c:1855:25: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:1856:18: error: 'struct pkvm_clear_translation_param' has no member named 'bdf'
1856 | .bdf = PCI_DEVID(bus, devfn),
| ^~~
include/linux/pci.h:72:33: warning: excess elements in struct initializer
72 | #define PCI_DEVID(bus, devfn) ((((u16)(bus)) << 8) | (devfn))
| ^
drivers/iommu/intel/iommu.c:1856:24: note: in expansion of macro 'PCI_DEVID'
1856 | .bdf = PCI_DEVID(bus, devfn),
| ^~~~~~~~~
include/linux/pci.h:72:33: note: (near initialization for 'param')
72 | #define PCI_DEVID(bus, devfn) ((((u16)(bus)) << 8) | (devfn))
| ^
drivers/iommu/intel/iommu.c:1856:24: note: in expansion of macro 'PCI_DEVID'
1856 | .bdf = PCI_DEVID(bus, devfn),
| ^~~~~~~~~
drivers/iommu/intel/iommu.c:1857:18: error: 'struct pkvm_clear_translation_param' has no member named 'ats_qdep'
1857 | .ats_qdep = info->ats_qdep,
| ^~~~~~~~
drivers/iommu/intel/iommu.c:1857:29: warning: excess elements in struct initializer
1857 | .ats_qdep = info->ats_qdep,
| ^~~~
drivers/iommu/intel/iommu.c:1857:29: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:1854:45: error: storage size of 'param' isn't known
1854 | struct pkvm_clear_translation_param param = {
| ^~~~~
drivers/iommu/intel/iommu.c:1854:45: warning: unused variable 'param' [-Wunused-variable]
drivers/iommu/intel/iommu.c: In function 'pv_paging_domain_alloc':
drivers/iommu/intel/iommu.c:3413:16: error: variable 'param' has initializer but incomplete type
3413 | struct pkvm_domain_param param = {
| ^~~~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c:3414:18: error: 'struct pkvm_domain_param' has no member named 'phys'
3414 | .phys = info->iommu->reg_phys,
| ^~~~
drivers/iommu/intel/iommu.c:3414:25: warning: excess elements in struct initializer
3414 | .phys = info->iommu->reg_phys,
| ^~~~
drivers/iommu/intel/iommu.c:3414:25: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:3415:18: error: 'struct pkvm_domain_param' has no member named 'bdf'
3415 | .bdf = PCI_DEVID(info->bus, info->devfn),
| ^~~
include/linux/pci.h:72:33: warning: excess elements in struct initializer
72 | #define PCI_DEVID(bus, devfn) ((((u16)(bus)) << 8) | (devfn))
| ^
drivers/iommu/intel/iommu.c:3415:24: note: in expansion of macro 'PCI_DEVID'
3415 | .bdf = PCI_DEVID(info->bus, info->devfn),
| ^~~~~~~~~
include/linux/pci.h:72:33: note: (near initialization for 'param')
72 | #define PCI_DEVID(bus, devfn) ((((u16)(bus)) << 8) | (devfn))
| ^
drivers/iommu/intel/iommu.c:3415:24: note: in expansion of macro 'PCI_DEVID'
3415 | .bdf = PCI_DEVID(info->bus, info->devfn),
| ^~~~~~~~~
drivers/iommu/intel/iommu.c:3416:18: error: 'struct pkvm_domain_param' has no member named 'use_first_level'
3416 | .use_first_level = domain->use_first_level,
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/iommu.c:3416:36: warning: excess elements in struct initializer
3416 | .use_first_level = domain->use_first_level,
| ^~~~~~
drivers/iommu/intel/iommu.c:3416:36: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:3417:18: error: 'struct pkvm_domain_param' has no member named 'pgd_gpa'
3417 | .pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~
arch/x86/include/asm/io.h:155:22: warning: excess elements in struct initializer
155 | #define virt_to_phys virt_to_phys
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:3417:28: note: in expansion of macro 'virt_to_phys'
3417 | .pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~~~~~~
arch/x86/include/asm/io.h:155:22: note: (near initialization for 'param')
155 | #define virt_to_phys virt_to_phys
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:3417:28: note: in expansion of macro 'virt_to_phys'
3417 | .pgd_gpa = virt_to_phys(domain->pgd),
| ^~~~~~~~~~~~
drivers/iommu/intel/iommu.c:3418:18: error: 'struct pkvm_domain_param' has no member named 'gaw'
3418 | .gaw = domain->gaw,
| ^~~
drivers/iommu/intel/iommu.c:3418:24: warning: excess elements in struct initializer
3418 | .gaw = domain->gaw,
| ^~~~~~
drivers/iommu/intel/iommu.c:3418:24: note: (near initialization for 'param')
drivers/iommu/intel/iommu.c:3419:18: error: 'struct pkvm_domain_param' has no member named 'agaw'
3419 | .agaw = domain->agaw,
| ^~~~
..
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for SND_PCM_IEC958
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_SOC_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_COMPRESS_ACCEL
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_JACK
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_VMASTER
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_JACK_INPUT_DEV
Depends on [n]: SOUND [=n] && SND [=n] && SND_JACK [=y]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_INTEL_NHLT
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y] && ACPI [=y]
WARNING: unmet direct dependencies detected for SND_PCM_ELD
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
vim +16 drivers/iommu/intel/iommu_pkvm.h
14d98d9e420328 Aashish Sharma 2025-11-06 10
157ba06fef4bdb Vineeth Pillai 2025-10-12 11 #define pkvm_iommu_hypercall(hc, param_name, param) \
157ba06fef4bdb Vineeth Pillai 2025-10-12 12 ({ \
157ba06fef4bdb Vineeth Pillai 2025-10-12 13 unsigned long f; \
157ba06fef4bdb Vineeth Pillai 2025-10-12 14 struct pkvm_##param_name *p = get_this_pv_param(param_name, f); \
157ba06fef4bdb Vineeth Pillai 2025-10-12 15 int ret; \
157ba06fef4bdb Vineeth Pillai 2025-10-12 @16 *p = *(param); \
157ba06fef4bdb Vineeth Pillai 2025-10-12 17 ret = pkvm_hypercall(hc, (unsigned long)p); \
157ba06fef4bdb Vineeth Pillai 2025-10-12 18 *(param) = *p; \
157ba06fef4bdb Vineeth Pillai 2025-10-12 19 put_this_pv_param(p, f); \
157ba06fef4bdb Vineeth Pillai 2025-10-12 20 ret; \
157ba06fef4bdb Vineeth Pillai 2025-10-12 21 })
157ba06fef4bdb Vineeth Pillai 2025-10-12 22
:::::: The code at line 16 was first introduced by commit
:::::: 157ba06fef4bdb68af268f6a0e53695c0e4ad373 ANDROID: iommu/vt-d: Paravirtualize legacy context entry updates
:::::: TO: Vineeth Pillai <vineethrp@google.com>
:::::: CC: Tomasz Nowicki <tnowicki@google.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-03-13 5:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-13 5:20 [android-common:android16-6.12-desktop 17/17] drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_iommu_map_param' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.