Thread (5 messages) 5 messages, 3 authors, 2016-06-20

Re: [PATCH] nfit: add Microsoft NVDIMM DSM command set to white list

From: Dan Williams <hidden>
Date: 2016-06-20 17:22:19
Also in: lkml, nvdimm

On Sun, Jun 19, 2016 at 10:59 AM, Pavel Machek [off-list ref] wrote:
Hi!
quoted
quoted
Add the Microsoft _DSM command set to the white list of NVDIMM command sets.

This command set is documented at https://msdn.microsoft.com/library/windows/hardware/mt604741.

Signed-off-by: Stuart Hayes <redacted>
---
drivers/acpi/nfit.c        | 9 ++++++---
drivers/acpi/nfit.h        | 4 ++++
include/uapi/linux/ndctl.h | 1 +
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c
index 2215fc8..48fc575 100644
--- a/drivers/acpi/nfit.c
+++ b/drivers/acpi/nfit.c
@@ -1130,11 +1130,11 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
    }

    /*
-     * Until standardization materializes we need to consider up to 3
+     * Until standardization materializes we need to consider several
     * different command sets.  Note, that checking for function0 (bit0)
     * tells us if any commands are reachable through this uuid.
     */
-    for (i = NVDIMM_FAMILY_INTEL; i <= NVDIMM_FAMILY_HPE2; i++)
+    for (i = NVDIMM_FAMILY_INTEL; i <= NVDIMM_FAMILY_MSFT; i++)
        if (acpi_check_dsm(adev_dimm->handle, to_nfit_uuid(i), 1, 1))
Time to introduce NVDIMM_FAMILY_MAX?
I hope not.  This is the last of what can be considered "first
generation" DSM support, everything else should wait for
standardization.  I.e. no ongoing need to keep changing this line.
quoted
quoted
@@ -1150,7 +1150,9 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
        dsm_mask = 0x1fe;
        if (disable_vendor_specific)
            dsm_mask &= ~(1 << 8);
-    } else {
+    } else if (nfit_mem->family == NVDIMM_FAMILY_MSFT)
+        dsm_mask = 0xffffffff;
+    else {
        dev_err(dev, "unknown dimm command family\n");
        nfit_mem->family = -1;
        return force_enable_dimms ? 0 : -ENODEV;
I'd really use {} around the if (), so that it is clear what the else belongs to.
Sure, I can fix this up.  Stuart, no need to re-send.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help