iommu/vt-d: Populate debugfs if IOMMUs are detected
Currently, the intel iommu debugfs directory(/sys/kernel/debug/iommu/intel)
gets populated only when DMA remapping is enabled (dmar_disabled = 0)
irrespective of whether interrupt remapping is enabled or not.
Instead, populate the intel iommu debugfs directory if any IOMMUs are
detected.
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: ee2636b867
("iommu/vt-d: Enable base Intel IOMMU debugfs support")
Signed-off-by: Megha Dey <megha.dey@linux.intel.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
@@ -282,9 +282,16 @@ static int dmar_translation_struct_show(struct seq_file *m, void *unused)
|
||||
{
|
||||
struct dmar_drhd_unit *drhd;
|
||||
struct intel_iommu *iommu;
|
||||
u32 sts;
|
||||
|
||||
rcu_read_lock();
|
||||
for_each_active_iommu(iommu, drhd) {
|
||||
sts = dmar_readl(iommu->reg + DMAR_GSTS_REG);
|
||||
if (!(sts & DMA_GSTS_TES)) {
|
||||
seq_printf(m, "DMA Remapping is not enabled on %s\n",
|
||||
iommu->name);
|
||||
continue;
|
||||
}
|
||||
root_tbl_walk(m, iommu);
|
||||
seq_putc(m, '\n');
|
||||
}
|
||||
@@ -425,6 +432,7 @@ static int ir_translation_struct_show(struct seq_file *m, void *unused)
|
||||
struct dmar_drhd_unit *drhd;
|
||||
struct intel_iommu *iommu;
|
||||
u64 irta;
|
||||
u32 sts;
|
||||
|
||||
rcu_read_lock();
|
||||
for_each_active_iommu(iommu, drhd) {
|
||||
@@ -434,7 +442,8 @@ static int ir_translation_struct_show(struct seq_file *m, void *unused)
|
||||
seq_printf(m, "Remapped Interrupt supported on IOMMU: %s\n",
|
||||
iommu->name);
|
||||
|
||||
if (iommu->ir_table) {
|
||||
sts = dmar_readl(iommu->reg + DMAR_GSTS_REG);
|
||||
if (iommu->ir_table && (sts & DMA_GSTS_IRES)) {
|
||||
irta = virt_to_phys(iommu->ir_table->base);
|
||||
seq_printf(m, " IR table address:%llx\n", irta);
|
||||
ir_tbl_remap_entry_show(m, iommu);
|
||||
|
Reference in New Issue
Block a user