iommu/vt-d: Don't print the failure message when booting non-kdump kernel
authorQiuxu Zhuo <qiuxu.zhuo@intel.com>
Thu, 27 Apr 2017 17:16:15 +0000 (01:16 +0800)
committerJoerg Roedel <jroedel@suse.de>
Fri, 28 Apr 2017 21:38:42 +0000 (23:38 +0200)
When booting a new non-kdump kernel, we have below failure message:

[    0.004000] DMAR-IR: IRQ remapping was enabled on dmar2 but we are not in kdump mode
[    0.004000] DMAR-IR: Failed to copy IR table for dmar2 from previous kernel
[    0.004000] DMAR-IR: IRQ remapping was enabled on dmar1 but we are not in kdump mode
[    0.004000] DMAR-IR: Failed to copy IR table for dmar1 from previous kernel
[    0.004000] DMAR-IR: IRQ remapping was enabled on dmar0 but we are not in kdump mode
[    0.004000] DMAR-IR: Failed to copy IR table for dmar0 from previous kernel
[    0.004000] DMAR-IR: IRQ remapping was enabled on dmar3 but we are not in kdump mode
[    0.004000] DMAR-IR: Failed to copy IR table for dmar3 from previous kernel

For non-kdump case, we no need to copy IR table from previous kernel
so it's nonthing actually failed. To be less alarming or misleading,
do not print "DMAR-IR: Failed to copy IR table for dmar[0-9] from
previous kernel" messages when booting non-kdump kernel.

Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel_irq_remapping.c

index ac596928f6b40af32e9c44ecf388ebf7ed4b10ed..a190cbd76ef7113f850b3c09d8b513367d7eb496 100644 (file)
@@ -408,14 +408,6 @@ static int iommu_load_old_irte(struct intel_iommu *iommu)
        size_t size;
        u64 irta;
 
-       if (!is_kdump_kernel()) {
-               pr_warn("IRQ remapping was enabled on %s but we are not in kdump mode\n",
-                       iommu->name);
-               clear_ir_pre_enabled(iommu);
-               iommu_disable_irq_remapping(iommu);
-               return -EINVAL;
-       }
-
        /* Check whether the old ir-table has the same size as ours */
        irta = dmar_readq(iommu->reg + DMAR_IRTA_REG);
        if ((irta & INTR_REMAP_TABLE_REG_SIZE_MASK)
@@ -567,7 +559,12 @@ static int intel_setup_irq_remapping(struct intel_iommu *iommu)
        init_ir_status(iommu);
 
        if (ir_pre_enabled(iommu)) {
-               if (iommu_load_old_irte(iommu))
+               if (!is_kdump_kernel()) {
+                       pr_warn("IRQ remapping was enabled on %s but we are not in kdump mode\n",
+                               iommu->name);
+                       clear_ir_pre_enabled(iommu);
+                       iommu_disable_irq_remapping(iommu);
+               } else if (iommu_load_old_irte(iommu))
                        pr_err("Failed to copy IR table for %s from previous kernel\n",
                               iommu->name);
                else