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

From: Dan Williams
Date: Mon Jun 20 2016 - 13:22:21 EST


On Sun, Jun 19, 2016 at 10:59 AM, Pavel Machek <pavel@xxxxxx> wrote:
> Hi!
>
>> >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 <stuart.w.hayes@xxxxxxxxx>
>> >---
>> > 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.

>
>> >@@ -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.