Hi Linus, please pull from: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.12 ...to receive the libnvdimm update for 4.12. The bulk of this has been in multiple -next releases. There were a few late breaking fixes and small features that got added in the last couple days, but the whole set has received a build success notification from the kbuild robot.+AKA- Another late change that was merged through the x86/mm tree causes a conflict with this branch. The proposed merge resolution below matches what Stephen Rothwell came up with as well. Lastly the default diffstat from git request-pull shows some changes from Greg's char-misc tree because I based the for-4.12/dax work on the new cdev+AF8-device+AF8-add() helper and related fallout in drivers/dax/. A cleaner diffstat is also included below starting from commit bfca9acf1a5d +ACI-Merge branch 'for-4.11/libnvdimm' into for-4.12/dax+ACI-. Please pull, thanks+ACE- diff --cc drivers/nvdimm/pmem.c index fbc640bf06b0,58db813e7b7b..c544d466ea51 --- a/drivers/nvdimm/pmem.c +-+-+- b/drivers/nvdimm/pmem.c +AEAAQABA- -232,15 -243,14 +-244,19 +AEAAQABA- static void pmem+AF8-release+AF8-queue(void +ACo-q blk+AF8-cleanup+AF8-queue(q)+ADs- +AH0- +-static void pmem+AF8-freeze+AF8-queue(void +ACo-q) +-+AHs- +- blk+AF8-freeze+AF8-queue+AF8-start(q)+ADs- +-+AH0- +- - static void pmem+AF8-release+AF8-disk(void +ACo-disk) +- static void pmem+AF8-release+AF8-disk(void +ACoAXwBf-pmem) +AHs- - del+AF8-gendisk(disk)+ADs- - put+AF8-disk(disk)+ADs- +- struct pmem+AF8-device +ACo-pmem +AD0- +AF8AXw-pmem+ADs- +- +- kill+AF8-dax(pmem-+AD4-dax+AF8-dev)+ADs- +- put+AF8-dax(pmem-+AD4-dax+AF8-dev)+ADs- +- del+AF8-gendisk(pmem-+AD4-disk)+ADs- +- put+AF8-disk(pmem-+AD4-disk)+ADs- +AH0- static int pmem+AF8-attach+AF8-disk(struct device +ACo-dev, diff --cc fs/dax.c index 6433650be833,ce9dc9c3e829..43bbd6d1037d --- a/fs/dax.c +-+-+- b/fs/dax.c +AEAAQABA- -979,24 -956,34 +-965,34 +AEAAQABA- static bool dax+AF8-range+AF8-is+AF8-aligned(struc return true+ADs- +AH0- - int +AF8AXw-dax+AF8-zero+AF8-page+AF8-range(struct block+AF8-device +ACo-bdev, sector+AF8-t sector, - unsigned int offset, unsigned int length) +- int +AF8AXw-dax+AF8-zero+AF8-page+AF8-range(struct block+AF8-device +ACo-bdev, +- struct dax+AF8-device +ACo-dax+AF8-dev, sector+AF8-t sector, +- unsigned int offset, unsigned int size) +AHs- - struct blk+AF8-dax+AF8-ctl dax +AD0- +AHs- - .sector +AD0- sector, - .size +AD0- PAGE+AF8-SIZE, - +AH0AOw- - - if (dax+AF8-range+AF8-is+AF8-aligned(bdev, offset, length)) +AHs- - sector+AF8-t start+AF8-sector +AD0- dax.sector +- (offset +AD4APg- 9)+ADs- +- if (dax+AF8-range+AF8-is+AF8-aligned(bdev, offset, size)) +AHs- +- sector+AF8-t start+AF8-sector +AD0- sector +- (offset +AD4APg- 9)+ADs- return blkdev+AF8-issue+AF8-zeroout(bdev, start+AF8-sector, - length +AD4APg- 9, GFP+AF8-NOFS, 0)+ADs- - size +AD4APg- 9, GFP+AF8-NOFS, true)+ADs- +-+- size +AD4APg- 9, GFP+AF8-NOFS, 0)+ADs- +AH0- else +AHs- - if (dax+AF8-map+AF8-atomic(bdev, +ACY-dax) +ADw- 0) - return PTR+AF8-ERR(dax.addr)+ADs- - clear+AF8-pmem(dax.addr +- offset, length)+ADs- - dax+AF8-unmap+AF8-atomic(bdev, +ACY-dax)+ADs- +- pgoff+AF8-t pgoff+ADs- +- long rc, id+ADs- +- void +ACo-kaddr+ADs- +- pfn+AF8-t pfn+ADs- +- +- rc +AD0- bdev+AF8-dax+AF8-pgoff(bdev, sector, size, +ACY-pgoff)+ADs- +- if (rc) +- return rc+ADs- +- +- id +AD0- dax+AF8-read+AF8-lock()+ADs- +- rc +AD0- dax+AF8-direct+AF8-access(dax+AF8-dev, pgoff, PHYS+AF8-PFN(size), +ACY-kaddr, +- +ACY-pfn)+ADs- +- if (rc +ADw- 0) +AHs- +- dax+AF8-read+AF8-unlock(id)+ADs- +- return rc+ADs- +- +AH0- +- clear+AF8-pmem(kaddr +- offset, size)+ADs- +- dax+AF8-read+AF8-unlock(id)+ADs- +AH0- return 0+ADs- +AH0- The following changes since commit 11e63f6d920d6f2dfd3cd421e939a4aec9a58dcd: x86, pmem: fix broken +AF8AXw-copy+AF8-user+AF8-nocache cache-bypass assumptions (2017-04-12 13:45:18 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-for-4.12 for you to fetch changes up to 736163671bcb163fc82600b46c83dfa89d532d95: Merge branch 'for-4.12/dax' into libnvdimm-for-next (2017-05-04 23:38:43 -0700) ---------------------------------------------------------------- libnvdimm for 4.12 +ACo- Region media error reporting: A libnvdimm region device is the parent to one or more namespaces. To date, media errors have been reported via the +ACI-badblocks+ACI- attribute attached to pmem block devices for namespaces in +ACI-raw+ACI- or +ACI-memory+ACI- mode. Given that namespaces can be in +ACI-device-dax+ACI- or +ACI-btt-sector+ACI- mode this new interface reports media errors generically, i.e. independent of namespace modes or state. This subsequently allows userspace tooling to craft +ACI-ACPI 6.1 Section 9.20.7.6 Function Index 4 - Clear Uncorrectable Error+ACI- requests and submit them via the ioctl path for NVDIMM root bus devices. +ACo- Introduce 'struct dax+AF8-device' and 'struct dax+AF8-operations': Prompted by a request from Linus and feedback from Christoph this allows for dax capable drivers to publish their own custom dax operations. This fixes the broken assumption that all dax operations are related to a persistent memory device, and makes it easier for other architectures and platforms to add customized persistent memory support. +ACo- 'libnvdimm' core updates: A new +ACI-deep+AF8-flush+ACI- sysfs attribute is available for storage appliance applications to manually trigger memory controllers to drain write-pending buffers that would otherwise be flushed automatically by the platform ADR (asynchronous-DRAM-refresh) mechanism at a power loss event. Support for +ACI-locked+ACI- DIMMs is included to prevent namespaces from surfacing when the namespace label data area is locked. Finally, fixes for various reported deadlocks and crashes, also tagged for -stable. +ACo- ACPI / nfit driver updates: General updates of the nfit driver to add DSM command overrides, ACPI 6.1 health state flags support, DSM payload debug available by default, and various fixes. Acknowledgements that came after the branch was pushed: commmit 565851c972b5 +ACI-device-dax: fix sysfs attribute deadlock+ACI- Tested-by: Yi Zhang +ADw-yizhan+AEA-redhat.com+AD4- commit 23f498448362 +ACI-libnvdimm: rework region badblocks clearing+ACI- Tested-by: Toshi Kani +ADw-toshi.kani+AEA-hpe.com+AD4- ---------------------------------------------------------------- Arnd Bergmann (1): block, dax: use correct format string in bdev+AF8-dax+AF8-supported Dan Williams (39): acpi, nfit: fix acpi+AF8-get+AF8-table leak Merge branch 'for-4.11/libnvdimm' into for-4.12/dax device-dax: rename 'dax+AF8-dev' to 'dev+AF8-dax' dax: refactor dax-fs into a generic provider of 'struct dax+AF8-device' instances Revert +ACI-libnvdimm: band aid btt vs clear poison locking+ACI- acpi, nfit: add support for acpi 6.1 dimm state flags tools/testing/nvdimm: test acpi 6.1 health state flags acpi, nfit: support +ACI-map failed+ACI- dimms acpi, nfit: collate health state flags acpi, nfit: limit -+AD4-flush+AF8-probe() to initialization work tools/testing/nvdimm: fix nfit+AF8-test shutdown crash acpi, nfit: fix module unload vs workqueue shutdown race dax: add a facility to lookup a dax device by 'host' device name dax: introduce dax+AF8-operations pmem: add dax+AF8-operations support axon+AF8-ram: add dax+AF8-operations support brd: add dax+AF8-operations support dcssblk: add dax+AF8-operations support block: kill bdev+AF8-dax+AF8-capable() dax: introduce dax+AF8-direct+AF8-access() dm: add dax+AF8-device and dax+AF8-operations support libnvdimm, region: fix flush hint detection crash dm: teach dm-targets to use a dax+AF8-device +- dax+AF8-operations ext2, ext4, xfs: retrieve dax+AF8-device for iomap operations Revert +ACI-block: use DAX for partition table reads+ACI- filesystem-dax: convert to dax+AF8-direct+AF8-access() block, dax: convert bdev+AF8-dax+AF8-supported() to dax+AF8-direct+AF8-access() block: remove block+AF8-device+AF8-operations -+AD4-direct+AF8-access() x86, dax, pmem: remove indirection around memcpy+AF8-from+AF8-pmem() libnvdimm, region: sysfs trigger for nvdimm+AF8-flush() acpi, nfit: kill ACPI+AF8-NFIT+AF8-DEBUG libnvdimm: rework region badblocks clearing libnvdimm: fix nvdimm+AF8-bus+AF8-lock() vs device+AF8-lock() ordering libnvdimm: restore +ACI-libnvdimm: band aid btt vs clear poison locking+ACI- device-dax: fix sysfs attribute deadlock libnvdimm: convert NDD+AF8- flags to use bitops, introduce NDD+AF8-LOCKED libnvdimm: handle locked label storage areas libnvdimm, pfn: fix 'npfns' vs section alignment Merge branch 'for-4.12/dax' into libnvdimm-for-next Dave Jiang (5): libnvdimm: add mechanism to publish badblocks at the region level libnvdimm: Add 'resource' sysfs attribute to regions libnvdimm: add support for clear poison list and badblocks for device dax device-dax, tools/testing/nvdimm: enable device-dax with mock resources libnvdimm: fix clear poison locking with spinlock and GFP+AF8-NOWAIT allocation Gerald Schaefer (1): brd: fix uninitialized use of brd-+AD4-dax+AF8-dev Linda Knippers (3): acpi, nfit: allow override of built-in bitmasks for nvdimm DSMs acpi, nfit: allow specifying a default DSM family acpi, nfit: remove unnecessary newline Oliver O'Halloran (1): device-dax: improve fault handler debug output Pushkar Jambhlekar (1): device-dax: fix dax+AF8-dev+AF8-huge+AF8-fault() unknown fault size handling Toshi Kani (3): libnvdimm: fix phys+AF8-addr for nvdimm+AF8-clear+AF8-poison libnvdimm, pmem: fix a NULL pointer BUG in nd+AF8-pmem+AF8-notify libnvdimm: fix clear length of nvdimm+AF8-forget+AF8-poison() Documentation/DocBook/rapidio.tmpl +AHw- 3 - .../devicetree/bindings/auxdisplay/hit,hd44780.txt +AHw- 44 +-+- .../devicetree/bindings/fpga/fpga-region.txt +AHw- 1 +- .../bindings/fpga/lattice-ice40-fpga-mgr.txt +AHw- 21 +- Documentation/driver-api/vme.rst +AHw- 363 +-+-+------- Documentation/w1/slaves/00-INDEX +AHw- 4 +- Documentation/w1/slaves/w1+AF8-ds2413 +AHw- 50 +-+- Documentation/w1/slaves/w1+AF8-ds2438 +AHw- 63 +-+- MAINTAINERS +AHw- 1 - arch/arm/mach-ep93xx/ts72xx.c +AHw- 26 +- arch/powerpc/platforms/Kconfig +AHw- 1 +- arch/powerpc/sysdev/axonram.c +AHw- 45 +-- arch/x86/hyperv/hv+AF8-init.c +AHw- 2 +-- arch/x86/include/asm/pmem.h +AHw- 5 - arch/x86/include/asm/string+AF8-64.h +AHw- 1 +- arch/x86/include/uapi/asm/hyperv.h +AHw- 7 +-- block/Kconfig +AHw- 1 +- block/partition-generic.c +AHw- 17 +-- drivers/Makefile +AHw- 2 +-- drivers/acpi/nfit/Kconfig +AHw- 12 - drivers/acpi/nfit/core.c +AHw- 233 +-+-+-+--- drivers/acpi/nfit/nfit.h +AHw- 4 +-- drivers/android/Kconfig +AHw- 2 +-- drivers/auxdisplay/Kconfig +AHw- 14 +- drivers/auxdisplay/Makefile +AHw- 2 +- drivers/auxdisplay/charlcd.c +AHw- 818 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- drivers/auxdisplay/hd44780.c +AHw- 325 +-+-+-+-+-+-+-+- drivers/block/Kconfig +AHw- 1 +- drivers/block/brd.c +AHw- 48 +-- drivers/char/hpet.c +AHw- 2 +-- drivers/char/virtio+AF8-console.c +AHw- 2 +-- drivers/dax/Kconfig +AHw- 10 +-- drivers/dax/Makefile +AHw- 5 +-- drivers/dax/dax-private.h +AHw- 57 +-+- drivers/dax/dax.h +AHw- 15 +-- drivers/dax/device-dax.h +AHw- 25 +- drivers/dax/+AHs-dax.c +AD0APg- device.c+AH0- +AHw- 516 +-+-+-+---------- drivers/dax/pmem.c +AHw- 10 +-- drivers/dax/super.c +AHw- 425 +-+-+-+-+-+-+-+-+-+-+- drivers/fpga/Kconfig +AHw- 13 +- drivers/fpga/Makefile +AHw- 2 +- drivers/fpga/fpga-bridge.c +AHw- 17 +-- drivers/fpga/fpga-mgr.c +AHw- 2 +-- drivers/fpga/fpga-region.c +AHw- 8 +-- drivers/fpga/ice40-spi.c +AHw- 207 +-+-+-+-+-+- drivers/fpga/ts73xx-fpga.c +AHw- 156 +-+-+-+- drivers/fpga/zynq-fpga.c +AHw- 28 +-- drivers/hv/channel.c +AHw- 10 +-- drivers/hv/channel+AF8-mgmt.c +AHw- 48 +-- drivers/hv/connection.c +AHw- 65 +-- drivers/hv/hv.c +AHw- 5 +-- drivers/hv/hv+AF8-balloon.c +AHw- 2 - drivers/hv/hv+AF8-fcopy.c +AHw- 2 - drivers/hv/hv+AF8-kvp.c +AHw- 12 +-- drivers/hv/hv+AF8-snapshot.c +AHw- 2 - drivers/hv/hyperv+AF8-vmbus.h +AHw- 29 +-- drivers/hv/ring+AF8-buffer.c +AHw- 22 +-- drivers/hv/vmbus+AF8-drv.c +AHw- 4 +-- drivers/md/Kconfig +AHw- 1 +- drivers/md/dm-core.h +AHw- 1 +- drivers/md/dm-linear.c +AHw- 27 +-- drivers/md/dm-snap.c +AHw- 6 +-- drivers/md/dm-stripe.c +AHw- 29 +-- drivers/md/dm-target.c +AHw- 6 +-- drivers/md/dm.c +AHw- 67 +-- drivers/misc/Kconfig +AHw- 9 +- drivers/misc/Makefile +AHw- 1 +- drivers/misc/aspeed-lpc-ctrl.c +AHw- 267 +-+-+-+-+-+-+- drivers/misc/panel.c +AHw- 827 +-+-+------------------- drivers/nvdimm/Kconfig +AHw- 1 +- drivers/nvdimm/btt+AF8-devs.c +AHw- 2 +-- drivers/nvdimm/bus.c +AHw- 122 +-+-- drivers/nvdimm/claim.c +AHw- 37 +-- drivers/nvdimm/core.c +AHw- 51 +-- drivers/nvdimm/dax+AF8-devs.c +AHw- 2 +-- drivers/nvdimm/dimm.c +AHw- 2 +- drivers/nvdimm/dimm+AF8-devs.c +AHw- 19 +-- drivers/nvdimm/namespace+AF8-devs.c +AHw- 17 +-- drivers/nvdimm/nd-core.h +AHw- 1 +- drivers/nvdimm/nd.h +AHw- 2 +- drivers/nvdimm/pfn+AF8-devs.c +AHw- 8 +-- drivers/nvdimm/pmem.c +AHw- 90 +-+-- drivers/nvdimm/pmem.h +AHw- 7 +-- drivers/nvdimm/region.c +AHw- 24 +- drivers/nvdimm/region+AF8-devs.c +AHw- 83 +-+-- drivers/pps/pps.c +AHw- 123 +-+-- drivers/rapidio/rio-sysfs.c +AHw- 76 +-- drivers/rapidio/rio.c +AHw- 3 - drivers/rapidio/rio.h +AHw- 2 - drivers/s390/block/Kconfig +AHw- 1 +- drivers/s390/block/dcssblk.c +AHw- 45 +-- drivers/vme/vme.c +AHw- 469 +-+-+-+-+-+-+-+-+-+-+-- drivers/w1/slaves/Kconfig +AHw- 6 +- drivers/w1/slaves/Makefile +AHw- 1 +- drivers/w1/slaves/w1+AF8-ds2438.c +AHw- 390 +-+-+-+-+-+-+-+-+-+- drivers/w1/slaves/w1+AF8-ds2760.h +AHw- 10 +-- drivers/w1/w1+AF8-family.h +AHw- 1 +- drivers/zorro/zorro-driver.c +AHw- 15 +-- drivers/zorro/zorro-sysfs.c +AHw- 76 +-- drivers/zorro/zorro.c +AHw- 3 - drivers/zorro/zorro.h +AHw- 3 +-- fs/block+AF8-dev.c +AHw- 117 +--- fs/char+AF8-dev.c +AHw- 86 +-+-+- fs/dax.c +AHw- 297 +-+-+-+----- fs/ext2/inode.c +AHw- 9 +-- fs/ext4/inode.c +AHw- 9 +-- fs/iomap.c +AHw- 3 +-- fs/xfs/xfs+AF8-iomap.c +AHw- 10 +- include/linux/blkdev.h +AHw- 19 +-- include/linux/cdev.h +AHw- 5 +- include/linux/dax.h +AHw- 34 +-- include/linux/device-mapper.h +AHw- 8 +-- include/linux/fpga/fpga-mgr.h +AHw- 1 +- include/linux/hyperv.h +AHw- 31 +-- include/linux/iomap.h +AHw- 1 +- include/linux/libnvdimm.h +AHw- 8 +-- include/linux/pmem.h +AHw- 23 - include/linux/string.h +AHw- 8 +- include/linux/vme.h +AHw- 12 +-- include/misc/charlcd.h +AHw- 42 +-+- include/uapi/linux/aspeed-lpc-ctrl.h +AHw- 60 +-+- include/uapi/linux/ndctl.h +AHw- 1 +- include/uapi/linux/pps.h +AHw- 19 +- tools/testing/nvdimm/Kbuild +AHw- 11 +-- tools/testing/nvdimm/dax-dev.c +AHw- 49 +-+- tools/testing/nvdimm/pmem-dax.c +AHw- 21 +-- tools/testing/nvdimm/test/nfit.c +AHw- 54 +-- 127 files changed, 5423 insertions(+-), 2265 deletions(-) create mode 100644 Documentation/devicetree/bindings/auxdisplay/hit,hd44780.txt create mode 100644 Documentation/devicetree/bindings/fpga/lattice-ice40-fpga-mgr.txt create mode 100644 Documentation/w1/slaves/w1+AF8-ds2413 create mode 100644 Documentation/w1/slaves/w1+AF8-ds2438 create mode 100644 drivers/auxdisplay/charlcd.c create mode 100644 drivers/auxdisplay/hd44780.c create mode 100644 drivers/dax/dax-private.h create mode 100644 drivers/dax/device-dax.h rename drivers/dax/+AHs-dax.c +AD0APg- device.c+AH0- (50+ACU-) create mode 100644 drivers/dax/super.c create mode 100644 drivers/fpga/ice40-spi.c create mode 100644 drivers/fpga/ts73xx-fpga.c create mode 100644 drivers/misc/aspeed-lpc-ctrl.c create mode 100644 drivers/w1/slaves/w1+AF8-ds2438.c create mode 100644 include/misc/charlcd.h create mode 100644 include/uapi/linux/aspeed-lpc-ctrl.h create mode 100644 tools/testing/nvdimm/dax-dev.c --- Diffstat starting from commit bfca9acf1a5d +ACI-Merge branch 'for- 4.11/libnvdimm' into for-4.12/dax+ACI- arch/powerpc/platforms/Kconfig +AHw- 1 +- arch/powerpc/sysdev/axonram.c +AHw- 45 +-+-+-- arch/x86/include/asm/pmem.h +AHw- 5 - arch/x86/include/asm/string+AF8-64.h +AHw- 1 +- block/Kconfig +AHw- 1 +- block/partition-generic.c +AHw- 17 +-- drivers/Makefile +AHw- 2 +-- drivers/acpi/nfit/Kconfig +AHw- 12 - drivers/acpi/nfit/core.c +AHw- 233 +-+-+-+-+-+-+-+-+-+-+-+------- drivers/acpi/nfit/nfit.h +AHw- 4 +-- drivers/block/Kconfig +AHw- 1 +- drivers/block/brd.c +AHw- 48 +-+-+-- drivers/dax/Kconfig +AHw- 10 +-- drivers/dax/Makefile +AHw- 5 +-- drivers/dax/dax-private.h +AHw- 57 +-+-+-+-+- drivers/dax/dax.h +AHw- 15 +-- drivers/dax/device-dax.h +AHw- 25 +-+- drivers/dax/+AHs-dax.c +AD0APg- device.c+AH0- +AHw- 501 +-+-+-+-+-+-+-+-+-+-+-+---------------------------- drivers/dax/pmem.c +AHw- 10 +-- drivers/dax/super.c +AHw- 425 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- drivers/md/Kconfig +AHw- 1 +- drivers/md/dm-core.h +AHw- 1 +- drivers/md/dm-linear.c +AHw- 27 +--- drivers/md/dm-snap.c +AHw- 6 +-- drivers/md/dm-stripe.c +AHw- 29 +-+-- drivers/md/dm-target.c +AHw- 6 +-- drivers/md/dm.c +AHw- 67 +-+-+-+--- drivers/nvdimm/Kconfig +AHw- 1 +- drivers/nvdimm/btt+AF8-devs.c +AHw- 2 +-- drivers/nvdimm/bus.c +AHw- 122 +-+-+-+-+-+-+-+-+-- drivers/nvdimm/claim.c +AHw- 37 +--- drivers/nvdimm/core.c +AHw- 51 +-+--- drivers/nvdimm/dax+AF8-devs.c +AHw- 2 +-- drivers/nvdimm/dimm.c +AHw- 2 +- drivers/nvdimm/dimm+AF8-devs.c +AHw- 19 +-- drivers/nvdimm/namespace+AF8-devs.c +AHw- 17 +-- drivers/nvdimm/nd-core.h +AHw- 1 +- drivers/nvdimm/nd.h +AHw- 2 +- drivers/nvdimm/pfn+AF8-devs.c +AHw- 8 +-- drivers/nvdimm/pmem.c +AHw- 90 +-+-+-+-+--- drivers/nvdimm/pmem.h +AHw- 7 +-- drivers/nvdimm/region.c +AHw- 24 +-+- drivers/nvdimm/region+AF8-devs.c +AHw- 83 +-+-+-+-+-+-- drivers/s390/block/Kconfig +AHw- 1 +- drivers/s390/block/dcssblk.c +AHw- 45 +-+-+-- fs/block+AF8-dev.c +AHw- 117 +-+-+------- fs/dax.c +AHw- 297 +-+-+-+-+-+-+-+-+-+-+-+------------ fs/ext2/inode.c +AHw- 9 +-- fs/ext4/inode.c +AHw- 9 +-- fs/iomap.c +AHw- 3 +-- fs/xfs/xfs+AF8-iomap.c +AHw- 10 +- include/linux/blkdev.h +AHw- 19 +-- include/linux/dax.h +AHw- 34 +-+-- include/linux/device-mapper.h +AHw- 8 +-- include/linux/iomap.h +AHw- 1 +- include/linux/libnvdimm.h +AHw- 8 +-- include/linux/pmem.h +AHw- 23 -- include/linux/string.h +AHw- 8 +- include/uapi/linux/ndctl.h +AHw- 1 +- tools/testing/nvdimm/Kbuild +AHw- 11 +-- tools/testing/nvdimm/dax-dev.c +AHw- 49 +-+-+-+- tools/testing/nvdimm/pmem-dax.c +AHw- 21 +-- tools/testing/nvdimm/test/nfit.c +AHw- 54 +-+-+-+-- 63 files changed, 1807 insertions(+-), 944 deletions(-) create mode 100644 drivers/dax/dax-private.h create mode 100644 drivers/dax/device-dax.h rename drivers/dax/+AHs-dax.c +AD0APg- device.c+AH0- (51+ACU-) create mode 100644 drivers/dax/super.c create mode 100644 tools/testing/nvdimm/dax-dev.c