CC: kbuild-all(a)lists.01.org CC: linux-kernel(a)vger.kernel.org TO: Lu Baolu CC: Joerg Roedel CC: Kevin Tian tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 22fbc037cd32e4e6771d2271b565806cfb8c134c commit: 6e4e9ec65078093165463c13d4eb92b3e8d7b2e8 iommu/vt-d: Serialize IOMMU GCMD register modifications date: 4 weeks ago :::::: branch date: 6 hours ago :::::: commit date: 4 weeks ago config: x86_64-randconfig-m001-20201003 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/iommu/intel/irq_remapping.c:519 iommu_enable_irq_remapping() warn: this loop depends on readl() succeeding drivers/iommu/intel/irq_remapping.c:519 iommu_enable_irq_remapping() warn: this loop depends on readl() succeeding Old smatch warnings: drivers/iommu/intel/irq_remapping.c:689 iommu_disable_irq_remapping() warn: this loop depends on readl() succeeding drivers/iommu/intel/irq_remapping.c:689 iommu_disable_irq_remapping() warn: this loop depends on readl() succeeding vim +519 drivers/iommu/intel/irq_remapping.c d4d1c0f3d6a9558 drivers/iommu/intel_irq_remapping.c Joerg Roedel 2015-06-12 501 d4d1c0f3d6a9558 drivers/iommu/intel_irq_remapping.c Joerg Roedel 2015-06-12 502 static void iommu_enable_irq_remapping(struct intel_iommu *iommu) d4d1c0f3d6a9558 drivers/iommu/intel_irq_remapping.c Joerg Roedel 2015-06-12 503 { d4d1c0f3d6a9558 drivers/iommu/intel_irq_remapping.c Joerg Roedel 2015-06-12 504 unsigned long flags; d4d1c0f3d6a9558 drivers/iommu/intel_irq_remapping.c Joerg Roedel 2015-06-12 505 u32 sts; 2ae21010694e564 drivers/pci/intr_remapping.c Suresh Siddha 2008-07-10 506 1f5b3c3fd2d73d6 drivers/iommu/intr_remapping.c Thomas Gleixner 2011-07-19 507 raw_spin_lock_irqsave(&iommu->register_lock, flags); 2ae21010694e564 drivers/pci/intr_remapping.c Suresh Siddha 2008-07-10 508 2ae21010694e564 drivers/pci/intr_remapping.c Suresh Siddha 2008-07-10 509 /* Enable interrupt-remapping */ 2ae21010694e564 drivers/pci/intr_remapping.c Suresh Siddha 2008-07-10 510 iommu->gcmd |= DMA_GCMD_IRE; c416daa98a58459 drivers/pci/intr_remapping.c David Woodhouse 2009-05-10 511 writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG); 2ae21010694e564 drivers/pci/intr_remapping.c Suresh Siddha 2008-07-10 512 IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG, 2ae21010694e564 drivers/pci/intr_remapping.c Suresh Siddha 2008-07-10 513 readl, (sts & DMA_GSTS_IRES), sts); 2ae21010694e564 drivers/pci/intr_remapping.c Suresh Siddha 2008-07-10 514 6e4e9ec65078093 drivers/iommu/intel/irq_remapping.c Lu Baolu 2020-08-28 515 /* Block compatibility-format MSIs */ 6e4e9ec65078093 drivers/iommu/intel/irq_remapping.c Lu Baolu 2020-08-28 516 if (sts & DMA_GSTS_CFIS) { 6e4e9ec65078093 drivers/iommu/intel/irq_remapping.c Lu Baolu 2020-08-28 517 iommu->gcmd &= ~DMA_GCMD_CFI; 6e4e9ec65078093 drivers/iommu/intel/irq_remapping.c Lu Baolu 2020-08-28 518 writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG); 6e4e9ec65078093 drivers/iommu/intel/irq_remapping.c Lu Baolu 2020-08-28 @519 IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG, 6e4e9ec65078093 drivers/iommu/intel/irq_remapping.c Lu Baolu 2020-08-28 520 readl, !(sts & DMA_GSTS_CFIS), sts); 6e4e9ec65078093 drivers/iommu/intel/irq_remapping.c Lu Baolu 2020-08-28 521 } 6e4e9ec65078093 drivers/iommu/intel/irq_remapping.c Lu Baolu 2020-08-28 522 af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 523 /* af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 524 * With CFI clear in the Global Command register, we should be af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 525 * protected from dangerous (i.e. compatibility) interrupts af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 526 * regardless of x2apic status. Check just to be sure. af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 527 */ af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 528 if (sts & DMA_GSTS_CFIS) af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 529 WARN(1, KERN_WARNING af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 530 "Compatibility-format IRQs enabled despite intr remapping;\n" af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 531 "you are vulnerable to IRQ injection.\n"); af8d102f999a41c drivers/iommu/intel_irq_remapping.c Andy Lutomirski 2013-02-01 532 1f5b3c3fd2d73d6 drivers/iommu/intr_remapping.c Thomas Gleixner 2011-07-19 533 raw_spin_unlock_irqrestore(&iommu->register_lock, flags); 2ae21010694e564 drivers/pci/intr_remapping.c Suresh Siddha 2008-07-10 534 } 2ae21010694e564 drivers/pci/intr_remapping.c Suresh Siddha 2008-07-10 535 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org