pci/dmar: correct off-by-one error
PATCH 1/1 pci/dmar: correct off-by-one error
pci/dmar: correct off-by-one error in dmar_fault()
DMAR faults are recorded into a ring of "fault recording registers". fault_index is a 0-based index into the ring. The code allows the 0-based fault_index to be equal to the total number of fault registers available from the cap_num_fault_regs() macro, which causes access beyond the last available register.
Signed-off-by Troy Heber <[email protected]>
--- drivers/pci/dmar.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/pci/dmar.c +1 -1
@@ -1212,7 +1212,7 @@ irqreturn_t dmar_fault(int irq, void *dev_id) source_id, guest_addr); fault_index++; -if (fault_index >cap_num_fault_regs (iommu->cap)) +if (fault_index >=cap_num_fault_regs (iommu->cap)) fault_index =0 ;spin_lock_irqsave (&iommu->register_lock, flag); }