Re: [PATCH v5 0/6] nvdimm: Add an IOCTL pass thru for DSM calls

From: Dan Williams
Date: Sun Jan 10 2016 - 19:03:58 EST


On Wed, Jan 6, 2016 at 3:58 PM, Dan Williams <dan.j.williams@xxxxxxxxx>wrote:
> On Wed, Jan 6, 2016 at 3:03 PM, Jerry Hoemann <jerry.hoemann@xxxxxxx> wrote:
[..]
>> Jerry Hoemann (6):
>> ACPI / util: Fix acpi_evaluate_dsm() argument type
>> nvdimm: Clean-up access mode check.
>> nvdimm: Add wrapper for IOCTL pass thru
>> nvdimm: Fix security issue with DSM IOCTL.
>> nvdimm: Increase max envelope size for IOCTL
>> nvdimm: Add IOCTL pass thru functions
>
> These look good to me.
>
> I'll tag "nvdimm: Fix security issue with DSM IOCTL." for -stable.
>
> Thanks Jerry!

I went to go write a test / support in ndctl for these and noticed a
few things I want to address before merging.

1/ Advertise 'call_dsm' as a supported command alongside the others.

2/ Disallow potentially invalid calls to reach firmware. At a minimum
the kernel needs to know the uuid in advance for any dsm it wants to
send. I.e. check the 'dsm_fun_idx' against the dsm_mask. This is
also important for making sure the kernel can manage exclusive access
to the configuration data area if present
(ND_CMD_{GET|SET}_CONFIG_DATA).

3/ This is minor, but it follows from 1/ that there may be some nvdimm
bus implementations that do not implement 'call_dsm' support.
'nfit_test' is currently one of those buses and we need to check for
that explicitly in nd_ioctl.

I have some patches in progress to address these.