1. 17 Feb, 2015 40 commits
    • Chris Mason's avatar
      eventfd: don't take the spinlock in eventfd_poll · e22553e2
      Chris Mason authored
      The spinlock in eventfd_poll is trying to protect the count of events so
      it can decide if it should return POLLIN, POLLERR, or POLLOUT.  But,
      because of the way we drop the lock after calling poll_wait, and drop it
      again before returning, we have the same pile of races with the lock as
      we do with a single read of ctx->count().
      
      This replaces the lock with a read barrier and single read.
      
      eventfd_write does a single bump of ctx->count, so this should not add
      new races with adding events.  eventfd_read is similar, it will do a
      single decrement with the lock held, and so we're making the race with
      concurrent readers slightly larger.
      
      This spinlock is the top CPU user in kernel code during one of our
      workloads.  Removing it gives us a ~2% boost.
      
      [arnd@arndb.de: avoid unused variable warning]
      [dan.carpenter@oracle.com: type bug in eventfd_poll()]
      Signed-off-by: default avatarChris Mason <clm@fb.com>
      Cc: Davide Libenzi <davidel@xmailserver.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e22553e2
    • John de la Garza's avatar
    • WANG Chao's avatar
      vmcore: fix PT_NOTE n_namesz, n_descsz overflow issue · 34b47764
      WANG Chao authored
      When updating PT_NOTE header size (ie.  p_memsz), an overflow issue
      happens with the following bogus note entry:
      
        n_namesz = 0xFFFFFFFF
        n_descsz = 0x0
        n_type   = 0x0
      
      This kind of note entry should be dropped during updating p_memsz.  But
      because n_namesz is 32bit, after (n_namesz + 3) & (~3), it's overflow to
      0x0, the note entry size looks sane and reserved.
      
      When userspace (eg.  crash utility) is trying to access such bogus note,
      it could lead to an unexpected behavior (eg.  crash utility segment fault
      because it's reading bogus address).
      
      The source of bogus note hasn't been identified yet.  At least we could
      drop the bogus note so user space wouldn't be surprised.
      Signed-off-by: default avatarWANG Chao <chaowang@redhat.com>
      Cc: Dave Anderson <anderson@redhat.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Randy Wright <rwright@hp.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
      Cc: Rashika Kheria <rashika.kheria@gmail.com>
      Cc: Greg Pearson <greg.pearson@hp.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      34b47764
    • Geoff Levand's avatar
      kexec: add IND_FLAGS macro · b28c2ee8
      Geoff Levand authored
      Add a new kexec preprocessor macro IND_FLAGS, which is the bitwise OR of
      all the possible kexec IND_ kimage_entry indirection flags.  Having this
      macro allows for simplified code in the prosessing of the kexec
      kimage_entry items.  Also, remove the local powerpc definition and use the
      generic one.
      Signed-off-by: default avatarGeoff Levand <geoff@infradead.org>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Maximilian Attems <max@stro.at>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Paul Bolle <pebolle@tiscali.nl>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b28c2ee8
    • Geoff Levand's avatar
      kexec: add bit definitions for kimage entry flags · cf2df639
      Geoff Levand authored
      Define new kexec preprocessor macros IND_*_BIT that define the bit
      position of the kimage entry flags.  Change the existing IND_* flag macros
      to be defined as bit shifts of the corresponding IND_*_BIT macros.  Also
      wrap all C language code in kexec.h with #if !defined(__ASSEMBLY__) so
      assembly files can include kexec.h to get the IND_* and IND_*_BIT macros.
      
      Some CPU instruction sets have tests for bit position which are convenient
      in implementing routines that operate on the kimage entry list.  The
      addition of these bit position macros in a common location will avoid
      duplicate definitions and the chance that changes to the IND_* flags will
      not be propagated to assembly files.
      Signed-off-by: default avatarGeoff Levand <geoff@infradead.org>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Maximilian Attems <max@stro.at>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: Paul Bolle <pebolle@tiscali.nl>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cf2df639
    • Geoff Levand's avatar
      kexec: simplify conditional · 518a0c71
      Geoff Levand authored
      Simplify the code around one of the conditionals in the kexec_load syscall
      routine.
      
      The original code was confusing with a redundant check on KEXEC_ON_CRASH
      and comments outside of the conditional block.  This change switches the
      order of the conditional check, and cleans up the comments for the
      conditional.  There is no functional change to the code.
      Signed-off-by: default avatarGeoff Levand <geoff@infradead.org>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Maximilian Attems <max@stro.at>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: Paul Bolle <pebolle@tiscali.nl>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      518a0c71
    • Geoff Levand's avatar
      kexec: Fix make headers_check · 9dc5c05f
      Geoff Levand authored
      Remove the unneded declaration for a kexec_load() routine.
      
      Fixes errors like these when running 'make headers_check':
      
      include/uapi/linux/kexec.h: userspace cannot reference function or variable defined in the kernel
      
      Paul said:
      
      : The kexec_load declaration isn't very useful for userspace, see the patch
      : I submitted in http://lkml.kernel.org/r/1389791824.17407.9.camel@x220 .
      : And After my attempt the export of that declaration has also been
      : discussed in
      : http://lkml.kernel.org/r/115373b6ac68ee7a305975896e1c4971e8e51d4c.1408731991.git.geoff@infradead.org
      :
      : In that last discussion no one has been able to point to an actual user of
      : it.  So, as far as I can tell, no one actually uses it.  Which makes
      : sense, because including this header by itself doesn't give one access to
      : a useful definition of kexec_load.  So why bother with the declaration?
      Signed-off-by: default avatarGeoff Levand <geoff@infradead.org>
      Acked-by: default avatarPaul Bolle <pebolle@tiscali.nl>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Maximilian Attems <max@stro.at>
      Cc: Michal Marek <mmarek@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9dc5c05f
    • Alexander Kuleshov's avatar
    • Baoquan He's avatar
      kexec: remove never used member destination in kimage · 73d7e3ea
      Baoquan He authored
      struct kimage has a member destination which is used to store the real
      destination address of each page when load segment from user space buffer
      to kernel.  But we never retrieve the value stored in kimage->destination,
      so this member variable in kimage and its assignment operation are
      redundent code.
      
      I guess for_each_kimage_entry just does the work that kimage->destination
      is expected to do.
      
      So in this patch just make a cleanup to remove it.
      Signed-off-by: default avatarBaoquan He <bhe@redhat.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      73d7e3ea
    • Davidlohr Bueso's avatar
      signal: use current->state helpers · 1df01355
      Davidlohr Bueso authored
      Call __set_current_state() instead of assigning the new state directly.
      These interfaces also aid CONFIG_DEBUG_ATOMIC_SLEEP environments, keeping
      track of who changed the state.
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1df01355
    • Fabian Frederick's avatar
      ptrace: remove linux/compat.h inclusion under CONFIG_COMPAT · 1cca3385
      Fabian Frederick authored
      Commit 84c751bd ("ptrace: add ability to retrieve signals without
      removing from a queue (v4)") includes <linux/compat.h> globally in
      ptrace.c
      
      This patch removes inclusion under if defined CONFIG_COMPAT.
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1cca3385
    • Fred Chou's avatar
      fs: fat: use MSDOS_SB macro to get msdos_sb_info · d6bd4282
      Fred Chou authored
      Use the MSDOS_SB macro to get msdos_sb_info, instead of coding it
      directly.
      Signed-off-by: default avatarFred Chou <fred.chou.nd@gmail.com>
      Acked-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d6bd4282
    • Fabian Frederick's avatar
      fs/reiserfs/inode.c: replace 0 by NULL for pointers · 714b71a3
      Fabian Frederick authored
      Fix sparse warning:
      
        fs/reiserfs/inode.c:2769:19: warning: Using plain integer as NULL pointer
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      714b71a3
    • Fabian Frederick's avatar
      fs/ufs/super.c: fix potential race condition · ed3ad79f
      Fabian Frederick authored
      Let locking subsystem decide on mutex management.  As reported by Andrew
      Morton this patch fixes a bug:
      
      : lock_ufs() is assuming that on non-preempt uniprocessor, the calling
      : code will run atomically up to the matching unlock_ufs().
      :
      : But that isn't true. The very first site I looked at (ufs_frag_map)
      : does sb_bread() under lock_ufs().  And sb_bread() will call schedule(),
      : very commonly.
      :
      : The ->mutex_owner stuff is a bit hacky but should work OK.
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Cc: Evgeniy Dushistov <dushistov@mail.ru>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ed3ad79f
    • Fabian Frederick's avatar
      fs/ufs/super.c: remove unnecessary casting · 61da3ae2
      Fabian Frederick authored
      Fix the following coccinelle warning:
      
        fs/ufs/super.c:1418:7-28: WARNING: casting value returned by memory allocation function to (struct ufs_inode_info *) is useless.
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Cc: Evgeniy Dushistov <dushistov@mail.ru>
      Cc: Joe Perches <joe@perches.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      61da3ae2
    • Fabian Frederick's avatar
      fs/coda/dir.c: forward declaration clean-up · b625032b
      Fabian Frederick authored
      - Move operation structures to avoid forward declarations.
      
      - Fix some checkpatch warnings:
      
      WARNING: Missing a blank line after declarations
      +		struct inode *host_inode = file_inode(host_file);
      +		mutex_lock(&host_inode->i_mutex);
      
      ERROR: that open brace { should be on the previous line
      +const struct dentry_operations coda_dentry_operations =
      +{
      
      ERROR: that open brace { should be on the previous line
      +const struct inode_operations coda_dir_inode_operations =
      +{
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Cc: Jan Harkes <jaharkes@cs.cmu.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b625032b
    • Fabian Frederick's avatar
      fs/befs/linuxvfs.c: remove unnecessary casting · 111d639d
      Fabian Frederick authored
      Fix the following coccinelle warning:
      
        fs/befs/linuxvfs.c:278:14-36: WARNING: casting value returned by memory allocation function to (struct befs_inode_info *) is useless.
      
      [akpm@linux-foundation.org: avoid 80-col ugliness]
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      111d639d
    • Linus Torvalds's avatar
      Merge tag '64bit-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · cc4f9c2a
      Linus Torvalds authored
      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
      cc4f9c2a
    • Linus Torvalds's avatar
      Merge tag 'defconfig-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 03a40e29
      Linus Torvalds authored
      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
        ...
      03a40e29
    • Linus Torvalds's avatar
      Merge tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 18656782
      Linus Torvalds authored
      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
        ...
      18656782
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · a233bb74
      Linus Torvalds authored
      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
        ...
      a233bb74
    • 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