From: kernel test robot <lkp@intel.com>
To: cros-kernel-buildreports@googlegroups.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [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'
Date: Fri, 13 Mar 2026 13:20:01 +0800 [thread overview]
Message-ID: <202603131307.pWrNppVT-lkp@intel.com> (raw)
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
reply other threads:[~2026-03-13 5:20 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202603131307.pWrNppVT-lkp@intel.com \
--to=lkp@intel.com \
--cc=cros-kernel-buildreports@googlegroups.com \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.