[GIT PULL] libnvdimm for v5.7

From: Dan Williams
Date: Tue Apr 07 2020 - 16:12:57 EST


Hi Linus, please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
tags/libnvdimm-for-5.7

...to receive the libnvdimm and dax update for this cycle. There were
multiple touches outside of drivers/nvdimm/ this round to add cross
arch compatibility to the devm_memremap_pages() interface, enhance
numa information for persistent memory ranges, and add a
zero_page_range() dax operation. This cycle I switched from the
patchwork api to Konstantin's b4 script for collecting tags (from x86,
PowerPC, filesystem, and device-mapper folks), and everything looks to
have gone ok there. This has all appeared in -next with no reported
issues.

Given the current environment where one might need to step away on
short notice I thought it would be a good idea to highlight to you and
others a backup maintainer for libnvdimm. Vishal, has agreed to step
in if circumstances make me non-responsive for multiple days. Not
expecting anything, just being proactive.

---

The following changes since commit 11a48a5a18c63fd7621bb050228cebf13566e4d8:

Linux 5.6-rc2 (2020-02-16 13:16:59 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
tags/libnvdimm-for-5.7

for you to fetch changes up to f6d2b802f80d0ca89ee1f51c1781b3f79cdb25d5:

Merge branch 'for-5.7/libnvdimm' into libnvdimm-for-next (2020-04-02
19:55:17 -0700)

----------------------------------------------------------------
libnvdimm for 5.7

- Add support for region alignment configuration and enforcement to
fix compatibility across architectures and PowerPC page size
configurations.

- Introduce 'zero_page_range' as a dax operation. This facilitates
filesystem-dax operation without a block-device.

- Introduce phys_to_target_node() to facilitate drivers that want to
know resulting numa node if a given reserved address range was
onlined.

- Advertise a persistence-domain for of_pmem and papr_scm. The
persistence domain indicates where cpu-store cycles need to reach in
the platform-memory subsystem before the platform will consider them
power-fail protected.

- Promote numa_map_to_online_node() to a cross-kernel generic facility.

- Save x86 numa information to allow for node-id lookups for reserved
memory ranges, deploy that capability for the e820-pmem driver.

- Pick up some miscellaneous minor fixes, that missed v5.6-final,
including a some smatch reports in the ioctl path and some unit test
compilation fixups.

- Fixup some flexible-array declarations.

----------------------------------------------------------------
Aneesh Kumar K.V (1):
libnvdimm: Update persistence domain value for of_pmem and papr_scm device

Dan Carpenter (2):
acpi/nfit: improve bounds checking for 'func'
libnvdimm: Out of bounds read in __nd_ioctl()

Dan Williams (15):
ACPI: NUMA: Up-level "map to online node" functionality
mm/numa: Skip NUMA_NO_NODE and online nodes in numa_map_to_online_node()
powerpc/papr_scm: Switch to numa_map_to_online_node()
x86/mm: Introduce CONFIG_NUMA_KEEP_MEMINFO
x86/NUMA: Provide a range-to-target_node lookup facility
libnvdimm/e820: Retrieve and populate correct 'target_node' info
mm/memremap_pages: Kill unused __devm_memremap_pages()
mm/memremap_pages: Introduce memremap_compat_align()
libnvdimm/pfn: Prevent raw mode fallback if pfn-infoblock valid
libnvdimm/namespace: Enforce memremap_compat_align()
libnvdimm/region: Introduce NDD_LABELING
libnvdimm/region: Introduce an 'align' attribute
Merge branch 'for-5.6/libnvdimm-fixes' into libnvdimm-for-next
Merge branch 'for-5.7/numa' into libnvdimm-for-next
Merge branch 'for-5.7/libnvdimm' into libnvdimm-for-next

Gustavo A. R. Silva (3):
ACPI: NFIT: Replace zero-length array with flexible-array member
libnvdimm/label: Replace zero-length array with flexible-array member
libnvdimm/region: Replace zero-length array with flexible-array member

Jan Kara (1):
tools/testing/nvdimm: Fix compilation failure without
CONFIG_DEV_DAX_PMEM_COMPAT

Lukas Bulwahn (1):
MAINTAINERS: clarify maintenance of nvdimm testing tool

Santosh Sivaraj (1):
tools/test/nvdimm: Fix out of tree build

Vivek Goyal (7):
pmem: Add functions for reading/writing page to/from pmem
dax, pmem: Add a dax operation zero_page_range
s390,dcssblk,dax: Add dax zero_page_range operation to dcssblk driver
dm,dax: Add dax zero_page_range operation
dax: Use new dax zero page method for zeroing a page
dax,iomap: Add helper dax_iomap_zero() to zero a range
dax: Move mandatory ->zero_page_range() check in alloc_dax()

YueHaibing (1):
libnvdimm/region: Fix build error

MAINTAINERS | 1 +
arch/powerpc/Kconfig | 1 +
arch/powerpc/mm/ioremap.c | 21 +++++
arch/powerpc/platforms/pseries/papr_scm.c | 27 ++-----
arch/x86/Kconfig | 1 +
arch/x86/mm/numa.c | 67 +++++++++++----
drivers/acpi/nfit/core.c | 14 ++--
drivers/acpi/nfit/nfit.h | 13 +--
drivers/acpi/numa/srat.c | 41 ----------
drivers/dax/bus.c | 4 +-
drivers/dax/super.c | 28 ++++++-
drivers/md/dm-linear.c | 18 +++++
drivers/md/dm-log-writes.c | 17 ++++
drivers/md/dm-stripe.c | 23 ++++++
drivers/md/dm.c | 32 +++++++-
drivers/nvdimm/bus.c | 6 +-
drivers/nvdimm/dimm.c | 2 +-
drivers/nvdimm/dimm_devs.c | 95 +++++++++++++++++-----
drivers/nvdimm/e820.c | 18 +----
drivers/nvdimm/label.h | 2 +-
drivers/nvdimm/namespace_devs.c | 28 ++++++-
drivers/nvdimm/nd.h | 7 +-
drivers/nvdimm/of_pmem.c | 4 +-
drivers/nvdimm/pfn.h | 12 +++
drivers/nvdimm/pfn_devs.c | 40 +++++++--
drivers/nvdimm/pmem.c | 101 ++++++++++++++---------
drivers/nvdimm/region_devs.c | 130 ++++++++++++++++++++++++++----
drivers/s390/block/dcssblk.c | 20 ++++-
fs/dax.c | 59 ++++++--------
fs/iomap/buffered-io.c | 9 +--
include/linux/acpi.h | 23 +++++-
include/linux/dax.h | 21 ++---
include/linux/device-mapper.h | 3 +
include/linux/io.h | 2 -
include/linux/libnvdimm.h | 2 +
include/linux/memremap.h | 8 ++
include/linux/mmzone.h | 1 +
include/linux/numa.h | 30 ++++++-
lib/Kconfig | 3 +
mm/Kconfig | 5 ++
mm/mempolicy.c | 26 ++++++
mm/memremap.c | 23 ++++++
tools/testing/nvdimm/Kbuild | 4 +-
tools/testing/nvdimm/test/Kbuild | 4 +-
tools/testing/nvdimm/test/nfit.c | 2 +
45 files changed, 737 insertions(+), 261 deletions(-)