iommu/vt-d: Leave scalable mode default off [Linux 5.0]

iommu/vt-d: Leave scalable mode default off [Linux 5.0]

This Linux kernel change "iommu/vt-d: Leave scalable mode default off" is included in the Linux 5.0 release. This change is authored by Lu Baolu <baolu.lu [at] linux.intel.com> on Thu Jan 24 10:31:32 2019 +0800. The commit for this change in Linux stable tree is 8950dcd (patch).

iommu/vt-d: Leave scalable mode default off

Commit 765b6a98c1de3 ("iommu/vt-d: Enumerate the scalable
mode capability") enables VT-d scalable mode if hardware
advertises the capability. As we will bring up different
features and use cases to upstream in different patch
series, it will leave some intermediate kernel versions
which support partial features. Hence, end user might run
into problems when they use such kernels on bare metals
or virtualization environments.

This leaves scalable mode default off and end users could
turn it on with "intel-iommu=sm_on" only when they have
clear ideas about which scalable features are supported
in the kernel.

Cc: Liu Yi L <[email protected]>
Cc: Jacob Pan <[email protected]>
Suggested-by: Ashok Raj <[email protected]>
Suggested-by: Kevin Tian <[email protected]>
Signed-off-by: Lu Baolu <[email protected]>
Signed-off-by: Joerg Roedel <[email protected]>

There are 15 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 Documentation/admin-guide/kernel-parameters.txt | 7 +++----
 drivers/iommu/intel-iommu.c                     | 8 ++++----
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index b799bcf..858b6c0 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1696,12 +1696,11 @@
            By default, super page will be supported if Intel IOMMU
            has the capability. With this option, super page will
            not be supported.
-       sm_off [Default Off]
-           By default, scalable mode will be supported if the
+       sm_on [Default Off]
+           By default, scalable mode will be disabled even if the
            hardware advertises that it has support for the scalable
            mode translation. With this option set, scalable mode
-           will not be used even on hardware which claims to support
-           it.
+           will be used on hardware which claims to support it.
        tboot_noforce [Default Off]
            Do not force the Intel IOMMU enabled under tboot.
            By default, tboot will force Intel IOMMU on, which
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 1457f93..78188bf 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -363,7 +363,7 @@ static int domain_detach_iommu(struct dmar_domain *domain,
 static int dmar_forcedac;
 static int intel_iommu_strict;
 static int intel_iommu_superpage = 1;
-static int intel_iommu_sm = 1;
+static int intel_iommu_sm;
 static int iommu_identity_mapping;

 #define IDENTMAP_ALL       1
@@ -456,9 +456,9 @@ static int __init intel_iommu_setup(char *str)
        } else if (!strncmp(str, "sp_off", 6)) {
            pr_info("Disable supported super page\n");
            intel_iommu_superpage = 0;
-       } else if (!strncmp(str, "sm_off", 6)) {
-           pr_info("Intel-IOMMU: disable scalable mode support\n");
-           intel_iommu_sm = 0;
+       } else if (!strncmp(str, "sm_on", 5)) {
+           pr_info("Intel-IOMMU: scalable mode supported\n");
+           intel_iommu_sm = 1;
        } else if (!strncmp(str, "tboot_noforce", 13)) {
            printk(KERN_INFO
                "Intel-IOMMU: not forcing on after tboot. This could expose security risk for tboot\n");

Leave a Reply

Your email address will not be published. Required fields are marked *