Messages in this thread | | | From | "Williams, Dan J" <> | Subject | [GIT PULL] libnvdimm fixes for 4.4-rc4 | Date | Fri, 4 Dec 2015 19:18:41 +0000 |
| |
Hi Linus, please pull from...
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes
...to receive:
1/ NFIT parsing regression fixes from Linda. The nvdimm hot-add implementation merged in 4.4-rc1 interpreted the specification in a way that breaks actual HPE platforms. We are also closing the loop with the ACPI Working Group to get this clarification added to the spec.
2/ Andy pointed out that his laptop without nvdimm resources is loading the e820-nvdimm module by default, fix that up to only load the module when an e820-type-12 range is present.
The following changes since commit 31ade3b83e1821da5fbb2f11b5b3d4ab2ec39db8:
Linux 4.4-rc3 (2015-11-29 18:58:26 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes
for you to fetch changes up to 6b577c9d772c45448aec784ec235cea228b4d3ad:
nfit: Adjust for different _FIT and NFIT headers (2015-11-30 14:51:46 -0800)
---------------------------------------------------------------- Dan Williams (1): libnvdimm, e820: skip module loading when no type-12
Linda Knippers (3): nfit: Account for table size length variation nfit: Fix the check for a successful NFIT merge nfit: Adjust for different _FIT and NFIT headers
arch/x86/kernel/pmem.c | 12 ++++++++ drivers/acpi/nfit.c | 65 +++++++++++++++++++++++++++++----------- drivers/acpi/nfit.h | 3 +- tools/testing/nvdimm/test/nfit.c | 49 ++++++++++-------------------- 4 files changed, 76 insertions(+), 53 deletions(-)
commit 6b577c9d772c45448aec784ec235cea228b4d3ad Author: Linda Knippers <linda.knippers@hpe.com> Date: Fri Nov 20 19:05:49 2015 -0500
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>
commit ff5a55f89c6690a0b292f1a7e0cd4532961588d5 Author: Linda Knippers <linda.knippers@hpe.com> Date: Fri Nov 20 19:05:48 2015 -0500
nfit: Fix the check for a successful NFIT merge Missed previously due to a lack of test coverage on a platform that provided an valid response to _FIT. Signed-off-by: Linda Knippers <linda.knippers@hpe.com> Acked-by: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
commit 826c416f3c9493b69630a811832cfb7c9007f840 Author: Linda Knippers <linda.knippers@hpe.com> Date: Fri Nov 20 19:05:47 2015 -0500
nfit: Account for table size length variation The size of NFIT tables don't necessarily match the size of the data structures that we use for them. For example, the NVDIMM Control Region Structure table is shorter for a device with no block control windows than for a device with block control windows. Other tables, such as Flush Hint Address Structure and the Interleave Structure are variable length by definition. Account for the size difference when comparing table entries by using the actual table size from the table header if it's less than the structure size. Signed-off-by: Linda Knippers <linda.knippers@hpe.com> Acked-by: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
commit bc0d0d093b379b0b379c429e3348498287c8a9ca Author: Dan Williams <dan.j.williams@intel.com> Date: Mon Nov 30 09:10:33 2015 -0800
libnvdimm, e820: skip module loading when no type-12 If there are no persistent memory ranges present then don't bother creating the platform device. Otherwise, it loads the full libnvdimm sub-system only to discover no resources present. Reported-by: Andy Lutomirski <luto@amacapital.net> Acked-by: Andy Lutomirski <luto@amacapital.net> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| |