diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-10-10 13:30:08 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-10-10 13:30:08 -0400 |
| commit | 3dd392a407d15250a501fa109cc1f93fee95ef85 (patch) | |
| tree | c1faca3fa8bd0f7c8790b3e0887229b4a5a90e8b /drivers/pci/intel-iommu.c | |
| parent | b27a43c1e90582facad44de67d02bc9e9f900289 (diff) | |
| parent | d403a6484f0341bf0624d17ece46f24f741b6a92 (diff) | |
Merge branch 'linus' into x86/pat2
Conflicts:
arch/x86/mm/init_64.c
Diffstat (limited to 'drivers/pci/intel-iommu.c')
| -rw-r--r-- | drivers/pci/intel-iommu.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c index 8d0e60ac849c..c3edcdc08e72 100644 --- a/drivers/pci/intel-iommu.c +++ b/drivers/pci/intel-iommu.c | |||
| @@ -2348,11 +2348,34 @@ static void __init iommu_exit_mempool(void) | |||
| 2348 | 2348 | ||
| 2349 | } | 2349 | } |
| 2350 | 2350 | ||
| 2351 | static int blacklist_iommu(const struct dmi_system_id *id) | ||
| 2352 | { | ||
| 2353 | printk(KERN_INFO "%s detected; disabling IOMMU\n", | ||
| 2354 | id->ident); | ||
| 2355 | dmar_disabled = 1; | ||
| 2356 | return 0; | ||
| 2357 | } | ||
| 2358 | |||
| 2359 | static struct dmi_system_id __initdata intel_iommu_dmi_table[] = { | ||
| 2360 | { /* Some DG33BU BIOS revisions advertised non-existent VT-d */ | ||
| 2361 | .callback = blacklist_iommu, | ||
| 2362 | .ident = "Intel DG33BU", | ||
| 2363 | { DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), | ||
| 2364 | DMI_MATCH(DMI_BOARD_NAME, "DG33BU"), | ||
| 2365 | } | ||
| 2366 | }, | ||
| 2367 | { } | ||
| 2368 | }; | ||
| 2369 | |||
| 2370 | |||
| 2351 | void __init detect_intel_iommu(void) | 2371 | void __init detect_intel_iommu(void) |
| 2352 | { | 2372 | { |
| 2353 | if (swiotlb || no_iommu || iommu_detected || dmar_disabled) | 2373 | if (swiotlb || no_iommu || iommu_detected || dmar_disabled) |
| 2354 | return; | 2374 | return; |
| 2355 | if (early_dmar_detect()) { | 2375 | if (early_dmar_detect()) { |
| 2376 | dmi_check_system(intel_iommu_dmi_table); | ||
| 2377 | if (dmar_disabled) | ||
| 2378 | return; | ||
| 2356 | iommu_detected = 1; | 2379 | iommu_detected = 1; |
| 2357 | } | 2380 | } |
| 2358 | } | 2381 | } |
