]>
Commit | Line | Data |
---|---|---|
2cb7cef9 BS |
1 | From: Suresh Siddha <suresh.b.siddha@intel.com> |
2 | Subject: dmar: fix dmar_parse_dev() devices_cnt error condition check | |
3 | References: fate #303948 and fate #303984 | |
4 | Patch-Mainline: queued for .28 | |
5 | Commit-ID: 0f4896665a02b465ddca59a560983b24ec28c64b | |
6 | ||
7 | Signed-off-by: Thomas Renninger <trenn@suse.de> | |
8 | ||
9 | It is possible that, | |
10 | instead of PCI endpoint/sub-hierarchy structures, only IO-APIC/HPET | |
11 | devices may be reported under device scope structures. Fix the devices_cnt | |
12 | error check, which cares about only PCI structures and removes the | |
13 | dma-remapping unit structure (dmaru) when the devices_cnt is zero | |
14 | and include_all flag is not set. | |
15 | ||
16 | Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> | |
17 | Acked-by: Yinghai Lu <yhlu.kernel@gmail.com> | |
18 | Signed-off-by: Ingo Molnar <mingo@elte.hu> | |
19 | ||
20 | --- | |
21 | drivers/pci/dmar.c | 2 +- | |
22 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
23 | ||
24 | Index: linux-2.6.26/drivers/pci/dmar.c | |
25 | =================================================================== | |
26 | --- linux-2.6.26.orig/drivers/pci/dmar.c | |
27 | +++ linux-2.6.26/drivers/pci/dmar.c | |
28 | @@ -212,7 +212,7 @@ dmar_parse_dev(struct dmar_drhd_unit *dm | |
29 | include_all = 1; | |
30 | } | |
31 | ||
32 | - if (ret || (dmaru->devices_cnt == 0 && !dmaru->include_all)) { | |
33 | + if (ret) { | |
34 | list_del(&dmaru->list); | |
35 | kfree(dmaru); | |
36 | } |