mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
iommu/vt-d: Call dmar_can_force_on() for tboot opt-in
So the policy of requesting ACS in detect_intel_iommu() is consistent with that in tboot_force_iommu(). Though tboot is the strongest override so far, dmar_can_force_on() may return false due to future extensions. In this case panic the kernel, as is already done when failing to initialize DMA remapping for tboot. No functional impact at this point. Signed-off-by: Kevin Tian <kevin.tian@intel.com> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
parent
98c8a9809b
commit
03ff2ad830
|
|
@ -2550,12 +2550,17 @@ static int __init probe_acpi_namespace_devices(void)
|
|||
|
||||
static __init int tboot_force_iommu(void)
|
||||
{
|
||||
if (!tboot_enabled())
|
||||
if (!tboot_enabled() || intel_iommu_tboot_noforce)
|
||||
return 0;
|
||||
|
||||
if (no_iommu || dmar_disabled)
|
||||
if (!dmar_can_force_on(DMAR_FORCEON_TBOOT))
|
||||
panic("tboot: Failed to force IOMMU on\n");
|
||||
|
||||
if (dmar_policy_off())
|
||||
pr_warn("Forcing Intel-IOMMU to enabled\n");
|
||||
|
||||
/* No concurrent access to dmar_policy at this point. */
|
||||
dmar_policy = DMAR_FORCE_ON;
|
||||
dmar_disabled = 0;
|
||||
no_iommu = 0;
|
||||
|
||||
|
|
@ -2572,8 +2577,7 @@ int __init intel_iommu_init(void)
|
|||
* Intel IOMMU is required for a TXT/tboot launch or platform
|
||||
* opt in, so enforce that.
|
||||
*/
|
||||
force_on = (!intel_iommu_tboot_noforce && tboot_force_iommu()) ||
|
||||
platform_optin_force_iommu();
|
||||
force_on = tboot_force_iommu() || platform_optin_force_iommu();
|
||||
|
||||
down_write(&dmar_global_lock);
|
||||
if (dmar_table_init()) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user