From: Suresh Siddha Subject: dmar: fix dmar_parse_dev() devices_cnt error condition check References: fate #303948 and fate #303984 Patch-Mainline: queued for .28 Commit-ID: 0f4896665a02b465ddca59a560983b24ec28c64b Signed-off-by: Thomas Renninger It is possible that, instead of PCI endpoint/sub-hierarchy structures, only IO-APIC/HPET devices may be reported under device scope structures. Fix the devices_cnt error check, which cares about only PCI structures and removes the dma-remapping unit structure (dmaru) when the devices_cnt is zero and include_all flag is not set. Signed-off-by: Suresh Siddha Acked-by: Yinghai Lu Signed-off-by: Ingo Molnar --- drivers/pci/dmar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: linux-2.6.26/drivers/pci/dmar.c =================================================================== --- linux-2.6.26.orig/drivers/pci/dmar.c +++ linux-2.6.26/drivers/pci/dmar.c @@ -212,7 +212,7 @@ dmar_parse_dev(struct dmar_drhd_unit *dm include_all = 1; } - if (ret || (dmaru->devices_cnt == 0 && !dmaru->include_all)) { + if (ret) { list_del(&dmaru->list); kfree(dmaru); }