All of lore.kernel.org
 help / color / mirror / Atom feed
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 18/18] drivers/iommu/intel/iommu.c:1475:18: error: 'struct pkvm_lm_context_param' has no member named 'ats_qdep'
Date: Sat, 13 Dec 2025 20:16:27 +0800	[thread overview]
Message-ID: <202512132021.KA2uz3AF-lkp@intel.com> (raw)

tree:   https://android.googlesource.com/kernel/common android16-6.12-desktop
head:   da2da0badf05a4631edf06f9a37e822b20875663
commit: da2da0badf05a4631edf06f9a37e822b20875663 [18/18] ANDROID: iommu/vt-d: Adapt to pkvm handling of cache flushing.
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20251213/202512132021.KA2uz3AF-lkp@intel.com/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/20251213/202512132021.KA2uz3AF-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/202512132021.KA2uz3AF-lkp@intel.com/

All errors (new ones prefixed by >>):

         |                                      ^
   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:316:38: error: invalid application of 'sizeof' to incomplete type 'struct pkvm_domain_param'
     316 |                 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.c: In function 'pv_context_mapping':
   drivers/iommu/intel/iommu.c:1469:16: error: variable 'param' has initializer but incomplete type
    1469 |         struct pkvm_lm_context_param param = {
         |                ^~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/intel/iommu.c:1470:18: error: 'struct pkvm_lm_context_param' has no member named 'phys'
    1470 |                 .phys = iommu->reg_phys,
         |                  ^~~~
   drivers/iommu/intel/iommu.c:1470:25: warning: excess elements in struct initializer
    1470 |                 .phys = iommu->reg_phys,
         |                         ^~~~~
   drivers/iommu/intel/iommu.c:1470:25: note: (near initialization for 'param')
   drivers/iommu/intel/iommu.c:1471:18: error: 'struct pkvm_lm_context_param' has no member named 'bdf'
    1471 |                 .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:1471:24: note: in expansion of macro 'PCI_DEVID'
    1471 |                 .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:1471:24: note: in expansion of macro 'PCI_DEVID'
    1471 |                 .bdf = PCI_DEVID(bus, devfn),
         |                        ^~~~~~~~~
   drivers/iommu/intel/iommu.c:1472:18: error: 'struct pkvm_lm_context_param' has no member named 'domain_pgd_gpa'
    1472 |                 .domain_pgd_gpa = virt_to_phys(domain->pgd),
         |                  ^~~~~~~~~~~~~~
   In file included from include/linux/kexec.h:20,
                    from include/linux/crash_dump.h:5,
                    from drivers/iommu/intel/iommu.c:16:
   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:1472:35: note: in expansion of macro 'virt_to_phys'
    1472 |                 .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:1472:35: note: in expansion of macro 'virt_to_phys'
    1472 |                 .domain_pgd_gpa = virt_to_phys(domain->pgd),
         |                                   ^~~~~~~~~~~~
   drivers/iommu/intel/iommu.c:1473:18: error: 'struct pkvm_lm_context_param' has no member named 'did'
    1473 |                 .did = domain_id_iommu(domain, iommu),
         |                  ^~~
   drivers/iommu/intel/iommu.c:1473:24: warning: excess elements in struct initializer
    1473 |                 .did = domain_id_iommu(domain, iommu),
         |                        ^~~~~~~~~~~~~~~
   drivers/iommu/intel/iommu.c:1473:24: note: (near initialization for 'param')
   drivers/iommu/intel/iommu.c:1474:18: error: 'struct pkvm_lm_context_param' has no member named 'ats_supported'
    1474 |                 .ats_supported = info ? info->ats_supported : 0,
         |                  ^~~~~~~~~~~~~
   drivers/iommu/intel/iommu.c:1474:34: warning: excess elements in struct initializer
    1474 |                 .ats_supported = info ? info->ats_supported : 0,
         |                                  ^~~~
   drivers/iommu/intel/iommu.c:1474:34: note: (near initialization for 'param')
>> drivers/iommu/intel/iommu.c:1475:18: error: 'struct pkvm_lm_context_param' has no member named 'ats_qdep'
    1475 |                 .ats_qdep = info->ats_qdep,
         |                  ^~~~~~~~
   drivers/iommu/intel/iommu.c:1475:29: warning: excess elements in struct initializer
    1475 |                 .ats_qdep = info->ats_qdep,
         |                             ^~~~
   drivers/iommu/intel/iommu.c:1475:29: note: (near initialization for 'param')
   drivers/iommu/intel/iommu.c:1469:38: error: storage size of 'param' isn't known
    1469 |         struct pkvm_lm_context_param param = {
         |                                      ^~~~~
   drivers/iommu/intel/iommu.c:1469:38: warning: unused variable 'param' [-Wunused-variable]
   drivers/iommu/intel/iommu.c: In function 'pv_context_clear':
   drivers/iommu/intel/iommu.c:1754:16: error: variable 'param' has initializer but incomplete type
    1754 |         struct pkvm_clear_translation_param param = {
         |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/intel/iommu.c:1755:18: error: 'struct pkvm_clear_translation_param' has no member named 'phys'
    1755 |                 .phys = info->iommu->reg_phys,
         |                  ^~~~
   drivers/iommu/intel/iommu.c:1755:25: warning: excess elements in struct initializer
    1755 |                 .phys = info->iommu->reg_phys,
         |                         ^~~~
   drivers/iommu/intel/iommu.c:1755:25: note: (near initialization for 'param')
   drivers/iommu/intel/iommu.c:1756:18: error: 'struct pkvm_clear_translation_param' has no member named 'bdf'
    1756 |                 .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:1756:24: note: in expansion of macro 'PCI_DEVID'
    1756 |                 .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:1756:24: note: in expansion of macro 'PCI_DEVID'
    1756 |                 .bdf = PCI_DEVID(bus, devfn),
         |                        ^~~~~~~~~
   drivers/iommu/intel/iommu.c:1757:18: error: 'struct pkvm_clear_translation_param' has no member named 'ats_qdep'
    1757 |                 .ats_qdep = info->ats_qdep,
         |                  ^~~~~~~~
   drivers/iommu/intel/iommu.c:1757:29: warning: excess elements in struct initializer
    1757 |                 .ats_qdep = info->ats_qdep,
         |                             ^~~~
   drivers/iommu/intel/iommu.c:1757:29: note: (near initialization for 'param')
   drivers/iommu/intel/iommu.c:1754:45: error: storage size of 'param' isn't known
    1754 |         struct pkvm_clear_translation_param param = {
         |                                             ^~~~~
   drivers/iommu/intel/iommu.c:1754:45: warning: unused variable 'param' [-Wunused-variable]
   drivers/iommu/intel/iommu.c: In function 'pv_paging_domain_alloc':
   drivers/iommu/intel/iommu.c:3313:16: error: variable 'param' has initializer but incomplete type
    3313 |         struct pkvm_domain_param param = {
         |                ^~~~~~~~~~~~~~~~~
   drivers/iommu/intel/iommu.c:3314:18: error: 'struct pkvm_domain_param' has no member named 'phys'
    3314 |                 .phys = info->iommu->reg_phys,
         |                  ^~~~
   drivers/iommu/intel/iommu.c:3314:25: warning: excess elements in struct initializer
    3314 |                 .phys = info->iommu->reg_phys,
         |                         ^~~~
   drivers/iommu/intel/iommu.c:3314:25: note: (near initialization for 'param')
   drivers/iommu/intel/iommu.c:3315:18: error: 'struct pkvm_domain_param' has no member named 'bdf'
    3315 |                 .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:3315:24: note: in expansion of macro 'PCI_DEVID'
    3315 |                 .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:3315:24: note: in expansion of macro 'PCI_DEVID'
    3315 |                 .bdf = PCI_DEVID(info->bus, info->devfn),
         |                        ^~~~~~~~~
   drivers/iommu/intel/iommu.c:3316:18: error: 'struct pkvm_domain_param' has no member named 'use_first_level'
    3316 |                 .use_first_level = domain->use_first_level,
         |                  ^~~~~~~~~~~~~~~
   drivers/iommu/intel/iommu.c:3316:36: warning: excess elements in struct initializer
    3316 |                 .use_first_level = domain->use_first_level,
         |                                    ^~~~~~
   drivers/iommu/intel/iommu.c:3316:36: note: (near initialization for 'param')
   drivers/iommu/intel/iommu.c:3317:18: error: 'struct pkvm_domain_param' has no member named 'pgd_gpa'
    3317 |                 .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:3317:28: note: in expansion of macro 'virt_to_phys'
    3317 |                 .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:3317:28: note: in expansion of macro 'virt_to_phys'
    3317 |                 .pgd_gpa = virt_to_phys(domain->pgd),
         |                            ^~~~~~~~~~~~
   drivers/iommu/intel/iommu.c:3318:18: error: 'struct pkvm_domain_param' has no member named 'gaw'
    3318 |                 .gaw = domain->gaw,
         |                  ^~~
   drivers/iommu/intel/iommu.c:3318:24: warning: excess elements in struct initializer
    3318 |                 .gaw = domain->gaw,
--
   drivers/iommu/intel/pasid.c:246:18: error: 'struct pkvm_clear_translation_param' has no member named 'pasid'
     246 |                 .pasid = pasid,
         |                  ^~~~~
   drivers/iommu/intel/pasid.c:246:26: warning: excess elements in struct initializer
     246 |                 .pasid = pasid,
         |                          ^~~~~
   drivers/iommu/intel/pasid.c:246:26: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:247:18: error: 'struct pkvm_clear_translation_param' has no member named 'ats_qdep'
     247 |                 .ats_qdep = info->ats_qdep,
         |                  ^~~~~~~~
   drivers/iommu/intel/pasid.c:247:29: warning: excess elements in struct initializer
     247 |                 .ats_qdep = info->ats_qdep,
         |                             ^~~~
   drivers/iommu/intel/pasid.c:247:29: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:243:45: error: storage size of 'param' isn't known
     243 |         struct pkvm_clear_translation_param param = {
         |                                             ^~~~~
   drivers/iommu/intel/pasid.c:243:45: warning: unused variable 'param' [-Wunused-variable]
   drivers/iommu/intel/pasid.c: In function 'pv_pasid_setup_first_level':
   drivers/iommu/intel/pasid.c:316:16: error: variable 'param' has initializer but incomplete type
     316 |         struct pkvm_pasid_table_param param = {
         |                ^~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:317:18: error: 'struct pkvm_pasid_table_param' has no member named 'phys'
     317 |                 .phys = iommu->reg_phys,
         |                  ^~~~
   drivers/iommu/intel/pasid.c:317:25: warning: excess elements in struct initializer
     317 |                 .phys = iommu->reg_phys,
         |                         ^~~~~
   drivers/iommu/intel/pasid.c:317:25: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:318:18: error: 'struct pkvm_pasid_table_param' has no member named 'bdf'
     318 |                 .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/pasid.c:318:24: note: in expansion of macro 'PCI_DEVID'
     318 |                 .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/pasid.c:318:24: note: in expansion of macro 'PCI_DEVID'
     318 |                 .bdf = PCI_DEVID(info->bus, info->devfn),
         |                        ^~~~~~~~~
   drivers/iommu/intel/pasid.c:319:18: error: 'struct pkvm_pasid_table_param' has no member named 'pasid'
     319 |                 .pasid = pasid,
         |                  ^~~~~
   drivers/iommu/intel/pasid.c:319:26: warning: excess elements in struct initializer
     319 |                 .pasid = pasid,
         |                          ^~~~~
   drivers/iommu/intel/pasid.c:319:26: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:320:18: error: 'struct pkvm_pasid_table_param' has no member named 'did'
     320 |                 .did = did,
         |                  ^~~
   drivers/iommu/intel/pasid.c:320:24: warning: excess elements in struct initializer
     320 |                 .did = did,
         |                        ^~~
   drivers/iommu/intel/pasid.c:320:24: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:321:18: error: 'struct pkvm_pasid_table_param' has no member named 'domain_pgd_gpa'
     321 |                 .domain_pgd_gpa = virt_to_phys(pgd),
         |                  ^~~~~~~~~~~~~~
   In file included from include/linux/io.h:14,
                    from include/acpi/acpi_io.h:5,
                    from include/linux/acpi.h:39,
                    from include/linux/dmar.h:12,
                    from drivers/iommu/intel/pasid.c:14:
   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/pasid.c:321:35: note: in expansion of macro 'virt_to_phys'
     321 |                 .domain_pgd_gpa = virt_to_phys(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/pasid.c:321:35: note: in expansion of macro 'virt_to_phys'
     321 |                 .domain_pgd_gpa = virt_to_phys(pgd),
         |                                   ^~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:322:18: error: 'struct pkvm_pasid_table_param' has no member named 'pasid_dir_gpa'
     322 |                 .pasid_dir_gpa = virt_to_phys(info->pasid_table->table),
         |                  ^~~~~~~~~~~~~
   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/pasid.c:322:34: note: in expansion of macro 'virt_to_phys'
     322 |                 .pasid_dir_gpa = virt_to_phys(info->pasid_table->table),
         |                                  ^~~~~~~~~~~~
   arch/x86/include/asm/io.h:155:22: note: (near initialization for 'param')
     155 | #define virt_to_phys virt_to_phys
         |                      ^~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:322:34: note: in expansion of macro 'virt_to_phys'
     322 |                 .pasid_dir_gpa = virt_to_phys(info->pasid_table->table),
         |                                  ^~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:323:18: error: 'struct pkvm_pasid_table_param' has no member named 'max_pasid'
     323 |                 .max_pasid = info->pasid_table->max_pasid,
         |                  ^~~~~~~~~
   drivers/iommu/intel/pasid.c:323:30: warning: excess elements in struct initializer
     323 |                 .max_pasid = info->pasid_table->max_pasid,
         |                              ^~~~
   drivers/iommu/intel/pasid.c:323:30: note: (near initialization for 'param')
>> drivers/iommu/intel/pasid.c:324:18: error: 'struct pkvm_pasid_table_param' has no member named 'ats_qdep'
     324 |                 .ats_qdep = info->ats_qdep,
         |                  ^~~~~~~~
   drivers/iommu/intel/pasid.c:324:29: warning: excess elements in struct initializer
     324 |                 .ats_qdep = info->ats_qdep,
         |                             ^~~~
   drivers/iommu/intel/pasid.c:324:29: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:316:39: error: storage size of 'param' isn't known
     316 |         struct pkvm_pasid_table_param param = {
         |                                       ^~~~~
   drivers/iommu/intel/pasid.c:316:39: warning: unused variable 'param' [-Wunused-variable]
   drivers/iommu/intel/pasid.c: In function 'pv_pasid_setup_second_level':
   drivers/iommu/intel/pasid.c:416:16: error: variable 'param' has initializer but incomplete type
     416 |         struct pkvm_pasid_table_param param = {
         |                ^~~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:417:18: error: 'struct pkvm_pasid_table_param' has no member named 'phys'
     417 |                 .phys = iommu->reg_phys,
         |                  ^~~~
   drivers/iommu/intel/pasid.c:417:25: warning: excess elements in struct initializer
     417 |                 .phys = iommu->reg_phys,
         |                         ^~~~~
   drivers/iommu/intel/pasid.c:417:25: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:418:18: error: 'struct pkvm_pasid_table_param' has no member named 'bdf'
     418 |                 .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/pasid.c:418:24: note: in expansion of macro 'PCI_DEVID'
     418 |                 .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/pasid.c:418:24: note: in expansion of macro 'PCI_DEVID'
     418 |                 .bdf = PCI_DEVID(info->bus, info->devfn),
         |                        ^~~~~~~~~
   drivers/iommu/intel/pasid.c:419:18: error: 'struct pkvm_pasid_table_param' has no member named 'pasid'
     419 |                 .pasid = pasid,
         |                  ^~~~~
   drivers/iommu/intel/pasid.c:419:26: warning: excess elements in struct initializer
     419 |                 .pasid = pasid,
         |                          ^~~~~
   drivers/iommu/intel/pasid.c:419:26: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:420:18: error: 'struct pkvm_pasid_table_param' has no member named 'did'
     420 |                 .did = domain_id_iommu(domain, iommu),
         |                  ^~~
   drivers/iommu/intel/pasid.c:420:24: warning: excess elements in struct initializer
     420 |                 .did = domain_id_iommu(domain, iommu),
         |                        ^~~~~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:420:24: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:421:18: error: 'struct pkvm_pasid_table_param' has no member named 'domain_pgd_gpa'
     421 |                 .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/pasid.c:421:35: note: in expansion of macro 'virt_to_phys'
     421 |                 .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/pasid.c:421:35: note: in expansion of macro 'virt_to_phys'
     421 |                 .domain_pgd_gpa = virt_to_phys(domain->pgd),
         |                                   ^~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:422:18: error: 'struct pkvm_pasid_table_param' has no member named 'pasid_dir_gpa'
     422 |                 .pasid_dir_gpa = virt_to_phys(info->pasid_table->table),
         |                  ^~~~~~~~~~~~~
   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/pasid.c:422:34: note: in expansion of macro 'virt_to_phys'
     422 |                 .pasid_dir_gpa = virt_to_phys(info->pasid_table->table),
         |                                  ^~~~~~~~~~~~
   arch/x86/include/asm/io.h:155:22: note: (near initialization for 'param')
     155 | #define virt_to_phys virt_to_phys
         |                      ^~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:422:34: note: in expansion of macro 'virt_to_phys'
     422 |                 .pasid_dir_gpa = virt_to_phys(info->pasid_table->table),
         |                                  ^~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:423:18: error: 'struct pkvm_pasid_table_param' has no member named 'max_pasid'
     423 |                 .max_pasid = info->pasid_table->max_pasid,
         |                  ^~~~~~~~~
   drivers/iommu/intel/pasid.c:423:30: warning: excess elements in struct initializer
     423 |                 .max_pasid = info->pasid_table->max_pasid,
         |                              ^~~~
   drivers/iommu/intel/pasid.c:423:30: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:424:18: error: 'struct pkvm_pasid_table_param' has no member named 'dirty_tracking'
     424 |                 .dirty_tracking = domain->dirty_tracking,
         |                  ^~~~~~~~~~~~~~
   drivers/iommu/intel/pasid.c:424:35: warning: excess elements in struct initializer
     424 |                 .dirty_tracking = domain->dirty_tracking,
         |                                   ^~~~~~
   drivers/iommu/intel/pasid.c:424:35: note: (near initialization for 'param')
   drivers/iommu/intel/pasid.c:425:18: error: 'struct pkvm_pasid_table_param' has no member named 'ats_qdep'
     425 |                 .ats_qdep = info->ats_qdep,
         |                  ^~~~~~~~
   drivers/iommu/intel/pasid.c:425:29: warning: excess elements in struct initializer
     425 |                 .ats_qdep = info->ats_qdep,
         |                             ^~~~


vim +1475 drivers/iommu/intel/iommu.c

  1465	
  1466	static int pv_context_mapping(struct dmar_domain *domain, struct intel_iommu *iommu,
  1467				      struct device_domain_info *info, u8 bus, u8 devfn)
  1468	{
  1469		struct pkvm_lm_context_param param = {
  1470			.phys = iommu->reg_phys,
  1471			.bdf = PCI_DEVID(bus, devfn),
  1472			.domain_pgd_gpa = virt_to_phys(domain->pgd),
  1473			.did = domain_id_iommu(domain, iommu),
  1474			.ats_supported = info ? info->ats_supported : 0,
> 1475			.ats_qdep = info->ats_qdep,
  1476		};
  1477		int ret;
  1478	
  1479		spin_lock(&iommu->lock);
  1480		ret = pkvm_hc_iommu_set_lm_ce(&param);
  1481		if (ret == -ENOMEM) {
  1482			void *context = iommu_alloc_page_node(iommu->node, GFP_ATOMIC);
  1483	
  1484			if (!context) {
  1485				spin_unlock(&iommu->lock);
  1486				pr_err("%s: failed to allocate context page for iommu: %d\n",
  1487				       __func__, iommu->seq_id);
  1488				return -ENOMEM;
  1489			}
  1490			param.context_gpa = virt_to_phys(context);
  1491			ret = pkvm_hc_iommu_set_lm_ce(&param);
  1492	
  1493			/* Free the page if pkvm did not use it. */
  1494			if (param.context_gpa)
  1495				iommu_free_page(context);
  1496		}
  1497		spin_unlock(&iommu->lock);
  1498	
  1499		return ret;
  1500	}
  1501	

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

                 reply	other threads:[~2025-12-13 12:16 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=202512132021.KA2uz3AF-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.