Re: include/linux/intel-iommu.h:531:28: error: use of undeclared identifier 'CONFIG_DMAR_UNITS_SUPPORTED'

From: Steve Wahl
Date: Thu Jun 16 2022 - 11:07:37 EST


This should no longer be a problem after Baolu's patches to make
intel-iommu.h private. At least it hasn't been for me, and I did
experiment with enabling / disabling relevant config options.

--> Steve Wahl

On Thu, Jun 16, 2022 at 10:59:19PM +0800, kernel test robot wrote:
> tree: https://github.com/intel-lab-lkp/linux/commits/UPDATE-20220616-024802/Steve-Wahl/iommu-vt-d-Increase-DMAR_UNITS_SUPPORTED/20220506-035321
> head: 3e005e10e4d8627a55a987d047c19dba233ba66b
> commit: 3e005e10e4d8627a55a987d047c19dba233ba66b iommu/vt-d: Make DMAR_UNITS_SUPPORTED a config setting
> date: 20 hours ago
> config: i386-randconfig-a011 (https://download.01.org/0day-ci/archive/20220616/202206162251.cVdwcud4-lkp@xxxxxxxxx/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project f0e608de27b3d568000046eebf3712ab542979d6)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://github.com/intel-lab-lkp/linux/commit/3e005e10e4d8627a55a987d047c19dba233ba66b
> git remote add linux-review https://github.com/intel-lab-lkp/linux
> git fetch --no-tags linux-review UPDATE-20220616-024802/Steve-Wahl/iommu-vt-d-Increase-DMAR_UNITS_SUPPORTED/20220506-035321
> git checkout 3e005e10e4d8627a55a987d047c19dba233ba66b
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash arch/x86/kvm/
>
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> In file included from arch/x86/kvm/x86.c:44:
> >> include/linux/intel-iommu.h:531:28: error: use of undeclared identifier 'CONFIG_DMAR_UNITS_SUPPORTED'
> unsigned int iommu_refcnt[DMAR_UNITS_SUPPORTED];
> ^
> include/linux/dmar.h:21:30: note: expanded from macro 'DMAR_UNITS_SUPPORTED'
> #define DMAR_UNITS_SUPPORTED CONFIG_DMAR_UNITS_SUPPORTED
> ^
> In file included from arch/x86/kvm/x86.c:44:
> include/linux/intel-iommu.h:535:17: error: use of undeclared identifier 'CONFIG_DMAR_UNITS_SUPPORTED'
> u16 iommu_did[DMAR_UNITS_SUPPORTED];
> ^
> include/linux/dmar.h:21:30: note: expanded from macro 'DMAR_UNITS_SUPPORTED'
> #define DMAR_UNITS_SUPPORTED CONFIG_DMAR_UNITS_SUPPORTED
> ^
> 2 errors generated.
>
>
> vim +/CONFIG_DMAR_UNITS_SUPPORTED +531 include/linux/intel-iommu.h
>
> b0d1f8741b8123 Jacob Pan 2020-05-16 527
> 9ddbfb42138d84 Lu Baolu 2018-07-14 528 struct dmar_domain {
> 9ddbfb42138d84 Lu Baolu 2018-07-14 529 int nid; /* node id */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 530
> 9739ba327c01e2 Parav Pandit 2021-06-10 @531 unsigned int iommu_refcnt[DMAR_UNITS_SUPPORTED];
> 9ddbfb42138d84 Lu Baolu 2018-07-14 532 /* Refcount of devices per iommu */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 533
> 9ddbfb42138d84 Lu Baolu 2018-07-14 534
> 9ddbfb42138d84 Lu Baolu 2018-07-14 535 u16 iommu_did[DMAR_UNITS_SUPPORTED];
> 9ddbfb42138d84 Lu Baolu 2018-07-14 536 /* Domain ids per IOMMU. Use u16 since
> 9ddbfb42138d84 Lu Baolu 2018-07-14 537 * domain ids are 16 bit wide according
> 9ddbfb42138d84 Lu Baolu 2018-07-14 538 * to VT-d spec, section 9.3 */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 539
> 1f106ff0ea2782 Parav Pandit 2021-06-10 540 u8 has_iotlb_device: 1;
> 1f106ff0ea2782 Parav Pandit 2021-06-10 541 u8 iommu_coherency: 1; /* indicate coherency of iommu access */
> 6043257b1de069 Jason Gunthorpe 2022-04-11 542 u8 force_snooping : 1; /* Create IOPTEs with snoop control */
> 1f106ff0ea2782 Parav Pandit 2021-06-10 543
> 9ddbfb42138d84 Lu Baolu 2018-07-14 544 struct list_head devices; /* all devices' list */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 545 struct iova_domain iovad; /* iova's that belong to this domain */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 546
> 9ddbfb42138d84 Lu Baolu 2018-07-14 547 struct dma_pte *pgd; /* virtual address */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 548 int gaw; /* max guest address width */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 549
> 9ddbfb42138d84 Lu Baolu 2018-07-14 550 /* adjusted guest address width, 0 is level 2 30-bit */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 551 int agaw;
> 9ddbfb42138d84 Lu Baolu 2018-07-14 552
> 9ddbfb42138d84 Lu Baolu 2018-07-14 553 int flags; /* flags to find out type of domain */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 554 int iommu_superpage;/* Level of superpages supported:
> 9ddbfb42138d84 Lu Baolu 2018-07-14 555 0 == 4KiB (no superpages), 1 == 2MiB,
> 9ddbfb42138d84 Lu Baolu 2018-07-14 556 2 == 1GiB, 3 == 512GiB, 4 == 1TiB */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 557 u64 max_addr; /* maximum mapped address */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 558
> 9ddbfb42138d84 Lu Baolu 2018-07-14 559 struct iommu_domain domain; /* generic domain data structure for
> 9ddbfb42138d84 Lu Baolu 2018-07-14 560 iommu core */
> 9ddbfb42138d84 Lu Baolu 2018-07-14 561 };
> 9ddbfb42138d84 Lu Baolu 2018-07-14 562
>
> --
> 0-DAY CI Kernel Test Service
> https://01.org/lkp

--
Steve Wahl, Hewlett Packard Enterprise