Skip to contentSkip to conversation

libnvdimm for 4.5

GIT PULL Williams, Dan J 1 participant 1 message Jan 13, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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