nfit: Adjust for different _FIT and NFIT headers
authorLinda Knippers <linda.knippers@hpe.com>
Sat, 21 Nov 2015 00:05:49 +0000 (19:05 -0500)
committerDan Williams <dan.j.williams@intel.com>
Mon, 30 Nov 2015 22:51:46 +0000 (14:51 -0800)
commit6b577c9d772c45448aec784ec235cea228b4d3ad
tree1a94393c25921fe612186623e122f8c3fe566668
parentff5a55f89c6690a0b292f1a7e0cd4532961588d5
nfit: Adjust for different _FIT and NFIT headers

When support for _FIT was added, the code presumed that the data
returned by the _FIT method is identical to the NFIT table, which
starts with an acpi_table_header.  However, the _FIT is defined
to return a data in the format of a series of NFIT type structure
entries and as a method, has an acpi_object header rather tahn
an acpi_table_header.

To address the differences, explicitly save the acpi_table_header
from the NFIT, since it is accessible through /sys, and change
the nfit pointer in the acpi_desc structure to point to the
table entries rather than the headers.

Reported-by: Jeff Moyer (jmoyer@redhat.com>
Signed-off-by: Linda Knippers <linda.knippers@hpe.com>
Acked-by: Vishal Verma <vishal.l.verma@intel.com>
[vishal: fix up unit test for new header assumptions]
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/acpi/nfit.c
drivers/acpi/nfit.h
tools/testing/nvdimm/test/nfit.c