All of lore.kernel.org
 help / color / mirror / Atom feed
* [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'
@ 2025-12-13 12:16 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-12-13 12:16 UTC (permalink / raw)
  To: cros-kernel-buildreports; +Cc: oe-kbuild-all

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-12-13 12:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-13 12:16 [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' 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.