Changes since v3 [1]: 1/ Drop the REQ_FLUSH support patches, more testing of alternatives is needed and it was posted too close to the merge window opening. 2/ Split out the s/PMD_SIZE/HPAGE_SIZE/ rename to its own patch. 3/ Fix build breakage on platforms that define PAGE_MASK as an int 4/ Rework the opt-in control for raw block DAX to honor the S_DAX for dax_do_io() (Dave) 5/ Drop usage of pfn_t in "libnvdimm, pmem: fix size trim in pmem_direct_access()" (Ross) 6/ Make it explicit that bdev_direct_access() never returns a mapping length less than PAGE_SIZE. (Ross) [1]: https://lists.01.org/pipermail/linux-nvdimm/2015-November/002660.html --- There were several topics developed during this cycle, some are ready and some are not. The items needing more review and testing are the pmem+dax updates with mm, ext4, and xfs dependencies. Topics like dax get_user_pages, fsync/msync support, and replacing dax_clear_blocks with blkdev_issue_zeroout. Instead, this more conservative set represents the fs and mm independent updates to dax and pmem: 1/ Enable dax mappings for raw block devices 2/ Use blk_queue_{enter|exit} and the availability of 'struct page' to fix lifetime issues and races with unloading the pmem driver. These depend on the latest 'libnvdimm-for-next' branch from nvdimm.git and the 'for-4.4/integrity' branch from Jens' tree (already merged for 4.4). All have been out for review prior to the merge window opening. I am not enthusiastic about sending patch revisions during the merge window, but it seems to be incremental fixlets on top of patches that had already received some review and approval. If there is any remaining concern with this set I'll simply fall back to the current state of libnvdimm-for-next (plus hotplug and coredump support) for this cycle. Please holler if you see any problems, or if you would like more time (i.e. wait for 4.5) to review. --- Dan Williams (14): pmem, dax: clean up clear_pmem() dax: increase granularity of dax_clear_blocks() operations dax: use HPAGE_SIZE instead of PMD_SIZE block, dax: fix lifetime of in-kernel dax mappings with dax_map_atomic() libnvdimm, pmem: move request_queue allocation earlier in probe libnvdimm, pmem: fix size trim in pmem_direct_access() um: kill pfn_t kvm: rename pfn_t to kvm_pfn_t mm, dax, pmem: introduce pfn_t block: notify queue death confirmation dax, pmem: introduce zone_device_revoke() and devm_memunmap_pages() block: introduce bdev_file_inode() block: enable dax for raw block devices block, dax: opt-in control for raw block dax support arch/arm/include/asm/kvm_mmu.h | 5 - arch/arm/kvm/mmu.c | 10 + arch/arm64/include/asm/kvm_mmu.h | 3 arch/mips/include/asm/kvm_host.h | 6 - arch/mips/kvm/emulate.c | 2 arch/mips/kvm/tlb.c | 14 +- arch/powerpc/include/asm/kvm_book3s.h | 4 - arch/powerpc/include/asm/kvm_ppc.h | 2 arch/powerpc/kvm/book3s.c | 6 - arch/powerpc/kvm/book3s_32_mmu_host.c | 2 arch/powerpc/kvm/book3s_64_mmu_host.c | 2 arch/powerpc/kvm/e500.h | 2 arch/powerpc/kvm/e500_mmu_host.c | 8 + arch/powerpc/kvm/trace_pr.h | 2 arch/powerpc/sysdev/axonram.c | 8 - arch/um/include/asm/page.h | 6 - arch/um/include/asm/pgtable-3level.h | 4 - arch/um/include/asm/pgtable.h | 2 arch/x86/include/asm/pmem.h | 7 - arch/x86/kvm/iommu.c | 11 +- arch/x86/kvm/mmu.c | 37 +++-- arch/x86/kvm/mmu_audit.c | 2 arch/x86/kvm/paging_tmpl.h | 6 - arch/x86/kvm/vmx.c | 2 arch/x86/kvm/x86.c | 2 block/Kconfig | 15 ++ block/blk-core.c | 12 +- block/blk-mq.c | 19 ++- block/blk.h | 2 block/ioctl.c | 60 ++++++++ drivers/block/brd.c | 4 - drivers/nvdimm/pmem.c | 108 ++++++++++----- drivers/s390/block/dcssblk.c | 10 + fs/block_dev.c | 129 ++++++++++++++++-- fs/dax.c | 233 ++++++++++++++++++++++----------- include/linux/blkdev.h | 10 + include/linux/fs.h | 11 ++ include/linux/io.h | 17 -- include/linux/kvm_host.h | 37 +++-- include/linux/kvm_types.h | 2 include/linux/mm.h | 91 +++++++++++++ include/linux/pfn.h | 9 + include/uapi/linux/fs.h | 2 kernel/memremap.c | 98 +++++++++++++- virt/kvm/kvm_main.c | 47 +++---- 45 files changed, 774 insertions(+), 297 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html