18 Feb, 2015

12 commits

  • IT8783 watchdog works as in IT872x

    Tested on Adlink cPCI-6520 boards

    Signed-off-by: Paolo Teti
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Paolo Teti
     
  • The regmap_config struct may be const because it is not modified by the
    driver and regmap_init() accepts pointer to const. Make struct
    watchdog_ops const as well.

    Signed-off-by: Krzysztof Kozlowski
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Krzysztof Kozlowski
     
  • Add the devicetree binding document for ImgTec PDC Watchdog Timer.

    Reviewed-by: Andrew Bresticker
    Signed-off-by: Naidu Tellapati
    Signed-off-by: Jude Abraham
    Signed-off-by: Ezequiel Garcia
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Naidu Tellapati
     
  • This commit adds support for ImgTec PowerDown Controller Watchdog Timer.

    Reviewed-by: Andrew Bresticker
    Signed-off-by: Naidu Tellapati
    Signed-off-by: Jude Abraham
    [ezequiel: Minor style fixes]
    Signed-off-by: Ezequiel Garcia
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Naidu Tellapati
     
  • Pull ARM SoC 64-bit changes and additions from Olof Johansson:
    "The 64-bit set of updates this release cycle adds support for three
    new platforms:

    - Samsunc Exynos 7
    - Freescale LS2085a
    - Mediatek MT8173

    For all these, the changes mostly consititude additions of DT
    contents, but also some Kconfig entries to allow dependency/selection
    of drivers per-platform, etc"

    * tag '64bit-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    arm64: Kconfig: clean up two no-op Kconfig options from CONFIG_ARCH_TEGRA*
    arm64: Fix sort of platform Kconfig entries
    arm64: Add support for FSL's LS2085A SoC in Kconfig and defconfig
    arm64: Add DTS support for FSL's LS2085A SoC
    arm64: mediatek: Add MT8173 SoC Kconfig and defconfig
    arm64: dts: Add mediatek MT8173 SoC and evaluation board dts and Makefile
    Document: DT: Add bindings for mediatek MT8173 SoC Platform
    arm64: Add Tegra132 support
    arm64: Enable ARMv8 based exynos7 SoC support
    arm64: dts: Add nodes for mmc, i2c, rtc, watchdog, adc on exynos7
    arm64: dts: Add PMU DT node for exynos7 SoC
    arm64: dts: Add initial pinctrl support to exynos7
    arm64: dts: Add initial device tree support for exynos7

    Linus Torvalds
     
  • Pull ARM SoC defconfig changes from Olof Johansson:
    "Most of these changes are to enable new drivers that have been merged,
    or various additions to make defconfigs more useful. There's also a
    set of patches trimming down omap2plus kernel size a bit since it is
    quite large"

    * tag 'defconfig-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (39 commits)
    ARM: config: add DEVTMPFS option by default to keystone config
    ARM: multi_v7_defconfig: Enable Exynos5420 Multi-Cluster PM support
    ARM: shmobile: Select CONFIG_REGULATOR in defconfig once again
    ARM: exynos_defconfig: Enable CONFIG_FHANDLE
    ARM: exynos_defconfig: Enable PMIC and MUIC drivers for Gears and Trats2
    ARM: exynos_defconfig: Enable CONFIG_LOCKUP_DETECTOR
    ARM: config: enable ARCH_HIP01
    ARM: omap2plus_defconfig: Enable OHCI & EHCI HCD support
    ARM: omap2plus_defconfig: Enable misc options for BeagleBoard-X15 platform
    ARM: imx_v6_v7_defconfig: enable more USB functions
    ARM: imx_v6_v7_defconfig: Select CONFIG_FB_MXS
    ARM: omap2plus_defconfig: Enable pcf857x
    ARM: omap2plus_defconfig: Add NOR flash support
    ARM: omap2plus_defconfig: Enable support for davinci_emac
    ARM: multi_v7_defconfig: Enable MiPHY28lp - ST's Generic (SATA, PCIe & USB3) PHY
    ARM: efm32: update defconfig
    ARM: at91: sama5: enable atmel-isi and ov2640 in defconfig
    ARM: multi_v7_defconfig: Enable Hip01 platform
    ARM: config: multi_v7: Update it for Keystone defconfig
    ARM: shmobile: Enable kzm9g board in multiplatform defconfig
    ...

    Linus Torvalds
     
  • Pull ARM SoC driver updates from Olof Johansson:
    "These are changes for drivers that are intimately tied to some SoC and
    for some reason could not get merged through the respective subsystem
    maintainer tree.

    This time around, much of this is for at91, with the bulk of it being
    syscon and udc drivers.

    Also, there's:
    - coupled cpuidle support for Samsung Exynos4210
    - Renesas 73A0 common-clk work
    - of/platform changes to tear down DMA mappings on device destruction
    - a few updates to the TI Keystone knav code"

    * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (26 commits)
    cpuidle: exynos: add coupled cpuidle support for exynos4210
    ARM: EXYNOS: apply S5P_CENTRAL_SEQ_OPTION fix only when necessary
    soc: ti: knav_qmss_queue: change knav_range_setup_acc_irq to static
    soc: ti: knav_qmss_queue: makefile tweak to build as dynamic module
    pcmcia: at91_cf: depend on !ARCH_MULTIPLATFORM
    soc: ti: knav_qmss_queue: export API calls for use by user driver
    of/platform: teardown DMA mappings on device destruction
    usb: gadget: at91_udc: Allocate udc instance
    usb: gadget: at91_udc: Update DT binding documentation
    usb: gadget: at91_udc: Rework for multi-platform kernel support
    usb: gadget: at91_udc: Simplify probe and remove functions
    usb: gadget: at91_udc: Remove non-DT handling code
    usb: gadget: at91_udc: Document DT clocks and clock-names property
    usb: gadget: at91_udc: Drop uclk clock
    usb: gadget: at91_udc: Fix clock names
    mfd: syscon: Add Atmel SMC binding doc
    mfd: syscon: Add atmel-smc registers definition
    mfd: syscon: Add Atmel Matrix bus DT binding documentation
    mfd: syscon: Add atmel-matrix registers definition
    clk: shmobile: fix sparse NULL pointer warning
    ...

    Linus Torvalds
     
  • Pull ARM SoC DT updates from Olof Johansson:
    "DT changes continue to be the bulk of our merge window contents.

    We continue to have a large set of changes across the board as new
    platforms and drivers are added.

    Some of the new platforms are:
    - Alphascale ASM9260
    - Marvell Armada 388
    - CSR Atlas7
    - TI Davinci DM816x
    - Hisilicon HiP01
    - ST STiH418

    There have also been some sweeping changes, including relicensing of
    DTS contents from GPL to GPLv2+/X11 so that the same files can be
    reused in other non-GPL projects more easily. There's also been
    changes to the DT Makefile to make it a little less conflict-ridden
    and churny down the road"

    * tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (330 commits)
    ARM: dts: Add PPMU node for exynos4412-trats2
    ARM: dts: Add PPMU node for exynos3250-monk and exynos3250-rinato
    ARM: dts: Add PPMU dt node for exynos4 and exynos4210
    ARM: dts: Add PPMU dt node for exynos3250
    ARM: dts: add mipi dsi device node for exynos4415
    ARM: dts: add fimd device node for exynos4415
    ARM: dts: Add syscon phandle to the video-phy node for Exynos4
    ARM: dts: Add sound nodes for exynos4412-trats2
    ARM: dts: Fix CLK_MOUT_CAMn parent clocks assignment for exynos4412-trats2
    ARM: dts: Fix CLK_UART_ISP_SCLK clock assignment in exynos4x12.dtsi
    ARM: dts: Add max77693 charger node for exynos4412-trats2
    ARM: dts: Switch max77686 regulators to GPIO control for exynos4412-trats2
    ARM: dts: Add suspend configuration for max77686 regulators for exynos4412-trats2
    ARM: dts: Add Maxim 77693 fuel gauge node for exynos4412-trats2
    ARM: dts: am57xx-beagle-x15: Fix USB2 mode
    ARM: dts: am57xx-beagle-x15: Add extcon nodes for USB
    ARM: dts: dra72-evm: Add extcon nodes for USB
    ARM: dts: dra7-evm: Add extcon nodes for USB
    ARM: dts: rockchip: move the hdmi ddc-i2c-bus property to the actual boards
    ARM: dts: rockchip: enable vops and hdmi output on rk3288-firefly and -evb
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • …ernel/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
    ...

    Linus Torvalds
     
  • 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 : (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
    ...

    Linus Torvalds
     

17 Feb, 2015

28 commits

  • 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: Joshua Kinard
    Cc: Ralf Baechle
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joshua Kinard
     
  • 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: Krzysztof Kozlowski
    Cc: MyungJoo Ham
    Cc: Chanwoo Choi
    Cc: Samuel Ortiz
    Cc: Lee Jones
    Cc: Liam Girdwood
    Cc: Mark Brown
    Cc: Mike Turquette
    Cc: Stephen Boyd
    Cc: Alessandro Zummo
    Acked-by: Mark Brown
    Acked-by: Lee Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     
  • 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.com

    Signed-off-by: Christoph Jaeger
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Jaeger
     
  • We've replaced remap_file_pages(2) implementation with emulation. Nobody
    creates non-linear mapping anymore.

    Signed-off-by: Kirill A. Shutemov
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • 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: Joseph Qi
    Cc: Weiwei Wang
    Cc: Joel Becker
    Cc: Junxiao Bi
    Cc: Mark Fasheh
    Cc: Xuejiufei
    Cc: alex chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • 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: Joseph Qi
    Cc: Weiwei Wang
    Cc: Joel Becker
    Cc: Junxiao Bi
    Cc: Mark Fasheh
    Cc: Xuejiufei
    Cc: alex chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Complte the rest request thourgh buffer io after direct write performed.

    Signed-off-by: Joseph Qi
    Cc: Weiwei Wang
    Cc: Joel Becker
    Cc: Junxiao Bi
    Cc: Mark Fasheh
    Cc: Xuejiufei
    Cc: alex chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • 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: Joseph Qi
    Cc: Weiwei Wang
    Cc: Joel Becker
    Cc: Junxiao Bi
    Cc: Mark Fasheh
    Cc: Xuejiufei
    Cc: alex chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Allow blocks allocation in ocfs2_direct_IO_get_blocks.

    Signed-off-by: Joseph Qi
    Cc: Weiwei Wang
    Cc: Junxiao Bi
    Cc: Joel Becker
    Cc: Mark Fasheh
    Cc: Xuejiufei
    Cc: alex chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • 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: Joseph Qi
    Cc: Weiwei Wang
    Cc: Junxiao Bi
    Cc: Joel Becker
    Cc: Mark Fasheh
    Cc: Xuejiufei
    Cc: alex chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Define two orphan recovery types, which indicates if need truncate file or
    not.

    Signed-off-by: Joseph Qi
    Cc: Weiwei Wang
    Cc: Junxiao Bi
    Cc: Joel Becker
    Cc: Mark Fasheh
    Cc: Xuejiufei
    Cc: alex chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • 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: Joseph Qi
    Cc: Weiwei Wang
    Cc: Junxiao Bi
    Cc: Joel Becker
    Cc: Mark Fasheh
    Cc: Xuejiufei
    Cc: alex chen
    Cc: Fengguang Wu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • 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: Joseph Qi
    Cc: Weiwei Wang
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Xuejiufei
    Cc: Junxiao Bi
    Cc: alex chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Signed-off-by: Akash Shende
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akash Shende
     
  • 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: Matthew Wilcox
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Mathieu Desnoyers
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Cc: Ralf Baechle
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Since this is relating to FS_XIP, not KERNEL_XIP, it should be called
    DAX instead of XIP.

    Signed-off-by: Matthew Wilcox
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Mathieu Desnoyers
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • 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: Ross Zwisler
    Reviewed-by: Andreas Dilger
    Signed-off-by: Matthew Wilcox
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Mathieu Desnoyers
    Cc: Randy Dunlap
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ross Zwisler
     
  • 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: Matthew Wilcox
    Signed-off-by: Ross Zwisler
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Mathieu Desnoyers
    Cc: Randy Dunlap
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • 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: Matthew Wilcox
    Reviewed-by: Mathieu Desnoyers
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • We shouldn't need a special address_space_operations any more

    Signed-off-by: Matthew Wilcox
    Reviewed-by: Mathieu Desnoyers
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • 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: Matthew Wilcox
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Mathieu Desnoyers
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • These files are now empty, so delete them

    Signed-off-by: Matthew Wilcox
    Reviewed-by: Mathieu Desnoyers
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Replace ext2_use_xip() with test_opt(XIP) which expands to the same code

    Signed-off-by: Matthew Wilcox
    Reviewed-by: Mathieu Desnoyers
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • 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: Matthew Wilcox
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Mathieu Desnoyers
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • 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: Matthew Wilcox
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Mathieu Desnoyers
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • 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: Matthew Wilcox
    Reviewed-by: Randy Dunlap
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Mathieu Desnoyers
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • It takes a get_block parameter just like nobh_truncate_page() and
    block_truncate_page()

    Signed-off-by: Matthew Wilcox
    Reviewed-by: Mathieu Desnoyers
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • 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: Matthew Wilcox
    Reviewed-by: Jan Kara
    Cc: Andreas Dilger
    Cc: Boaz Harrosh
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Jens Axboe
    Cc: Kirill A. Shutemov
    Cc: Mathieu Desnoyers
    Cc: Randy Dunlap
    Cc: Ross Zwisler
    Cc: Theodore Ts'o
    Cc: Russell King
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox