Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1678232

Re: [PATCH v3 4/7] acpi, nfit: Use bus_dsm_mask for passthru

From Dan Williams <dan.j.williams@intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH v3 4/7] acpi, nfit: Use bus_dsm_mask for passthru
Date 2017-06-30 00:00 +0200
Message-ID <tXPDI-4Tp-9@gated-at.bofh.it> (permalink)
References <tXKXo-1AK-9@gated-at.bofh.it> <tXKXp-1AK-45@gated-at.bofh.it> <tXPkm-4Jc-13@gated-at.bofh.it> <tXPu3-4Pd-23@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu, Jun 29, 2017 at 2:47 PM, Jerry Hoemann <jerry.hoemann@hpe.com> wrote:
> On Thu, Jun 29, 2017 at 02:35:14PM -0700, Dan Williams wrote:
>> On Thu, Jun 29, 2017 at 9:56 AM, Jerry Hoemann <jerry.hoemann@hpe.com> wrote:
>> > Populate bus_dsm_mask and use it to filter dsm calls that user can
>> > make through the pass thru interface.
>> >
>> > Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
>> > ---
>> >  drivers/acpi/nfit/core.c | 5 +++++
>> >  1 file changed, 5 insertions(+)
>> >
>> > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
>> > index b46fca2..971002b 100644
>> > --- a/drivers/acpi/nfit/core.c
>> > +++ b/drivers/acpi/nfit/core.c
>> > @@ -253,6 +253,8 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm,
>> >                 cmd_name = nvdimm_bus_cmd_name(cmd);
>> >                 cmd_mask = nd_desc->cmd_mask;
>> >                 dsm_mask = cmd_mask;
>> > +               if (cmd == ND_CMD_CALL)
>> > +                       dsm_mask = nd_desc->bus_dsm_mask;
>> >                 desc = nd_cmd_bus_desc(cmd);
>> >                 uuid = to_nfit_uuid(NFIT_DEV_BUS);
>> >                 handle = adev->handle;
>> > @@ -1624,6 +1626,9 @@ 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++)
>> > +               if (acpi_check_dsm(adev->handle, uuid, 1, 1ULL << i))
>> > +                       set_bit(i, &nd_desc->bus_dsm_mask);
>> >  }
>>
>> This loop checks for function 6 which is specified as reserved. Lets
>> explicitly test for the known good function numbers with something
>> like this:
>>
>> /* this should be private in drivers/acpi/nfit/nfit.h */
>> enum nfit_aux_cmds {
>>         NFIT_CMD_TRANSLATE_SPA = 5,
>>         NFIT_CMD_ARS_INJECT_SET = 7,
>>         NFIT_CMD_ARS_INJECT_CLEAR = 8,
>>         NFIT_CMD_ARS_INJECT_GET = 9,
>> };
>>
>> bus_dsm_mask =
>>         (1 << ND_CMD_ARS_CAP) |
>>         (1 << ND_CMD_ARS_START) |
>>         (1 << ND_CMD_ARS_STATUS) |
>>         (1 << ND_CMD_CLEAR_ERROR) |
>>         (1 << NFIT_CMD_TRANSLATE_SPA) |
>>         (1 << NFIT_CMD_ARS_INJECT_SET) |
>>         (1 << NFIT_CMD_ARS_INJECT_CLEAR) |
>>         (1 << NFIT_CMD_ARS_INJECT_GET);
>>
>> for_each_set_bit(i, &bus_dsm_mask...
>
>
>   I added the for_each_set_bit check in patch 7 of the series.

True, but in a patch series we shouldn't introduce a bug in one patch
and fix it later in the same series. Also, if patch7 goes away we
would need to fold that enabling in here.

Part of trying to parse what 0x3bf meant lead me to this, and I'm
wondering if we should do the same for the other magic vendor dsm_mask
constants, but that's a patch for another time.

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3 0/7] Enable DSM pass thru for root functions Jerry Hoemann <jerry.hoemann@hpe.com> - 2017-06-29 19:00 +0200
  [PATCH v3 7/7] acpi, nfit: override mask Jerry Hoemann <jerry.hoemann@hpe.com> - 2017-06-29 19:00 +0200
    Re: [PATCH v3 7/7] acpi, nfit: override mask Dan Williams <dan.j.williams@intel.com> - 2017-06-29 23:20 +0200
      Re: [PATCH v3 7/7] acpi, nfit: override mask Jerry Hoemann <jerry.hoemann@hpe.com> - 2017-06-30 00:20 +0200
        Re: [PATCH v3 7/7] acpi, nfit: override mask Dan Williams <dan.j.williams@intel.com> - 2017-06-30 01:00 +0200
  [PATCH v3 4/7] acpi, nfit: Use bus_dsm_mask for passthru Jerry Hoemann <jerry.hoemann@hpe.com> - 2017-06-29 19:00 +0200
    Re: [PATCH v3 4/7] acpi, nfit: Use bus_dsm_mask for passthru Dan Williams <dan.j.williams@intel.com> - 2017-06-29 23:40 +0200
      Re: [PATCH v3 4/7] acpi, nfit: Use bus_dsm_mask for passthru Jerry Hoemann <jerry.hoemann@hpe.com> - 2017-06-29 23:50 +0200
        Re: [PATCH v3 4/7] acpi, nfit: Use bus_dsm_mask for passthru Dan Williams <dan.j.williams@intel.com> - 2017-06-30 00:00 +0200
          Re: [PATCH v3 4/7] acpi, nfit: Use bus_dsm_mask for passthru Jerry Hoemann <jerry.hoemann@hpe.com> - 2017-06-30 01:30 +0200
            Re: [PATCH v3 4/7] acpi, nfit: Use bus_dsm_mask for passthru Dan Williams <dan.j.williams@intel.com> - 2017-06-30 03:30 +0200
  [PATCH v3 6/7] libnvdimm: New ACPI 6.2 DSM functions Jerry Hoemann <jerry.hoemann@hpe.com> - 2017-06-29 19:00 +0200
  [PATCH v3 3/7] libnvdimm: Add bus level dsm mask. Jerry Hoemann <jerry.hoemann@hpe.com> - 2017-06-29 19:00 +0200
    Re: [PATCH v3 3/7] libnvdimm: Add bus level dsm mask. Dan Williams <dan.j.williams@intel.com> - 2017-06-29 23:30 +0200
  [PATCH v3 1/7] libnvdimm: passthru functions clear to send Jerry Hoemann <jerry.hoemann@hpe.com> - 2017-06-29 19:00 +0200

csiph-web