libnvdimm for 4.5
Subsystems (2)
Hi Linus, please pull from...
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.5
...to receive the libnvdimm update for 4.5.
The bulk of this has appeared in -next and independently received a build success notification from the kbuild robot. The 'for-4.5/block- dax' topic branch was rebased over the weekend to drop the "block device end-of-life" rework that Al would like to see re-implemented with a notifier, and to address bug reports against the badblocks integration.
There is pending feedback against "libnvdimm: Add a poison list and export badblocks" received last week. Linda identified some localized fixups that we will handle incrementally.
This update has a minor conflict with the dax updates pending in -mm, but only for both sides wanting to add a new header-file-include to drivers/nvdimm/pmem.c.
---
The following changes since commit 9f9499ae8e6415cefc4fe0a96ad0e27864353c89:
Linux 4.4-rc5 (2015-12-13 17:42:58 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.5
for you to fetch changes up to 8b63b6bfc1a551acf154061699028c7032d7890c:
Merge branch 'for-4.5/block-dax' into for-4.5/libnvdimm (2016-01-10 07:53:55 -0800)
----------------------------------------------------------------
libnvdimm for 4.5
1/ Media error handling: The 'badblocks' implementation that originated in md-raid is up-levelled to a generic capability of a block device. This initial implementation is limited to being consulted in the pmem block-i/o path. Later, 'badblocks' will be consulted when creating dax mappings.
2/ Raw block device dax: For virtualization and other cases that want large contiguous mappings of persistent memory, add the capability to dax-mmap a block device directly.
3/ Increased /dev/mem restrictions: Add an option to treat all io-memory as IORESOURCE_EXCLUSIVE, i.e. disable /dev/mem access while a driver is actively using an address range. This behavior is controlled via the new CONFIG_IO_STRICT_DEVMEM option and can be overridden by the existing "iomem=relaxed" kernel command line option.
4/ Miscellaneous fixes include a 'pfn'-device huge page alignment fix, block device shutdown crash fix, and other small libnvdimm fixes.
----------------------------------------------------------------
Dan Williams (27):
libnvdimm, pfn: kill ND_PFN_ALIGN
libnvdimm, pfn: clean up pfn create parameters
libnvdimm, pfn: add 'align' attribute, default to HPAGE_SIZE libnvdimm, pfn: add parent uuid validation
libnvdimm, pfn: fix pfn seed creation
libnvdimm, pfn: enable pfn sysfs interface unit testing libnvdimm, pfn: fix nd_pfn_validate() return value handling tools/testing/libnvdimm: cleanup mock resource lookup libnvdimm, pfn: move 'memory mode' indication to sysfs
libnvdimm: fix namespace object confusion in is_uuid_busy()
arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug restrict /dev/mem to idle io memory ranges
block: introduce bdev_file_inode()
block: enable dax for raw block devices
block: fix del_gendisk() vs blkdev_ioctl crash
nfit_test: Enable DSMs for all test NFITs
libnvdimm, pmem: move definition of nvdimm_namespace_add_poison to nd.h
badblocks: rename badblocks_free to badblocks_exit
block: clarify badblocks lifetime
block, badblocks: introduce devm_init_badblocks
libnvdimm: don't fail init for full badblocks list
libnvdimm: convert to statically allocated badblocks
pmem: fail io-requests to known bad blocks
pmem, dax: disable dax in the presence of bad blocks libnvdimm, pmem: nvdimm_read_bytes() badblocks support
block: kill disk_{check|set|clear|alloc}_badblocks
Merge branch 'for-4.5/block-dax' into for-4.5/libnvdimm
Dmitry Krivenok (2):
nvdimm: improve diagnosibility of namespaces
nvdimm: do not show pfn_seed for non pmem regions
Vishal Verma (4):
badblocks: Add core badblock management code
block: Add badblock management for gendisks
md: convert to use the generic badblocks code
libnvdimm: Add a poison list and export badblocks
arch/arm/Kconfig | 1 +-
arch/arm/Kconfig.debug | 14 -
arch/arm64/Kconfig | 1 +-
arch/arm64/Kconfig.debug | 14 -
arch/frv/Kconfig | 1 +-
arch/m32r/Kconfig | 1 +-
arch/powerpc/Kconfig | 1 +-
arch/powerpc/Kconfig.debug | 12 -
arch/s390/Kconfig | 1 +-
arch/s390/Kconfig.debug | 12 -
arch/tile/Kconfig | 4 +--
arch/unicore32/Kconfig | 1 +-
arch/unicore32/Kconfig.debug | 14 -
arch/x86/Kconfig | 1 +-
arch/x86/Kconfig.debug | 17 --
block/Makefile | 2 +--
block/badblocks.c | 585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- block/genhd.c | 30 +--
block/ioctl.c | 71 +-+-+-+-+-
drivers/acpi/nfit.c | 203 +-+-+-+-+-+-+-+-+-+-+-+-+-
drivers/md/md.c | 516 +-+--------------------------------
drivers/md/md.h | 40 +---
drivers/nvdimm/core.c | 169 +-+-+-+-+-+-+-+-+-+-+-
drivers/nvdimm/namespace_devs.c | 132 +-+-+-+-+-+-+---
drivers/nvdimm/nd-core.h | 2 +-
drivers/nvdimm/nd.h | 16 +--
drivers/nvdimm/pfn_devs.c | 93 +-+-+-+---
drivers/nvdimm/pmem.c | 90 +-+-+-+---
drivers/nvdimm/region_devs.c | 66 +-----
fs/block_dev.c | 122 +-+-+-+-+-+-+--
include/linux/badblocks.h | 65 +-+-+-+-+-
include/linux/fs.h | 11 +-
include/linux/genhd.h | 2 +-
include/linux/libnvdimm.h | 1 +-
include/uapi/linux/fs.h | 2 +-
kernel/resource.c | 11 +--
lib/Kconfig.debug | 39 +-+-+-
tools/testing/nvdimm/Kbuild | 2 +-
tools/testing/nvdimm/test/iomap.c | 93 +-+-+----
tools/testing/nvdimm/test/nfit.c | 11 +-
40 files changed, 1673 insertions(+-), 796 deletions(-)
create mode 100644 block/badblocks.c
create mode 100644 include/linux/badblocks.h