tree:
https://github.com/meghadey/crypto iommu_debugfs_improvements
head: 54d8336f22d5d2c374d54ed5db5e38da5e350370
commit: 54d8336f22d5d2c374d54ed5db5e38da5e350370 [2/2] iommu/vt-d: Populate debugfs if
either dma or interrupt remapping is enabled
config: i386-randconfig-c003-20200228 (attached as .config)
compiler: gcc-7 (Debian 7.5.0-5) 7.5.0
reproduce:
git checkout 54d8336f22d5d2c374d54ed5db5e38da5e350370
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/init.h:5:0,
from drivers//iommu/intel-iommu.c:16:
drivers//iommu/intel-iommu.c: In function 'intel_iommu_init':
drivers//iommu/intel-iommu.c:5137:21: error: 'disable_irq_remap' undeclared
(first use in this function); did you mean 'disable_irq_wake'?
if (!no_iommu && (!disable_irq_remap || !dmar_disabled))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> drivers//iommu/intel-iommu.c:5137:2: note: in expansion of macro
'if'
if (!no_iommu && (!disable_irq_remap || !dmar_disabled))
^~
drivers//iommu/intel-iommu.c:5137:21: note: each undeclared identifier is reported only
once for each function it appears in
if (!no_iommu && (!disable_irq_remap || !dmar_disabled))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> drivers//iommu/intel-iommu.c:5137:2: note: in expansion of macro
'if'
if (!no_iommu && (!disable_irq_remap || !dmar_disabled))
^~
vim +/if +5137 drivers//iommu/intel-iommu.c
5091
5092 int __init intel_iommu_init(void)
5093 {
5094 int ret = -ENODEV;
5095 struct dmar_drhd_unit *drhd;
5096 struct intel_iommu *iommu;
5097
5098 /*
5099 * Intel IOMMU is required for a TXT/tboot launch or platform
5100 * opt in, so enforce that.
5101 */
5102 force_on = tboot_force_iommu() || platform_optin_force_iommu();
5103
5104 if (iommu_init_mempool()) {
5105 if (force_on)
5106 panic("tboot: Failed to initialize iommu memory\n");
5107 return -ENOMEM;
5108 }
5109
5110 down_write(&dmar_global_lock);
5111 if (dmar_table_init()) {
5112 if (force_on)
5113 panic("tboot: Failed to initialize DMAR table\n");
5114 goto out_free_dmar;
5115 }
5116
5117 if (dmar_dev_scope_init() < 0) {
5118 if (force_on)
5119 panic("tboot: Failed to initialize DMAR device scope\n");
5120 goto out_free_dmar;
5121 }
5122
5123 up_write(&dmar_global_lock);
5124
5125 /*
5126 * The bus notifier takes the dmar_global_lock, so lockdep will
5127 * complain later when we register it under the lock.
5128 */
5129 dmar_register_bus_notifier();
5130
5131 down_write(&dmar_global_lock);
5132
5133 /*
5134 * Create iommu debugfs directory if iommu is present and either DMA
5135 * or IRQ remapping is enabled.
5136 */
5137 if (!no_iommu && (!disable_irq_remap ||
!dmar_disabled))
5138 intel_iommu_debugfs_init();
5139
5140 if (no_iommu || dmar_disabled) {
5141 /*
5142 * We exit the function here to ensure IOMMU's remapping and
5143 * mempool aren't setup, which means that the IOMMU's PMRs
5144 * won't be disabled via the call to init_dmars(). So disable
5145 * it explicitly here. The PMRs were setup by tboot prior to
5146 * calling SENTER, but the kernel is expected to reset/tear
5147 * down the PMRs.
5148 */
5149 if (intel_iommu_tboot_noforce) {
5150 for_each_iommu(iommu, drhd)
5151 iommu_disable_protect_mem_regions(iommu);
5152 }
5153
5154 /*
5155 * Make sure the IOMMUs are switched off, even when we
5156 * boot into a kexec kernel and the previous kernel left
5157 * them enabled
5158 */
5159 intel_disable_iommus();
5160 goto out_free_dmar;
5161 }
5162
5163 if (list_empty(&dmar_rmrr_units))
5164 pr_info("No RMRR found\n");
5165
5166 if (list_empty(&dmar_atsr_units))
5167 pr_info("No ATSR found\n");
5168
5169 if (dmar_init_reserved_ranges()) {
5170 if (force_on)
5171 panic("tboot: Failed to reserve iommu ranges\n");
5172 goto out_free_reserved_range;
5173 }
5174
5175 if (dmar_map_gfx)
5176 intel_iommu_gfx_mapped = 1;
5177
5178 init_no_remapping_devices();
5179
5180 ret = init_dmars();
5181 if (ret) {
5182 if (force_on)
5183 panic("tboot: Failed to initialize DMARs\n");
5184 pr_err("Initialization failed\n");
5185 goto out_free_reserved_range;
5186 }
5187 up_write(&dmar_global_lock);
5188
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org