As it is today, we can't enable or test new functions in firmware without
changing the kernel.

With this patch we allow function 0 for the HPE DSM families,
as is already allowed with the MS family. We now only restrict
the functions to the currently documented set if the module parameter
"disable_vendor_specific" is set.  Since the module parameter
description says "Limit commands to the publicly specified set",
this approach seems correct.

Signed-off-by: Linda Knippers <[email protected]>
---
 drivers/acpi/nfit/core.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index 7361d00..b80d4d9 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -1407,11 +1407,13 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc 
*acpi_desc,
                if (disable_vendor_specific)
                        dsm_mask &= ~(1 << ND_CMD_VENDOR);
        } else if (nfit_mem->family == NVDIMM_FAMILY_HPE1) {
-               dsm_mask = 0x1c3c76;
+               dsm_mask = 0xffffffff;
+               if (disable_vendor_specific)
+                       dsm_mask &= ~(0x1c3c77);
        } else if (nfit_mem->family == NVDIMM_FAMILY_HPE2) {
-               dsm_mask = 0x1fe;
+               dsm_mask = 0xffffffff;
                if (disable_vendor_specific)
-                       dsm_mask &= ~(1 << 8);
+                       dsm_mask &= ~(0x0ff);
        } else if (nfit_mem->family == NVDIMM_FAMILY_MSFT) {
                dsm_mask = 0xffffffff;
        } else {
-- 
1.8.3.1

_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to