A new sub-system in support of non-volatile memory storage devices. Stephen, please add libnvdimm-for-next to -next: git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm libnvdimm-for-next Changes since v6 [1]: 1/ Deferred the patches dependent on ->rw_bytes() (BTT - stacked block driver, BLK - mmio aperture windows driver, NFIT_TEST - unit test infrastructure for all libnvdimm + nfit components) to their own patchset. Make the ->rw_bytes() implementation the first patch in that series (Christoph) 2/ Collected acks from Christoph and Rafael! 3/ Add a HAS_IOMEM dependency to CONFIG_BLK_DEV_PMEM following commit b6f2098fb708 "block: pmem: Add dependency on HAS_IOMEM" in 4.1-rc8. 4/ Move libnvdimm to subsys_initcall() and move arch/x86/kernel/pmem.c back to device_initcall(). This allows ACPI_NFIT to be built-in. (Linda) 5/ Drop the ACPI_DRIVER_ALL_NOTIFY_EVENTS flag in the nfit driver. (Rafael) 6/ Reference count the nvdimm_drvdata object. This fixes a bug that was found when the unit tests were extended to test disabling an nvdimm while a region device still had references to label data. Diffstat since v6: arch/x86/kernel/pmem.c | 2 +- drivers/acpi/nfit.c | 1 - drivers/nvdimm/Kconfig | 1 + drivers/nvdimm/bus.c | 2 +- drivers/nvdimm/core.c | 2 +- drivers/nvdimm/dimm.c | 21 ++++----------------- drivers/nvdimm/dimm_devs.c | 34 ++++++++++++++++++++++++++++++++++ drivers/nvdimm/namespace_devs.c | 43 +++++++++++++++++++++++++------------------ drivers/nvdimm/nd-core.h | 2 +- drivers/nvdimm/nd.h | 3 +++ drivers/nvdimm/region_devs.c | 21 ++++++++------------- include/linux/libnvdimm.h | 8 ++++++++ 12 files changed, 87 insertions(+), 53 deletions(-) [1]: https://lists.01.org/pipermail/linux-nvdimm/2015-June/001166.html --- Dan Williams (16): e820, efi: add ACPI 6.0 persistent memory types libnvdimm, nfit: initial libnvdimm infrastructure and NFIT support libnvdimm: control character device and nvdimm_bus sysfs attributes libnvdimm, nfit: dimm/memory-devices libnvdimm: control (ioctl) messages for nvdimm_bus and nvdimm devices libnvdimm, nvdimm: dimm driver and base libnvdimm device-driver infrastructure libnvdimm, nfit: regions (block-data-window, persistent memory, volatile memory) libnvdimm: support for legacy (non-aliasing) nvdimms libnvdimm, pmem: move pmem to drivers/nvdimm/ libnvdimm, pmem: add libnvdimm support to the pmem driver libnvdimm, nfit: add interleave-set state-tracking infrastructure libnvdimm: namespace indices: read and validate libnvdimm: pmem label sets and namespace instantiation. libnvdimm: blk labels and namespace instantiation libnvdimm: write pmem label set libnvdimm: write blk label set arch/arm64/kernel/efi.c | 1 arch/ia64/kernel/efi.c | 4 arch/x86/Kconfig | 3 arch/x86/boot/compressed/eboot.c | 4 arch/x86/include/uapi/asm/e820.h | 1 arch/x86/kernel/e820.c | 28 + arch/x86/kernel/pmem.c | 92 +- arch/x86/platform/efi/efi.c | 3 drivers/Kconfig | 2 drivers/Makefile | 1 drivers/acpi/Kconfig | 26 + drivers/acpi/Makefile | 1 drivers/acpi/nfit.c | 1123 ++++++++++++++++++++++++++ drivers/acpi/nfit.h | 100 ++ drivers/block/Kconfig | 11 drivers/block/Makefile | 1 drivers/block/pmem.c | 262 ------ drivers/nvdimm/Kconfig | 36 + drivers/nvdimm/Makefile | 13 drivers/nvdimm/bus.c | 668 +++++++++++++++ drivers/nvdimm/core.c | 396 +++++++++ drivers/nvdimm/dimm.c | 102 ++ drivers/nvdimm/dimm_devs.c | 542 +++++++++++++ drivers/nvdimm/label.c | 926 +++++++++++++++++++++ drivers/nvdimm/label.h | 141 +++ drivers/nvdimm/namespace_devs.c | 1645 ++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/nd-core.h | 80 ++ drivers/nvdimm/nd.h | 135 +++ drivers/nvdimm/pmem.c | 278 ++++++ drivers/nvdimm/region.c | 96 ++ drivers/nvdimm/region_devs.c | 585 ++++++++++++++ include/linux/efi.h | 3 include/linux/libnvdimm.h | 123 +++ include/linux/nd.h | 98 ++ include/uapi/linux/Kbuild | 1 include/uapi/linux/ndctl.h | 197 +++++ 36 files changed, 7417 insertions(+), 311 deletions(-) create mode 100644 drivers/acpi/nfit.c create mode 100644 drivers/acpi/nfit.h delete mode 100644 drivers/block/pmem.c create mode 100644 drivers/nvdimm/Kconfig create mode 100644 drivers/nvdimm/Makefile create mode 100644 drivers/nvdimm/bus.c create mode 100644 drivers/nvdimm/core.c create mode 100644 drivers/nvdimm/dimm.c create mode 100644 drivers/nvdimm/dimm_devs.c create mode 100644 drivers/nvdimm/label.c create mode 100644 drivers/nvdimm/label.h create mode 100644 drivers/nvdimm/namespace_devs.c create mode 100644 drivers/nvdimm/nd-core.h create mode 100644 drivers/nvdimm/nd.h create mode 100644 drivers/nvdimm/pmem.c create mode 100644 drivers/nvdimm/region.c create mode 100644 drivers/nvdimm/region_devs.c create mode 100644 include/linux/libnvdimm.h create mode 100644 include/linux/nd.h create mode 100644 include/uapi/linux/ndctl.h -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html