1. 17 Feb, 2015 40 commits
    • Linus Torvalds's avatar
      Merge tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 878ba61a
      Linus Torvalds authored
      Pull ARM SoC platform changes from Olof Johansson:
       "New and updated SoC support.  Also included are some cleanups where
        the platform maintainers hadn't separated cleanups from new developent
        in separate branches.
      
        Some of the larger things worth pointing out:
      
         - A large set of changes from Alexandre Belloni and Nicolas Ferre
           preparing at91 platforms for multiplatform and cleaning up quite a
           bit in the process.
      
         - Removal of CSR's "Marco" SoC platform that never made it out to the
           market.  We love seeing these since it means the vendor published
           support before product was out, which is exactly what we want!
      
        New platforms this release are:
      
         - Conexant Digicolor (CX92755 SoC)
         - Hisilicon HiP01 SoC
         - CSR/sirf Atlas7 SoC
         - ST STiH418 SoC
         - Common code changes for Nvidia Tegra132 (64-bit SoC)
      
        We're seeing more and more platforms having a harder time labelling
        changes as cleanups vs new development -- which is a good sign that
        we've come quite far on the cleanup effort.  So over time we might
        start combining the cleanup and new-development branches more"
      
      * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (124 commits)
        ARM: at91/trivial: unify functions and machine names
        ARM: at91: remove at91_dt_initialize and machine init_early()
        ARM: at91: change board files into SoC files
        ARM: at91: remove at91_boot_soc
        ARM: at91: move alternative initial mapping to board-dt-sama5.c
        ARM: at91: merge all SOC_AT91SAM9xxx
        ARM: at91: at91rm9200: set idle and restart from rm9200_dt_device_init()
        ARM: digicolor: select syscon and timer
        ARM: zynq: Simplify SLCR initialization
        ARM: zynq: PM: Fixed simple typo.
        ARM: zynq: Setup default gpio number for Xilinx Zynq
        ARM: digicolor: add low level debug support
        ARM: initial support for Conexant Digicolor CX92755 SoC
        ARM: OMAP2+: Add dm816x hwmod support
        ARM: OMAP2+: Add clock domain support for dm816x
        ARM: OMAP2+: Add board-generic.c entry for ti81xx
        ARM: at91: pm: remove warning to remove SOC_AT91SAM9263 usage
        ARM: at91: remove unused mach/system_rev.h
        ARM: at91: stop using HAVE_AT91_DBGUx
        ARM: at91: fix ordering of SRAM and PM initialization
        ...
      878ba61a
    • Linus Torvalds's avatar
      Merge tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · ea7531ac
      Linus Torvalds authored
      Pull ARM SoC cleanups from Olof Johansson:
       "This is a good healthy set of various code removals.  Total net delta
        is 8100 lines removed.
      
        Among the larger cleanups are:
      
         - Removal of old Samsung S3C DMA infrastructure by Arnd
         - Removal of the non-DT version of the 'lager' board by Magnus Damm
         - General stale code removal on OMAP and Davinci by Rickard Strandqvist
         - Removal of non-DT support on am3517 platforms by Tony Lindgren
      
        ... plus several other cleanups of various platforms across the board"
      
      * tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (47 commits)
        ARM: sirf: drop redundant function and marco declaration
        arm: omap: specify PMUs are for ARMv7 CPUs
        arm: shmobile: specify PMUs are for ARMv7 CPUs
        arm: iop: specify PMUs are for XScale CPUs
        arm: pxa: specify PMUs are for XScale CPUs
        arm: realview: specify PMU types
        ARM: SAMSUNG: remove unused DMA infrastructure
        ARM: OMAP3: Add back Kconfig option MACH_OMAP3517EVM for ASoC
        ARM: davinci: Remove CDCE949 driver
        ARM: at91: remove useless at91rm9200_set_type()
        ARM: at91: remove useless at91rm9200_dt_initialize()
        ARM: at91: move debug-macro.S into the common space
        ARM: at91: remove useless at91_sysirq_mask_rtx
        ARM: at91: remove useless config MACH_AT91SAM9_DT
        ARM: at91: remove useless config MACH_AT91RM9200_DT
        ARM: at91: remove unused mach/memory.h
        ARM: at91: remove useless header file includes
        ARM: at91: remove unneeded header file
        rtc: at91/Kconfig: remove useless options
        ARM: at91/Documentation: add a README for Atmel SoCs
        ...
      ea7531ac
    • Linus Torvalds's avatar
      Merge tag 'fixes-non-critical-for-linus' of... · 4025fa97
      Linus Torvalds authored
      Merge tag 'fixes-non-critical-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
      
      Pull ARM SoC non-critical fixes from Olof Johansson:
       "Here's a small collection of fixes accrued during the last release
        that weren't considered severe enough to merge during the -rc series.
      
        A few of these are around resurrecting TI81xx support that's been
        broken for quite a while, the rest are smaller fixes -- most for PXA
        but a few across the board.
      
        There are also some updates to MAINTAINERS here, in particular for
        Broadcom platforms"
      
      * tag 'fixes-non-critical-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (23 commits)
        MAINTAINERS: fix git repositories for Broadcom SoCs
        ARM: pxa: fix broken isa interrupts for zeus and viper
        ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL enabled on UART3
        ARM: OMAP: DRA7: hwmod: Make gpmc software supervised as the smart idle is broken
        ARM: AM43xx: hwmod: set DSS submodule parent hwmods
        ARM: OMAP2+: hwmod: print error if wait_target_ready() failed
        MAINTAINERS: add maintainer for OMAP hwmod data
        ARM: OMAP2+: Disable omap3 PM init for ti81xx
        ARM: OMAP2+: Fix reboot for 81xx
        ARM: OMAP2+: Fix dm814 and dm816 for clocks and timer init
        ARM: OMAP2+: Fix ti81xx class type
        ARM: OMAP2+: Fix ti81xx devtype
        ARM: OMAP2+: Fix error handling for omap2_clk_enable_init_clocks
        MAINTAINERS: add a git entry for BMIPS-based BCM7xxx SoCs
        MAINTAINERS: add a git entry for BCM7xxx ARM-based SoCs
        MAINTAINERS: update Broadcom Cygnus SoC git tree
        MAINTAINERS: move BCM63xx ARM-based SoCs git tree
        hx4700: regulator: declare full constraints
        ARM: pxa: add regulator_has_full_constraints to spitz board file
        ARM: pxa: add regulator_has_full_constraints to poodle board file
        ...
      4025fa97
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · c397f8fa
      Linus Torvalds authored
      Merge fifth set of updates from Andrew Morton:
      
       - A few things which were awaiting merges from linux-next:
           - rtc
           - ocfs2
           - misc others
      
       - Willy's "dax" feature: direct fs access to memory (mainly NV-DIMMs)
         which isn't backed by pageframes.
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (37 commits)
        rtc: add driver for DS1685 family of real time clocks
        MAINTAINERS: add entry for Maxim PMICs on Samsung boards
        lib/Kconfig: use bool instead of boolean
        powerpc: drop _PAGE_FILE and pte_file()-related helpers
        ocfs2: set append dio as a ro compat feature
        ocfs2: wait for orphan recovery first once append O_DIRECT write crash
        ocfs2: complete the rest request through buffer io
        ocfs2: do not fallback to buffer I/O write if appending
        ocfs2: allocate blocks in ocfs2_direct_IO_get_blocks
        ocfs2: implement ocfs2_direct_IO_write
        ocfs2: add orphan recovery types in ocfs2_recover_orphans
        ocfs2: add functions to add and remove inode in orphan dir
        ocfs2: prepare some interfaces used in append direct io
        MAINTAINERS: fix spelling mistake & remove trailing WS
        dax: does not work correctly with virtual aliasing caches
        brd: rename XIP to DAX
        ext4: add DAX functionality
        dax: add dax_zero_page_range
        ext2: get rid of most mentions of XIP in ext2
        ext2: remove ext2_aops_xip
        ...
      c397f8fa
    • Joshua Kinard's avatar
      rtc: add driver for DS1685 family of real time clocks · aaaf5fbf
      Joshua Kinard authored
      This adds a driver for the Dallas/Maxim DS1685-family of RTC chips.  It
      supports the DS1685/DS1687, DS1688/DS1691, DS1689/DS1693, DS17285/DS17287,
      DS17485/DS17487, and DS17885/DS17887 RTC chips.  These chips are commonly
      found in SGI O2 and SGI Octane systems.  It was originally derived from a
      driver patch submitted by Matthias Fuchs many years ago for use in
      EPPC-405-UC modules, which also used these RTCs.  In addition to the
      time-keeping functions, this RTC also handles the shutdown mechanism of
      the O2 and Octane and acts as a partial NVRAM for the boot PROMS in these
      systems.
      
      Verified on both an SGI O2 and an SGI Octane.
      Signed-off-by: default avatarJoshua Kinard <kumba@gentoo.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aaaf5fbf
    • Krzysztof Kozlowski's avatar
      MAINTAINERS: add entry for Maxim PMICs on Samsung boards · befeb596
      Krzysztof Kozlowski authored
      Add myself and Chanwoo Choi as supporters to help in reviewing patches
      for Maxim 77686 PMIC and Maxim 14577/77693 MUIC drivers:
       - mfd (all of them),
       - extcon (extcon-max14577.c, extcon-max77693.c),
       - regulator (all of them),
       - clock (clk-max77686.c),
       - RTC (rtc-max77686.c).
      
      Lately I am the author of contributors to them. These drivers are used
      on Exynos-based boards (Trats 2, Gear 1 and Gear 2).
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
      Cc: Chanwoo Choi <cw00.choi@samsung.com>
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Cc: Lee Jones <lee.jones@linaro.org>
      Cc: Liam Girdwood <lgirdwood@gmail.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Mike Turquette <mturquette@linaro.org>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Acked-by: default avatarMark Brown <broonie@kernel.org>
      Acked-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      befeb596
    • Christoph Jaeger's avatar
      lib/Kconfig: use bool instead of boolean · 841c0090
      Christoph Jaeger authored
      Keyword 'boolean' for type definition attributes is considered
      deprecated and, therefore, should not be used anymore.
      
      See http://lkml.kernel.org/r/cover.1418003065.git.cj@linux.com
      See http://lkml.kernel.org/r/1419108071-11607-1-git-send-email-cj@linux.comSigned-off-by: default avatarChristoph Jaeger <cj@linux.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      841c0090
    • Kirill A. Shutemov's avatar
      powerpc: drop _PAGE_FILE and pte_file()-related helpers · 780fc564
      Kirill A. Shutemov authored
      We've replaced remap_file_pages(2) implementation with emulation.  Nobody
      creates non-linear mapping anymore.
      Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      780fc564
    • Joseph Qi's avatar
      ocfs2: set append dio as a ro compat feature · 160cc266
      Joseph Qi authored
      Intruduce a bit OCFS2_FEATURE_RO_COMPAT_APPEND_DIO and check it in
      write flow. If the bit is not set, fall back to the old way.
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Cc: Weiwei Wang <wangww631@huawei.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Xuejiufei <xuejiufei@huawei.com>
      Cc: alex chen <alex.chen@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      160cc266
    • Joseph Qi's avatar
      ocfs2: wait for orphan recovery first once append O_DIRECT write crash · 4813962b
      Joseph Qi authored
      If one node has crashed with orphan entry leftover, another node which do
      append O_DIRECT write to the same file will override the
      i_dio_orphaned_slot.  Then the old entry won't be cleaned forever.  If
      this case happens, we let it wait for orphan recovery first.
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Cc: Weiwei Wang <wangww631@huawei.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Xuejiufei <xuejiufei@huawei.com>
      Cc: alex chen <alex.chen@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4813962b
    • Joseph Qi's avatar
      ocfs2: complete the rest request through buffer io · 3a83b342
      Joseph Qi authored
      Complte the rest request thourgh buffer io after direct write performed.
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Cc: Weiwei Wang <wangww631@huawei.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Xuejiufei <xuejiufei@huawei.com>
      Cc: alex chen <alex.chen@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3a83b342
    • Joseph Qi's avatar
      ocfs2: do not fallback to buffer I/O write if appending · d943d59d
      Joseph Qi authored
      Now we can do direct io and do not fallback to buffered IO any more in
      case of append O_DIRECT write.
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Cc: Weiwei Wang <wangww631@huawei.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Xuejiufei <xuejiufei@huawei.com>
      Cc: alex chen <alex.chen@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d943d59d
    • Joseph Qi's avatar
      ocfs2: allocate blocks in ocfs2_direct_IO_get_blocks · 49255dce
      Joseph Qi authored
      Allow blocks allocation in ocfs2_direct_IO_get_blocks.
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Cc: Weiwei Wang <wangww631@huawei.com>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Xuejiufei <xuejiufei@huawei.com>
      Cc: alex chen <alex.chen@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      49255dce
    • Joseph Qi's avatar
      ocfs2: implement ocfs2_direct_IO_write · 24c40b32
      Joseph Qi authored
      Implement ocfs2_direct_IO_write.  Add the inode to orphan dir first, and
      then delete it once append O_DIRECT finished.
      
      This is to make sure block allocation and inode size are consistent.
      
      [akpm@linux-foundation.org: fix it for "block: Add discard flag to blkdev_issue_zeroout() function"]
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Cc: Weiwei Wang <wangww631@huawei.com>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Xuejiufei <xuejiufei@huawei.com>
      Cc: alex chen <alex.chen@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      24c40b32
    • Joseph Qi's avatar
      ocfs2: add orphan recovery types in ocfs2_recover_orphans · ed460cff
      Joseph Qi authored
      Define two orphan recovery types, which indicates if need truncate file or
      not.
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Cc: Weiwei Wang <wangww631@huawei.com>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Xuejiufei <xuejiufei@huawei.com>
      Cc: alex chen <alex.chen@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ed460cff
    • Joseph Qi's avatar
      ocfs2: add functions to add and remove inode in orphan dir · 06ee5c75
      Joseph Qi authored
      Add functions to add inode to orphan dir and remove inode in orphan dir.
      Here we do not call ocfs2_prepare_orphan_dir and ocfs2_orphan_add
      directly.  Because append O_DIRECT will add inode to orphan two and may
      result in more than one orphan entry for the same inode.
      
      [akpm@linux-foundation.org: avoid dynamic stack allocation]
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Cc: Weiwei Wang <wangww631@huawei.com>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Xuejiufei <xuejiufei@huawei.com>
      Cc: alex chen <alex.chen@huawei.com>
      Cc: Fengguang Wu <fengguang.wu@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      06ee5c75
    • Joseph Qi's avatar
      ocfs2: prepare some interfaces used in append direct io · 026749a8
      Joseph Qi authored
      Currently in case of append O_DIRECT write (block not allocated yet),
      ocfs2 will fall back to buffered I/O.  This has some disadvantages.
      Firstly, it is not the behavior as expected.  Secondly, it will consume
      huge page cache, e.g.  in mass backup scenario.  Thirdly, modern
      filesystems such as ext4 support this feature.
      
      In this patch set, the direct I/O write doesn't fallback to buffer I/O
      write any more because the allocate blocks are enabled in direct I/O now.
      
      This patch (of 9):
      
      Prepare some interfaces which will be used in append O_DIRECT write.
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Cc: Weiwei Wang <wangww631@huawei.com>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Xuejiufei <xuejiufei@huawei.com>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: alex chen <alex.chen@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      026749a8
    • Akash Shende's avatar
    • Matthew Wilcox's avatar
      dax: does not work correctly with virtual aliasing caches · d92576f1
      Matthew Wilcox authored
      The DAX code accesses the underlying storage through the kernel's linear
      mapping, which may not be cache-coherent with user mappings on ARM, MIPS
      or SPARC.  Temporarily disable the DAX code until this problem is
      resolved.
      
      The original XIP code also had this problem, but it was never noticed.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d92576f1
    • Matthew Wilcox's avatar
      brd: rename XIP to DAX · a7a97fc9
      Matthew Wilcox authored
      Since this is relating to FS_XIP, not KERNEL_XIP, it should be called
      DAX instead of XIP.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a7a97fc9
    • Ross Zwisler's avatar
      ext4: add DAX functionality · 923ae0ff
      Ross Zwisler authored
      This is a port of the DAX functionality found in the current version of
      ext2.
      
      [matthew.r.wilcox@intel.com: heavily tweaked]
      [akpm@linux-foundation.org: remap_pages went away]
      Signed-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarAndreas Dilger <andreas.dilger@intel.com>
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      923ae0ff
    • Matthew Wilcox's avatar
      dax: add dax_zero_page_range · 25726bc1
      Matthew Wilcox authored
      This new function allows us to support hole-punch for DAX files by zeroing
      a partial page, as opposed to the dax_truncate_page() function which can
      only truncate to the end of the page.  Reimplement dax_truncate_page() to
      call dax_zero_page_range().
      
      [ross.zwisler@linux.intel.com: ported to 3.13-rc2]
      [akpm@linux-foundation.org: fix typos in comments]
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Signed-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      25726bc1
    • Matthew Wilcox's avatar
      ext2: get rid of most mentions of XIP in ext2 · 9c3ce9ec
      Matthew Wilcox authored
      To help people transition, accept the 'xip' mount option (and report it in
      /proc/mounts), but print a message encouraging people to switch over to
      the 'dax' option.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Reviewed-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9c3ce9ec
    • Matthew Wilcox's avatar
      ext2: remove ext2_aops_xip · 97443aa8
      Matthew Wilcox authored
      We shouldn't need a special address_space_operations any more
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Reviewed-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      97443aa8
    • Matthew Wilcox's avatar
      vfs,ext2: remove CONFIG_EXT2_FS_XIP and rename CONFIG_FS_XIP to CONFIG_FS_DAX · 6cd176a5
      Matthew Wilcox authored
      The fewer Kconfig options we have the better.  Use the generic
      CONFIG_FS_DAX to enable XIP support in ext2 as well as in the core.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6cd176a5
    • Matthew Wilcox's avatar
      ext2: remove xip.c and xip.h · 07642381
      Matthew Wilcox authored
      These files are now empty, so delete them
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Reviewed-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      07642381
    • Matthew Wilcox's avatar
      ext2: remove ext2_use_xip · ed87e920
      Matthew Wilcox authored
      Replace ext2_use_xip() with test_opt(XIP) which expands to the same code
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Reviewed-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ed87e920
    • Matthew Wilcox's avatar
      ext2: remove ext2_xip_verify_sb() · 0de4830f
      Matthew Wilcox authored
      Jan Kara pointed out that calling ext2_xip_verify_sb() in ext2_remount()
      doesn't make sense, since changing the XIP option on remount isn't
      allowed.  It also doesn't make sense to re-check whether blocksize is
      supported since it can't change between mounts.
      
      Replace the call to ext2_xip_verify_sb() in ext2_fill_super() with the
      equivalent check and delete the definition.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0de4830f
    • Matthew Wilcox's avatar
      vfs: remove get_xip_mem · e748dcd0
      Matthew Wilcox authored
      All callers of get_xip_mem() are now gone.  Remove checks for it,
      initialisers of it, documentation of it and the only implementation of it.
       Also remove mm/filemap_xip.c as it is now empty.  Also remove
      documentation of the long-gone get_xip_page().
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e748dcd0
    • Matthew Wilcox's avatar
      dax: replace XIP documentation with DAX documentation · 95ec8dab
      Matthew Wilcox authored
      Based on the original XIP documentation, this documents the current state
      of affairs, and includes instructions on how users can enable DAX if their
      devices and kernel support it.
      Signed-off-by: default avatarMatthew Wilcox <willy@linux.intel.com>
      Reviewed-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      95ec8dab
    • Matthew Wilcox's avatar
      dax,ext2: replace xip_truncate_page with dax_truncate_page · 4c0ccfef
      Matthew Wilcox authored
      It takes a get_block parameter just like nobh_truncate_page() and
      block_truncate_page()
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Reviewed-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4c0ccfef
    • Matthew Wilcox's avatar
      dax,ext2: replace the XIP page fault handler with the DAX page fault handler · f7ca90b1
      Matthew Wilcox authored
      Instead of calling aops->get_xip_mem from the fault handler, the
      filesystem passes a get_block_t that is used to find the appropriate
      blocks.
      
      This requires that all architectures implement copy_user_page().  At the
      time of writing, mips and arm do not.  Patches exist and are in progress.
      
      [akpm@linux-foundation.org: remap_file_pages went away]
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f7ca90b1
    • Matthew Wilcox's avatar
      dax,ext2: replace ext2_clear_xip_target with dax_clear_blocks · 289c6aed
      Matthew Wilcox authored
      This is practically generic code; other filesystems will want to call it
      from other places, but there's nothing ext2-specific about it.
      
      Make it a little more generic by allowing it to take a count of the number
      of bytes to zero rather than fixing it to a single page.  Thanks to Dave
      Hansen for suggesting that I need to call cond_resched() if zeroing more
      than one page.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      289c6aed
    • Matthew Wilcox's avatar
      dax,ext2: replace XIP read and write with DAX I/O · d475c634
      Matthew Wilcox authored
      Use the generic AIO infrastructure instead of custom read and write
      methods.  In addition to giving us support for AIO, this adds the missing
      locking between read() and truncate().
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Reviewed-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d475c634
    • Matthew Wilcox's avatar
      vfs,ext2: introduce IS_DAX(inode) · fbbbad4b
      Matthew Wilcox authored
      Use an inode flag to tag inodes which should avoid using the page cache.
      Convert ext2 to use it instead of mapping_is_xip().  Prevent I/Os to files
      tagged with the DAX flag from falling back to buffered I/O.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Reviewed-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fbbbad4b
    • Matthew Wilcox's avatar
      mm: allow page fault handlers to perform the COW · 2e4cdab0
      Matthew Wilcox authored
      Currently COW of an XIP file is done by first bringing in a read-only
      mapping, then retrying the fault and copying the page.  It is much more
      efficient to tell the fault handler that a COW is being attempted (by
      passing in the pre-allocated page in the vm_fault structure), and allow
      the handler to perform the COW operation itself.
      
      The handler cannot insert the page itself if there is already a read-only
      mapping at that address, so allow the handler to return VM_FAULT_LOCKED
      and set the fault_page to be NULL.  This indicates to the MM code that the
      i_mmap_lock is held instead of the page lock.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2e4cdab0
    • Matthew Wilcox's avatar
      mm: fix XIP fault vs truncate race · 283307c7
      Matthew Wilcox authored
      DAX is a replacement for the variation of XIP currently supported by the
      ext2 filesystem.  We have three different things in the tree called 'XIP',
      and the new focus is on access to data rather than executables, so a name
      change was in order.  DAX stands for Direct Access.  The X is for
      eXciting.
      
      The new focus on data access has resulted in more careful attention to
      races that exist in the current XIP code, but are not hit by the use-case
      that it was designed for.  XIP's architecture worked fine for ext2, but
      DAX is architected to work with modern filsystems such as ext4 and XFS.
      DAX is not intended for use with btrfs; the value that btrfs adds relies
      on manipulating data and writing data to different locations, while DAX's
      value is for write-in-place and keeping the kernel from touching the data.
      
      DAX was developed in order to support NV-DIMMs, but it's become clear that
      its usefuless extends beyond NV-DIMMs and there are several potential
      customers including the tracing machinery.  Other people want to place the
      kernel log in an area of memory, as long as they have a BIOS that does not
      clear DRAM on reboot.
      
      Patch 1 is a bug fix, probably worth including in 3.18.
      
      Patches 2 & 3 are infrastructure for DAX.
      
      Patches 4-8 replace the XIP code with its DAX equivalents, transforming
      ext2 to use the DAX code as we go.  Note that patch 10 is the
      Documentation patch.
      
      Patches 9-15 clean up after the XIP code, removing the infrastructure
      that is no longer needed and renaming various XIP things to DAX.
      Most of these patches were added after Jan found things he didn't
      like in an earlier version of the ext4 patch ... that had been copied
      from ext2.  So ext2 i being transformed to do things the same way that
      ext4 will later.  The ability to mount ext2 filesystems with the 'xip'
      option is retained, although the 'dax' option is now preferred.
      
      Patch 16 adds some DAX infrastructure to support ext4.
      
      Patch 17 adds DAX support to ext4.  It is broadly similar to ext2's DAX
      support, but it is more efficient than ext4's due to its support for
      unwritten extents.
      
      Patch 18 is another cleanup patch renaming XIP to DAX.
      
      My thanks to Mathieu Desnoyers for his reviews of the v11 patchset.  Most
      of the changes below were based on his feedback.
      
      This patch (of 18):
      
      Pagecache faults recheck i_size after taking the page lock to ensure that
      the fault didn't race against a truncate.  We don't have a page to lock in
      the XIP case, so use i_mmap_lock_read() instead.  It is locked in the
      truncate path in unmap_mapping_range() after updating i_size.  So while we
      hold it in the fault path, we are guaranteed that either i_size has
      already been updated in the truncate path, or that the truncate will
      subsequently call zap_page_range_single() and so remove the mapping we
      have just inserted.
      
      There is a window of time in which i_size has been reduced and the thread
      has a mapping to a page which will be removed from the file, but this is
      harmless as the page will not be allocated to a different purpose before
      the thread's access to it is revoked.
      
      [akpm@linux-foundation.org: switch to i_mmap_lock_read(), add comment in unmap_single_vma()]
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Reviewed-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      283307c7
    • Arnaud Ebalard's avatar
      arm: dts: zynq: update isl9305 compatible string to use isil vendor prefix · b4770fe5
      Arnaud Ebalard authored
      "isil" and "isl" prefixes are used at various locations inside the kernel
      to reference Intersil corporation.  This patch is part of a series fixing
      those locations were "isl" is used in compatible strings to use the now
      expected "isil" prefix instead (NASDAQ symbol for Intersil and most used
      version).
      
      Note: isl9305 is an I2C device so the patch does not in fact currently
      depend on the introduction of "isil"-based compatible string in isl9305
      driver (provided by another patch) because I2C core does not check the
      prefix yet.
      Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Kumar Gala <galak@codeaurora.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Alexandre Courbot <gnurou@gmail.com>
      Cc: Uwe Kleine-Knig <uwe@kleine-koenig.org>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Peter Huewe <peter.huewe@infineon.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Darshana Padmadas <darshanapadmadas@gmail.com>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b4770fe5
    • Arnaud Ebalard's avatar
      staging: iio: isl29028: deprecate use of isl in compatible string for isil · 37e5157d
      Arnaud Ebalard authored
      "isil" and "isl" prefixes are used at various locations inside the kernel
      to reference Intersil corporation.  This patch is part of a series fixing
      those locations were "isl" is used in compatible strings to use the now
      expected "isil" prefix instead (NASDAQ symbol for Intersil and most used
      version).  The old compatible string is kept for backward compatibility.
      Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Kumar Gala <galak@codeaurora.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Alexandre Courbot <gnurou@gmail.com>
      Cc: Uwe Kleine-Knig <uwe@kleine-koenig.org>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Peter Huewe <peter.huewe@infineon.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Darshana Padmadas <darshanapadmadas@gmail.com>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      37e5157d
    • Arnaud Ebalard's avatar
      rtc: isl12057: deprecate use of isl in compatible string for isil · 401b3c6a
      Arnaud Ebalard authored
      "isil" and "isl" prefixes are used at various locations inside the kernel
      to reference Intersil corporation.  This patch is part of a series fixing
      those locations were "isl" is used in compatible strings to use the now
      expected "isil" prefix instead (NASDAQ symbol for Intersil and most used
      version).  The old compatible string is kept for backward compatibility.
      Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Kumar Gala <galak@codeaurora.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Alexandre Courbot <gnurou@gmail.com>
      Cc: Uwe Kleine-Knig <uwe@kleine-koenig.org>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Peter Huewe <peter.huewe@infineon.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Darshana Padmadas <darshanapadmadas@gmail.com>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      401b3c6a