[android-common:android16-6.12-desktop 1/1] drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_pasid_table_param'
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild-all |
|---|---|
| Message-ID | <[email protected]> |
Hi Aashish, FYI, the error/warning still remains. tree: https://android.googlesource.com/kernel/common android16-6.12-desktop head: 24c37396da197463e1ff2bc69bb789e34dacad53 commit: 40e05d87082111caf1fa83b9b288e93f3cd021df [1/1] ANDROID: iommu/vt-d: Paravirtualize PASID table updates config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20260819/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260819/[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 errors (new ones prefixed by >>): | ^ drivers/iommu/intel/iommu_pkvm.h:36:16: note: in expansion of macro 'pkvm_iommu_hypercall' 36 | return pkvm_iommu_hypercall(iommu_set_lm_ce, lm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/kvm_pkvm.h:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_lm_context_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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:36:16: note: in expansion of macro 'pkvm_iommu_hypercall' 36 | return pkvm_iommu_hypercall(iommu_set_lm_ce, lm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_set_sm_ce': drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_sm_context_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_sm_context_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_sm_context_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_sm_context_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/kvm_pkvm.h:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_sm_context_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_clear_pasid_entry': drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_clear_translation_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_clear_translation_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_clear_translation_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_clear_translation_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/kvm_pkvm.h:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_clear_translation_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_set_pasid_fl': >> drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ >> arch/x86/include/asm/kvm_pkvm.h:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_pasid_table_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_set_pasid_sl': >> drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 16 | *p = *(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); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 16 | *p = *(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); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 18 | *(param) = *p; \ | ^ 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:18:26: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 18 | *(param) = *p; \ | ^ 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:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_pasid_table_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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:36:16: note: in expansion of macro 'pkvm_iommu_hypercall' 36 | return pkvm_iommu_hypercall(iommu_set_lm_ce, lm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/kvm_pkvm.h:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_lm_context_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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:36:16: note: in expansion of macro 'pkvm_iommu_hypercall' 36 | return pkvm_iommu_hypercall(iommu_set_lm_ce, lm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_set_sm_ce': drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_sm_context_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_sm_context_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_sm_context_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_sm_context_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/kvm_pkvm.h:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_sm_context_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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:41:16: note: in expansion of macro 'pkvm_iommu_hypercall' 41 | return pkvm_iommu_hypercall(iommu_set_sm_ce, sm_context_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_clear_pasid_entry': drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_clear_translation_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_clear_translation_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_clear_translation_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_clear_translation_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ arch/x86/include/asm/kvm_pkvm.h:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_clear_translation_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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:46:16: note: in expansion of macro 'pkvm_iommu_hypercall' 46 | return pkvm_iommu_hypercall(iommu_clear_pasid_entry, clear_translation_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_set_pasid_fl': >> drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 16 | *p = *(param); \ | ^ drivers/iommu/intel/iommu_pkvm.h:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:26: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 18 | *(param) = *p; \ | ^ drivers/iommu/intel/iommu_pkvm.h:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ >> arch/x86/include/asm/kvm_pkvm.h:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_pasid_table_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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:51:16: note: in expansion of macro 'pkvm_iommu_hypercall' 51 | return pkvm_iommu_hypercall(iommu_set_pasid_fl, pasid_table_param, param); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h: In function 'pkvm_hc_iommu_set_pasid_sl': >> drivers/iommu/intel/iommu_pkvm.h:16:22: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 16 | *p = *(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); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:16:20: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 16 | *p = *(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); | ^~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu_pkvm.h:18:28: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 18 | *(param) = *p; \ | ^ 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:18:26: error: invalid use of undefined type 'struct pkvm_pasid_table_param' 18 | *(param) = *p; \ | ^ 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:315:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_pasid_table_param' 315 | 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:315:17: note: in expansion of macro 'memset' 315 | 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.c: In function 'pv_context_mapping': drivers/iommu/intel/iommu.c:1459:16: error: variable 'param' has initializer but incomplete type 1459 | struct pkvm_lm_context_param param = { | ^~~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu.c:1460:18: error: 'struct pkvm_lm_context_param' has no member named 'phys' 1460 | .phys = iommu->reg_phys, | ^~~~ drivers/iommu/intel/iommu.c:1460:25: warning: excess elements in struct initializer 1460 | .phys = iommu->reg_phys, | ^~~~~ drivers/iommu/intel/iommu.c:1460:25: note: (near initialization for 'param') drivers/iommu/intel/iommu.c:1461:18: error: 'struct pkvm_lm_context_param' has no member named 'bdf' 1461 | .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:1461:24: note: in expansion of macro 'PCI_DEVID' 1461 | .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:1461:24: note: in expansion of macro 'PCI_DEVID' 1461 | .bdf = PCI_DEVID(bus, devfn), | ^~~~~~~~~ drivers/iommu/intel/iommu.c:1462:18: error: 'struct pkvm_lm_context_param' has no member named 'domain_pgd_gpa' 1462 | .domain_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:1462:35: note: in expansion of macro 'virt_to_phys' 1462 | .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:1462:35: note: in expansion of macro 'virt_to_phys' 1462 | .domain_pgd_gpa = virt_to_phys(domain->pgd), | ^~~~~~~~~~~~ drivers/iommu/intel/iommu.c:1463:18: error: 'struct pkvm_lm_context_param' has no member named 'did' 1463 | .did = domain_id_iommu(domain, iommu), | ^~~ drivers/iommu/intel/iommu.c:1463:24: warning: excess elements in struct initializer 1463 | .did = domain_id_iommu(domain, iommu), | ^~~~~~~~~~~~~~~ drivers/iommu/intel/iommu.c:1463:24: note: (near initialization for 'param') drivers/iommu/intel/iommu.c:1464:18: error: 'struct pkvm_lm_context_param' has no member named 'ats_supported' 1464 | .ats_supported = info ? info->ats_supported : 0, | ^~~~~~~~~~~~~ drivers/iommu/intel/iommu.c:1464:34: warning: excess elements in struct initializer 1464 | .ats_supported = info ? info->ats_supported : 0, | ^~~~ drivers/iommu/intel/iommu.c:1464:34: note: (near initialization for 'param') drivers/iommu/intel/iommu.c:1459:38: error: storage size of 'param' isn't known 1459 | struct pkvm_lm_context_param param = { | ^~~~~ drivers/iommu/intel/iommu.c:1459:38: warning: unused variable 'param' [-Wunused-variable] drivers/iommu/intel/iommu.c: In function 'pv_context_clear': drivers/iommu/intel/iommu.c:1743:16: error: variable 'param' has initializer but incomplete type 1743 | struct pkvm_clear_translation_param param = { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iommu/intel/iommu.c:1744:18: error: 'struct pkvm_clear_translation_param' has no member named 'phys' 1744 | .phys = info->iommu->reg_phys, | ^~~~ drivers/iommu/intel/iommu.c:1744:25: warning: excess elements in struct initializer 1744 | .phys = info->iommu->reg_phys, | ^~~~ drivers/iommu/intel/iommu.c:1744:25: note: (near initialization for 'param') drivers/iommu/intel/iommu.c:1745:18: error: 'struct pkvm_clear_translation_param' has no member named 'bdf' 1745 | .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:1745:24: note: in expansion of macro 'PCI_DEVID' 1745 | .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:1745:24: note: in expansion of macro 'PCI_DEVID' 1745 | .bdf = PCI_DEVID(bus, devfn), .. vim +16 drivers/iommu/intel/iommu_pkvm.h 14d98d9e4203286 Aashish Sharma 2025-11-06 10 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 11 #define pkvm_iommu_hypercall(hc, param_name, param) \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 12 ({ \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 13 unsigned long f; \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 14 struct pkvm_##param_name *p = get_this_pv_param(param_name, f); \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 15 int ret; \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 @16 *p = *(param); \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 17 ret = pkvm_hypercall(hc, (unsigned long)p); \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 18 *(param) = *p; \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 @19 put_this_pv_param(p, f); \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 20 ret; \ 157ba06fef4bdb6 Vineeth Pillai 2025-10-12 21 }) 157ba06fef4bdb6 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 <[email protected]> :::::: CC: Tomasz Nowicki <[email protected]> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki