lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 29 Jun 2017 15:50:44 -0700
From:   Dan Williams <dan.j.williams@...el.com>
To:     Jerry Hoemann <Jerry.Hoemann@....com>
Cc:     "linux-nvdimm@...ts.01.org" <linux-nvdimm@...ts.01.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v3 7/7] acpi, nfit: override mask

On Thu, Jun 29, 2017 at 3:18 PM, Jerry Hoemann <jerry.hoemann@....com> wrote:
> On Thu, Jun 29, 2017 at 02:16:17PM -0700, Dan Williams wrote:
>> On Thu, Jun 29, 2017 at 9:56 AM, Jerry Hoemann <jerry.hoemann@....com> 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@....com>
>> > ---
>> >  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.
>
> Override_dsm_mask is there to allow using old kernels with new
> firmware/hardware.
>
> It takes a long time to get even simple changes upstreamed, backported
> to distros, released, distributed to customers, installed.
>
> In testing, for months we have had to work around the inability to call
> these functions from linux.  A waste of effort.

I bought this argument for the DIMM level DSMs, but not the bus. Those
move much more slowly precisely because they always need to go through
the ACPI Speficication Working Group. DIMM level DSMs can change at
will and I saw the need for the kernel to be able to keep up with that
thrash especially at this early stage. We don't otherwise pre-enable
unknown / future-possible ACPI standard interfaces.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ