| From 5e9e38d0db1d29efed1dd4cf9a70115d33521be7 Mon Sep 17 00:00:00 2001 |
| From: Dan Williams <dan.j.williams@intel.com> |
| Date: Mon, 14 Jan 2019 14:07:19 -0800 |
| Subject: acpi/nfit: Block function zero DSMs |
| |
| From: Dan Williams <dan.j.williams@intel.com> |
| |
| commit 5e9e38d0db1d29efed1dd4cf9a70115d33521be7 upstream. |
| |
| In preparation for using function number 0 as an error value, prevent it |
| from being considered a valid function value by acpi_nfit_ctl(). |
| |
| Cc: <stable@vger.kernel.org> |
| Cc: stuart hayes <stuart.w.hayes@gmail.com> |
| Fixes: e02fb7264d8a ("nfit: add Microsoft NVDIMM DSM command set...") |
| Reported-by: Jeff Moyer <jmoyer@redhat.com> |
| Reviewed-by: Jeff Moyer <jmoyer@redhat.com> |
| Signed-off-by: Dan Williams <dan.j.williams@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/acpi/nfit/core.c | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| --- a/drivers/acpi/nfit/core.c |
| +++ b/drivers/acpi/nfit/core.c |
| @@ -1844,6 +1844,13 @@ static int acpi_nfit_add_dimm(struct acp |
| return 0; |
| } |
| |
| + /* |
| + * Function 0 is the command interrogation function, don't |
| + * export it to potential userspace use, and enable it to be |
| + * used as an error value in acpi_nfit_ctl(). |
| + */ |
| + dsm_mask &= ~1UL; |
| + |
| guid = to_nfit_uuid(nfit_mem->family); |
| for_each_set_bit(i, &dsm_mask, BITS_PER_LONG) |
| if (acpi_check_dsm(adev_dimm->handle, guid, |