Re: [PATCH v3 7/7] acpi, nfit: override mask

From: Dan Williams
Date: Thu Jun 29 2017 - 17:16:28 EST


On Thu, Jun 29, 2017 at 9:56 AM, Jerry Hoemann <jerry.hoemann@xxxxxxx> wrote:
> Have module parameter override_dsm_mask override the dsm_mask for
> root calls like it does for non-root dsm calls.
>
> Signed-off-by: Jerry Hoemann <jerry.hoemann@xxxxxxx>
> ---
> drivers/acpi/nfit/core.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
> index 7d2f1a0..87acaf2 100644
> --- a/drivers/acpi/nfit/core.c
> +++ b/drivers/acpi/nfit/core.c
> @@ -1627,6 +1627,7 @@ static void acpi_nfit_init_dsms(struct acpi_nfit_desc *acpi_desc)
> struct nvdimm_bus_descriptor *nd_desc = &acpi_desc->nd_desc;
> const u8 *uuid = to_nfit_uuid(NFIT_DEV_BUS);
> struct acpi_device *adev;
> + unsigned long dsm_mask;
> int i;
>
> nd_desc->cmd_mask = acpi_desc->bus_cmd_force_en;
> @@ -1638,7 +1639,11 @@ static void acpi_nfit_init_dsms(struct acpi_nfit_desc *acpi_desc)
> if (acpi_check_dsm(adev->handle, uuid, 1, 1ULL << i))
> set_bit(i, &nd_desc->cmd_mask);
> set_bit(ND_CMD_CALL, &nd_desc->cmd_mask);
> - for (i = 0; i < ND_CMD_CALL; i++)
> +
> + dsm_mask = 0x3bf;
> + if (override_dsm_mask)
> + dsm_mask = override_dsm_mask;
> + for_each_set_bit(i, &dsm_mask, BITS_PER_LONG)
> if (acpi_check_dsm(adev->handle, uuid, 1, 1ULL << i))
> set_bit(i, &nd_desc->bus_dsm_mask);
> }

I don't think we need this patch. 'override_dsm_mask' is there to make
it easier for vendor-specific DSM testing and debug for DIMM-level
DSMs. The root bus is not vendor specific and the command set is not
evolving at the same rate we are seeing change at DIMM-level DSMs.