aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/nfit/core.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index c8ea9d698cd0..6bc784bd0828 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -51,6 +51,10 @@ module_param(disable_vendor_specific, bool, S_IRUGO);
51MODULE_PARM_DESC(disable_vendor_specific, 51MODULE_PARM_DESC(disable_vendor_specific,
52 "Limit commands to the publicly specified set\n"); 52 "Limit commands to the publicly specified set\n");
53 53
54static unsigned long override_dsm_mask;
55module_param(override_dsm_mask, ulong, S_IRUGO);
56MODULE_PARM_DESC(override_dsm_mask, "Bitmask of allowed NVDIMM DSM functions");
57
54LIST_HEAD(acpi_descs); 58LIST_HEAD(acpi_descs);
55DEFINE_MUTEX(acpi_desc_lock); 59DEFINE_MUTEX(acpi_desc_lock);
56 60
@@ -1402,7 +1406,9 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
1402 1406
1403 /* limit the supported commands to those that are publicly documented */ 1407 /* limit the supported commands to those that are publicly documented */
1404 nfit_mem->family = i; 1408 nfit_mem->family = i;
1405 if (nfit_mem->family == NVDIMM_FAMILY_INTEL) { 1409 if (override_dsm_mask && !disable_vendor_specific)
1410 dsm_mask = override_dsm_mask;
1411 else if (nfit_mem->family == NVDIMM_FAMILY_INTEL) {
1406 dsm_mask = 0x3fe; 1412 dsm_mask = 0x3fe;
1407 if (disable_vendor_specific) 1413 if (disable_vendor_specific)
1408 dsm_mask &= ~(1 << ND_CMD_VENDOR); 1414 dsm_mask &= ~(1 << ND_CMD_VENDOR);