|
@@ -51,6 +51,10 @@ module_param(disable_vendor_specific, bool, S_IRUGO);
|
|
|
MODULE_PARM_DESC(disable_vendor_specific,
|
|
|
"Limit commands to the publicly specified set\n");
|
|
|
|
|
|
+static unsigned long override_dsm_mask;
|
|
|
+module_param(override_dsm_mask, ulong, S_IRUGO);
|
|
|
+MODULE_PARM_DESC(override_dsm_mask, "Bitmask of allowed NVDIMM DSM functions");
|
|
|
+
|
|
|
LIST_HEAD(acpi_descs);
|
|
|
DEFINE_MUTEX(acpi_desc_lock);
|
|
|
|
|
@@ -1402,7 +1406,9 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
|
|
|
|
|
|
/* limit the supported commands to those that are publicly documented */
|
|
|
nfit_mem->family = i;
|
|
|
- if (nfit_mem->family == NVDIMM_FAMILY_INTEL) {
|
|
|
+ if (override_dsm_mask && !disable_vendor_specific)
|
|
|
+ dsm_mask = override_dsm_mask;
|
|
|
+ else if (nfit_mem->family == NVDIMM_FAMILY_INTEL) {
|
|
|
dsm_mask = 0x3fe;
|
|
|
if (disable_vendor_specific)
|
|
|
dsm_mask &= ~(1 << ND_CMD_VENDOR);
|