Skip to content
  1. Apr 06, 2014
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 2d1eb87a
      Linus Torvalds authored
      Pull ARM changes from Russell King:
      
       - Perf updates from Will Deacon:
         - Support for Qualcomm Krait processors (run perf on your phone!)
         - Support for Cortex-A12 (run perf stat on your FPGA!)
         - Support for perf_sample_event_took, allowing us to automatically decrease
           the sample rate if we can't handle the PMU interrupts quickly enough
           (run perf record on your FPGA!).
      
       - Basic uprobes support from David Long:
           This patch series adds basic uprobes support to ARM. It is based on
           patches developed earlier by Rabin Vincent. That approach of adding
           hooks into the kprobes instruction parsing code was not well received.
           This approach separates the ARM instruction parsing code in kprobes out
           into a separate set of functions which can be used by both kprobes and
           uprobes. Both kprobes and uprobes then provide their own semantic action
           tables to process the results of the parsing.
      
       - ARMv7M (microcontroller) updates from Uwe Kleine-König
      
       - OMAP DMA updates (recently added Vinod's Ack even though they've been
         sitting in linux-next for a few months) to reduce the reliance of
         omap-dma on the code in arch/arm.
      
       - SA11x0 changes from Dmitry Eremin-Solenikov and Alexander Shiyan
      
       - Support for Cortex-A12 CPU
      
       - Align support for ARMv6 with ARMv7 so they can cooperate better in a
         single zImage.
      
       - Addition of first AT_HWCAP2 feature bits for ARMv8 crypto support.
      
       - Removal of IRQ_DISABLED from various ARM files
      
       - Improved efficiency of virt_to_page() for single zImage
      
       - Patch from Ulf Hansson to permit runtime PM callbacks to be available for
         AMBA devices for suspend/resume as well.
      
       - Finally kill asm/system.h on ARM.
      
      * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (89 commits)
        dmaengine: omap-dma: more consolidation of CCR register setup
        dmaengine: omap-dma: move IRQ handling to omap-dma
        dmaengine: omap-dma: move register read/writes into omap-dma.c
        ARM: omap: dma: get rid of 'p' allocation and clean up
        ARM: omap: move dma channel allocation into plat-omap code
        ARM: omap: dma: get rid of errata global
        ARM: omap: clean up DMA register accesses
        ARM: omap: remove almost-const variables
        ARM: omap: remove references to disable_irq_lch
        dmaengine: omap-dma: cleanup errata 3.3 handling
        dmaengine: omap-dma: provide register read/write functions
        dmaengine: omap-dma: use cached CCR value when enabling DMA
        dmaengine: omap-dma: move barrier to omap_dma_start_desc()
        dmaengine: omap-dma: move clnk_ctrl setting to preparation functions
        dmaengine: omap-dma: improve efficiency loading C.SA/C.EI/C.FI registers
        dmaengine: omap-dma: consolidate clearing channel status register
        dmaengine: omap-dma: move CCR buffering disable errata out of the fast path
        dmaengine: omap-dma: provide register definitions
        dmaengine: omap-dma: consolidate setup of CCR
        dmaengine: omap-dma: consolidate setup of CSDP
        ...
      2d1eb87a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel · 2f997759
      Linus Torvalds authored
      Pull Hexagon updates from Richard Kuo:
       "Mostly cleanups for compilation with allmodconfig and some other
        miscellaneous fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel:
        Hexagon: update CR year for elf.h
        Hexagon: remove SP macro
        Hexagon:  set ELF_EXEC_PAGESIZE to PAGE_SIZE
        Hexagon: set the e_flags in user regset view for core dumps
        Hexagon: fix atomic_set
        Hexagon: add screen_info for VGA_CONSOLE
        hexagon: correct type on pgd copy
        smp, hexagon: kill SMP single function call interrupt
        arch: hexagon: include: asm: add generic macro 'mmiowb' in "io.h"
        arch: hexagon: kernel: hexagon_ksyms.c: export related symbols which various modules need
        arch: hexagon: kernel: reset.c: use function pointer instead of function for pm_power_off and export it
        arch: hexagon: include: asm: add "vga.h" in Kbuild
        arch: hexagon: include: asm: Kbuild: add generic "serial.h" in Kbuild
        arch: hexagon: include: uapi: asm: setup.h add swith macro __KERNEL__
        arch: hexagon: include: asm: add prefix "hvm[ci]_" for all enum members in "hexagon_vm.h"
        arch: hexagon: Kconfig: add HAVE_DMA_ATTR in Kconfig and remove "linux/dma-mapping.h" from "asm/dma-mapping.h"
        arch: hexagon: kernel: add export symbol function __delay()
        hexagon: include: asm: kgdb: extend DBG_MAX_REG_NUM for "cs0/1"
        hexagon: kernel: kgdb: include related header for pass compiling.
        hexagon: kernel: remove useless variables 'dn', 'r' and 'err' in time_init_deferred() in "time.c"
      2f997759
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 472e3741
      Linus Torvalds authored
      Pull m68k fixes from Greg Ungerer:
       "Just a couple of fixes.  Clean up compile warnings by using correct
        types in function args, and clean out the removed CONFIG_MTD_PARTITIONS"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68knommu: fix arg types for outs* functions
        m68k : Kill CONFIG_MTD_PARTITIONS
      472e3741
    • Linus Torvalds's avatar
      Merge branch 'topic/exynos' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 463b21fb
      Linus Torvalds authored
      Pull exynos media updates from Mauro Carvalho Chehab:
       "These are the remaining patches I have for the merge windows.  It
        basically adds a new sensor and adds the needed DT bits for it to
        work"
      
      * 'topic/exynos' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        [media] s5p-fimc: Remove reference to outdated macro
        [media] s5p-jpeg: Fix broken indentation in jpeg-regs.h
        [media] exynos4-is: Add the FIMC-IS ISP capture DMA driver
        [media] exynos4-is: Add support for asynchronous subdevices registration
        [media] exynos4-is: Add clock provider for the SCLK_CAM clock outputs
        [media] exynos4-is: Use external s5k6a3 sensor driver
        [media] V4L: s5c73m3: Add device tree support
        [media] V4L: Add driver for s5k6a3 image sensor
        [media] Documentation: devicetree: Update Samsung FIMC DT binding
        [media] Documentation: dt: Add binding documentation for S5C73M3 camera
        [media] Documentation: dt: Add binding documentation for S5K6A3 image sensor
      463b21fb
  2. Apr 05, 2014
    • Linus Torvalds's avatar
      Merge tag 'fbdev-main-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · 8e0c0832
      Linus Torvalds authored
      Pull fbdev changes from Tomi Valkeinen:
       "Various fbdev fixes and improvements, but nothing big"
      
      * tag 'fbdev-main-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (38 commits)
        fbdev: Make the switch from generic to native driver less alarming
        Video: atmel: avoid the id of fix screen info is overwritten
        video: imxfb: Add DT default contrast control register property.
        video: atmel_lcdfb: ensure the hardware is initialized with the correct mode
        fbdev: vesafb: add dev->remove() callback
        fbdev: efifb: add dev->remove() callback
        video: pxa3xx-gcu: switch to devres functions
        video: pxa3xx-gcu: provide an empty .open call
        video: pxa3xx-gcu: pass around struct device *
        video: pxa3xx-gcu: rename some symbols
        sisfb: fix 1280x720 resolution support
        video: fbdev: uvesafb: Remove impossible code path in uvesafb_init_info
        video: fbdev: uvesafb: Remove redundant NULL check in uvesafb_remove
        fbdev: FB_OPENCORES should depend on HAS_DMA
        OMAPDSS: convert pixel clock to common videomode style
        OMAPDSS: Remove unused get_context_loss_count support
        OMAPDSS: use DISPC register to detect context loss
        video: da8xx-fb: Use "SIMPLE_DEV_PM_OPS" macro
        video: imxfb: Convert to SIMPLE_DEV_PM_OPS
        video: imxfb: Resolve mismatch between backlight/contrast
        ...
      8e0c0832
    • Linus Torvalds's avatar
      Merge tag 'ktest-v3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest · 05b1332e
      Linus Torvalds authored
      Pull single ktest fix from Steven Rostedt:
       "This just contains a single update by Satoru Takeuchi, which adds
        CLOSE_CONSOLE_SIGNAL to the kvm.conf file, as the kvm guest requires a
        different signal than a normal console uses"
      
      * tag 'ktest-v3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest: Set CLOSE_CONSOLE_SIGNAL in the kvm.conf
      05b1332e
    • Linus Torvalds's avatar
      Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · d1d9cfc3
      Linus Torvalds authored
      Pull /dev/random changes from Ted Ts'o:
       "A number of cleanups plus support for the RDSEED instruction, which
        will be showing up in Intel Broadwell CPU's"
      
      * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
        random: Add arch_has_random[_seed]()
        random: If we have arch_get_random_seed*(), try it before blocking
        random: Use arch_get_random_seed*() at init time and once a second
        x86, random: Enable the RDSEED instruction
        random: use the architectural HWRNG for the SHA's IV in extract_buf()
        random: clarify bits/bytes in wakeup thresholds
        random: entropy_bytes is actually bits
        random: simplify accounting code
        random: tighten bound on random_read_wakeup_thresh
        random: forget lock in lockless accounting
        random: simplify accounting logic
        random: fix comment on "account"
        random: simplify loop in random_read
        random: fix description of get_random_bytes
        random: fix comment on proc_do_uuid
        random: fix typos / spelling errors in comments
      d1d9cfc3
    • Richard Kuo's avatar
      Hexagon: update CR year for elf.h · a9a44fdf
      Richard Kuo authored
      
      
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      a9a44fdf
    • Richard Kuo's avatar
      Hexagon: remove SP macro · 93f9d110
      Richard Kuo authored
      
      
      The SP/r29 macro wasn't used anywhere else and was causing conflicts
      with another module, so just remove it.
      
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      93f9d110
    • Richard Kuo's avatar
      Hexagon: set ELF_EXEC_PAGESIZE to PAGE_SIZE · efaa5cbd
      Richard Kuo authored
      
      
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      efaa5cbd
    • Richard Kuo's avatar
    • Richard Kuo's avatar
      Hexagon: fix atomic_set · b10fa7b6
      Richard Kuo authored
      
      
      Normal writes in our our architecture don't invalidate lock
      reservations.
      
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      b10fa7b6
    • Richard Kuo's avatar
      Hexagon: add screen_info for VGA_CONSOLE · 17ca896d
      Richard Kuo authored
      
      
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      17ca896d
    • Ilia Mirkin's avatar
      hexagon: correct type on pgd copy · 0d82674b
      Ilia Mirkin authored
      
      
      swapper_pg_dir is an array of pgd_t, not pgd_t*. This has no actual
      effect since sizeof(pgd_t) == sizeof(pgd_t*), but unconfuses tools that
      check types.
      
      Signed-off-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      0d82674b
    • Jiang Liu's avatar
      smp, hexagon: kill SMP single function call interrupt · bd09f606
      Jiang Liu authored
      Commit 9a46ad6d
      
       "smp: make smp_call_function_many() use logic
      similar to smp_call_function_single()" has unified the way to handle
      single and multiple cross-CPU function calls. Now only one intterupt
      is needed for architecture specific code to support generic SMP function
      call interfaces, so kill the redundant single function call interrupt.
      
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Shaohua Li <shli@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Jiri Kosina <trivial@kernel.org>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: linux-hexagon@vger.kernel.org
      Signed-off-by: default avatarJiang Liu <liuj97@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      bd09f606
    • Chen Gang's avatar
      arch: hexagon: include: asm: add generic macro 'mmiowb' in "io.h" · 5e78a264
      Chen Gang authored
      
      
      Need dumy mmiowb(), or can not pass compiling, the related error with
      allmodconfig:
      
          CC [M]  drivers/mmc/host/sdhci.o
        drivers/mmc/host/sdhci.c: In function 'sdhci_request':
        drivers/mmc/host/sdhci.c:1409:2: error: implicit declaration of function 'mmiowb' [-Werror=implicit-function-declaration]
      
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      5e78a264
    • Chen Gang's avatar
      arch: hexagon: kernel: hexagon_ksyms.c: export related symbols which various modules need · e6d19042
      Chen Gang authored
      
      
      Need export all related functions and symbols for various modules with
      allmodconfig. The related errors:
      
          MODPOST 2879 modules
        ERROR: "__vmyield" [sound/sound_firmware.ko] undefined!
        ERROR: "__phys_offset" [sound/drivers/snd-dummy.ko] undefined!
        ERROR: "ioremap_nocache" [drivers/char/ipmi/ipmi_si.ko] undefined!
        ERROR: "__iounmap" [drivers/char/ipmi/ipmi_si.ko] undefined!
        ...
      
      For including files, need "linux/*" first, then "asm/*". All related
      included files and symbols need be sorted by alphabetical order.
      
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      e6d19042
    • Chen Gang's avatar
      arch: hexagon: kernel: reset.c: use function pointer instead of function for... · b1ddb5cc
      Chen Gang authored
      
      arch: hexagon: kernel: reset.c: use function pointer instead of function for pm_power_off and export it
      
      'pm_power_off' is a function pointer, not a function, so need change
      its type, and also need export it, or can not pass compiling with
      allmodconfig. The related error:
      
          MODPOST 2879 modules
        ERROR: "pm_power_off" [drivers/char/ipmi/ipmi_poweroff.ko] undefined!
      
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      b1ddb5cc
    • Chen Gang's avatar
      arch: hexagon: include: asm: add "vga.h" in Kbuild · 07d592b0
      Chen Gang authored
      
      
      Need include generic "vga.h", or can not pass compiling with
      allmodconfig, the related error:
      
          CC [M]  drivers/gpu/drm/drm_irq.o
        In file included from include/linux/vgaarb.h:34:0,
                         from drivers/gpu/drm/drm_irq.c:42:
        include/video/vga.h:22:21: fatal error: asm/vga.h: No such file or directory
      
      Also move "preempt.h" upper to match sort order.
      
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      07d592b0
    • Chen Gang's avatar
      arch: hexagon: include: asm: Kbuild: add generic "serial.h" in Kbuild · 27932f6e
      Chen Gang authored
      
      
      Add "serial.h" in Kbuild, or can not pass compiling with allmodconfig,
      the related error:
      
          CC [M]  drivers/staging/speakup/speakup_acntpc.o
        In file included from drivers/staging/speakup/speakup_acntpc.c:33:0:
        drivers/staging/speakup/serialio.h:7:24: fatal error: asm/serial.h: No such file or directory
      
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      27932f6e
    • Chen Gang's avatar
      arch: hexagon: include: uapi: asm: setup.h add swith macro __KERNEL__ · 8d7e6a1d
      Chen Gang authored
      
      
      Define dummy '__init' instead of include "linux/init.h" if !__KERNEL__,
      or can not pass checking. The related error (with allmodconfig under
      hexagon):
      
          CHECK   include/asm (34 files)
        usr/include/asm/setup.h:22: included file 'linux/init.h' is not exported
      
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      8d7e6a1d
    • Chen Gang's avatar
      arch: hexagon: include: asm: add prefix "hvm[ci]_" for all enum members in "hexagon_vm.h" · 6becd400
      Chen Gang authored
      
      
      Append "hvmc_" or "hvmi_" to all related enum members (which are too
      common to make conflict with another sub-systems). The related error
      with allmodconfig:
      
          CC [M]  drivers/md/raid1.o
        drivers/md/raid1.c:1440:13: error: 'status' redeclared as different kind of symbol
        arch/hexagon/include/asm/hexagon_vm.h:76:2: note: previous definition of 'status' was here
      
      Also use 'affinity' instead of 'locdis' for __vmintop_affinity().
      
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      6becd400
    • Chen Gang's avatar
      arch: hexagon: Kconfig: add HAVE_DMA_ATTR in Kconfig and remove... · 568210f0
      Chen Gang authored
      
      arch: hexagon: Kconfig: add HAVE_DMA_ATTR in Kconfig and remove "linux/dma-mapping.h" from "asm/dma-mapping.h"
      
      When HAS_DMA, and also need use generic implementation, HAVE_DMA_ATTR
      must be enabled, or can not pass compiling with allmodconfig, the
      related error:
      
          CC [M]  drivers/ata/libata-core.o
        drivers/ata/libata-core.c: In function 'ata_sg_clean':
        drivers/ata/libata-core.c:4598:3: error: implicit declaration of function 'dma_unmap_sg' [-Werror=implicit-function-declaration]
        drivers/ata/libata-core.c: In function 'ata_sg_setup':
        drivers/ata/libata-core.c:4708:2: error: implicit declaration of function 'dma_map_sg' [-Werror=implicit-function-declaration]
      
      "linux/dma-mapping.h" will include "asm/dma-mapping.h", so need remove
      "linux/dma-mapping.h" from "asm/dma-mapping.h",
      
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      568210f0
    • Chen Gang's avatar
      arch: hexagon: kernel: add export symbol function __delay() · 196b933d
      Chen Gang authored
      
      
      Need add __delay() implementation, or can not pass allmodconfig in
      next-20131118 tree.
      
      The related error:
      
          CC      kernel/locking/spinlock_debug.o
        kernel/locking/spinlock_debug.c: In function '__spin_lock_debug':
        kernel/locking/spinlock_debug.c:114:3: error: implicit declaration of function '__delay' [-Werror=implicit-function-declaration]
      
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      196b933d
    • Chen Gang's avatar
      hexagon: include: asm: kgdb: extend DBG_MAX_REG_NUM for "cs0/1" · d811d8cc
      Chen Gang authored
      
      
      Need extend maximized number for "cs0/1", the related warning (with
      allmodconfig for v4):
      
        arch/hexagon/kernel/kgdb.c:79: warning: excess elements in array initializer
        arch/hexagon/kernel/kgdb.c:79: warning: (near initialization for 'dbg_reg_def')
        arch/hexagon/kernel/kgdb.c:80: warning: excess elements in array initializer
        arch/hexagon/kernel/kgdb.c:80: warning: (near initialization for 'dbg_reg_def')
      
      Signed-off-by: default avatarChen Gang <gang.chen@asianux.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      d811d8cc
    • Chen Gang's avatar
      hexagon: kernel: kgdb: include related header for pass compiling. · 3d298ca1
      Chen Gang authored
      
      
      Need include related headers for pass compiling, the related error
      (with allmodconfig for v4):
      
          CC      arch/hexagon/kernel/kgdb.o
        arch/hexagon/kernel/kgdb.c:30: error: invalid use of undefined type 'struct pt_regs'
        arch/hexagon/kernel/kgdb.c:31: error: invalid use of undefined type 'struct pt_regs'
        ...
        arch/hexagon/kernel/kgdb.c:220: error: implicit declaration of function 'local_irq_save'
        arch/hexagon/kernel/kgdb.c:222: error: implicit declaration of function 'local_irq_restore'
        ...
      
      Signed-off-by: default avatarChen Gang <gang.chen@asianux.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      3d298ca1
    • Chen Gang's avatar
      hexagon: kernel: remove useless variables 'dn', 'r' and 'err' in time_init_deferred() in "time.c" · 6f8ae9bc
      Chen Gang authored
      
      
      Remove them, since they are useless. The related warnings (with
      allmodconfig for v4):
      
          CC      arch/hexagon/kernel/time.o
        arch/hexagon/kernel/time.c: In function 'time_init_deferred':
        arch/hexagon/kernel/time.c:196: warning: unused variable 'err'
        arch/hexagon/kernel/time.c:195: warning: unused variable 'r'
        arch/hexagon/kernel/time.c:194: warning: unused variable 'dn'
      
      Signed-off-by: default avatarChen Gang <gang.chen@asianux.com>
      Signed-off-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      6f8ae9bc
    • Hugh Dickins's avatar
      mm: get_user_pages(write,force) refuse to COW in shared areas · cda540ac
      Hugh Dickins authored
      
      
      get_user_pages(write=1, force=1) has always had odd behaviour on write-
      protected shared mappings: although it demands FMODE_WRITE-access to the
      underlying object (do_mmap_pgoff sets neither VM_SHARED nor VM_MAYWRITE
      without that), it ends up with do_wp_page substituting private anonymous
      Copied-On-Write pages for the shared file pages in the area.
      
      That was long ago intentional, as a safety measure to prevent ptrace
      setting a breakpoint (or POKETEXT or POKEDATA) from inadvertently
      corrupting the underlying executable.  Yet exec and dynamic loaders open
      the file read-only, and use MAP_PRIVATE rather than MAP_SHARED.
      
      The traditional odd behaviour still causes surprises and bugs in mm, and
      is probably not what any caller wants - even the comment on the flag
      says "You do not want this" (although it's undoubtedly necessary for
      overriding userspace protections in some contexts, and good when !write).
      
      Let's stop doing that.  But it would be dangerous to remove the long-
      standing safety at this stage, so just make get_user_pages(write,force)
      fail with EFAULT when applied to a write-protected shared area.
      Infiniband may in future want to force write through to underlying
      object: we can add another FOLL_flag later to enable that if required.
      
      Odd though the old behaviour was, there is no doubt that we may turn out
      to break userspace with this change, and have to revert it quickly.
      Issue a WARN_ON_ONCE to help debug the changed case (easily triggered by
      userspace, so only once to prevent spamming the logs); and delay a few
      associated cleanups until this change is proved.
      
      get_user_pages callers who might see trouble from this change:
        ptrace poking, or writing to /proc/<pid>/mem
        drivers/infiniband/
        drivers/media/v4l2-core/
        drivers/gpu/drm/exynos/exynos_drm_gem.c
        drivers/staging/tidspbridge/core/tiomap3430.c
      if they ever apply get_user_pages to write-protected shared mappings
      of an object which was opened for writing.
      
      I went to apply the same change to mm/nommu.c, but retreated.  NOMMU has
      no place for COW, and its VM_flags conventions are not the same: I'd be
      more likely to screw up NOMMU than make an improvement there.
      
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cda540ac
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-3.15-rc1' of git://oss.sgi.com/xfs/xfs · d15e0310
      Linus Torvalds authored
      Pull xfs update from Dave Chinner:
       "There are a couple of new fallocate features in this request - it was
        decided that it was easiest to push them through the XFS tree using
        topic branches and have the ext4 support be based on those branches.
        Hence you may see some overlap with the ext4 tree merge depending on
        how they including those topic branches into their tree.  Other than
        that, there is O_TMPFILE support, some cleanups and bug fixes.
      
        The main changes in the XFS tree for 3.15-rc1 are:
      
         - O_TMPFILE support
         - allowing AIO+DIO writes beyond EOF
         - FALLOC_FL_COLLAPSE_RANGE support for fallocate syscall and XFS
           implementation
         - FALLOC_FL_ZERO_RANGE support for fallocate syscall and XFS
           implementation
         - IO verifier cleanup and rework
         - stack usage reduction changes
         - vm_map_ram NOIO context fixes to remove lockdep warings
         - various bug fixes and cleanups"
      
      * tag 'xfs-for-linus-3.15-rc1' of git://oss.sgi.com/xfs/xfs: (34 commits)
        xfs: fix directory hash ordering bug
        xfs: extra semi-colon breaks a condition
        xfs: Add support for FALLOC_FL_ZERO_RANGE
        fs: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
        xfs: inode log reservations are still too small
        xfs: xfs_check_page_type buffer checks need help
        xfs: avoid AGI/AGF deadlock scenario for inode chunk allocation
        xfs: use NOIO contexts for vm_map_ram
        xfs: don't leak EFSBADCRC to userspace
        xfs: fix directory inode iolock lockdep false positive
        xfs: allocate xfs_da_args to reduce stack footprint
        xfs: always do log forces via the workqueue
        xfs: modify verifiers to differentiate CRC from other errors
        xfs: print useful caller information in xfs_error_report
        xfs: add xfs_verifier_error()
        xfs: add helper for updating checksums on xfs_bufs
        xfs: add helper for verifying checksums on xfs_bufs
        xfs: Use defines for CRC offsets in all cases
        xfs: skip pointless CRC updates after verifier failures
        xfs: Add support FALLOC_FL_COLLAPSE_RANGE for fallocate
        ...
      d15e0310
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 24e7ea3b
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Major changes for 3.14 include support for the newly added ZERO_RANGE
        and COLLAPSE_RANGE fallocate operations, and scalability improvements
        in the jbd2 layer and in xattr handling when the extended attributes
        spill over into an external block.
      
        Other than that, the usual clean ups and minor bug fixes"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (42 commits)
        ext4: fix premature freeing of partial clusters split across leaf blocks
        ext4: remove unneeded test of ret variable
        ext4: fix comment typo
        ext4: make ext4_block_zero_page_range static
        ext4: atomically set inode->i_flags in ext4_set_inode_flags()
        ext4: optimize Hurd tests when reading/writing inodes
        ext4: kill i_version support for Hurd-castrated file systems
        ext4: each filesystem creates and uses its own mb_cache
        fs/mbcache.c: doucple the locking of local from global data
        fs/mbcache.c: change block and index hash chain to hlist_bl_node
        ext4: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
        ext4: refactor ext4_fallocate code
        ext4: Update inode i_size after the preallocation
        ext4: fix partial cluster handling for bigalloc file systems
        ext4: delete path dealloc code in ext4_ext_handle_uninitialized_extents
        ext4: only call sync_filesystm() when remounting read-only
        fs: push sync_filesystem() down to the file system's remount_fs()
        jbd2: improve error messages for inconsistent journal heads
        jbd2: minimize region locked by j_list_lock in jbd2_journal_forget()
        jbd2: minimize region locked by j_list_lock in journal_get_create_access()
        ...
      24e7ea3b
    • Linus Torvalds's avatar
      Merge tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 8e343c8b
      Linus Torvalds authored
      Pull pstore fixes from Tony Luck:
       "Series of small bug fixes for pstore"
      
      * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        pstore: Fix memory leak when decompress using big_oops_buf
        pstore: Fix buffer overflow while write offset equal to buffer size
        pstore: Correct the max_dump_cnt clearing of ramoops
        pstore: Fix NULL pointer fault if get NULL prz in ramoops_get_next_prz
        pstore: skip zero size persistent ram buffer in traverse
        pstore: clarify clearing of _read_cnt in ramoops_context
      8e343c8b
    • Linus Torvalds's avatar
      Merge tag 'upstream-3.15-rc1' of git://git.infradead.org/linux-ubifs · 370d2662
      Linus Torvalds authored
      Pull ubifs updates from Artem Bityutskiy:
       "This pull request includes the 'ubiblock' driver which provides R/O
        block access to UBI volumes.  It is useful for those who want to use
        squashfs on top of raw flash devices.  UBI will provide bit-flip
        handling and wear-levelling in this case (e.g., if there are other UBI
        volumes with R/W UBIFS too).
      
        The driver is actually pretty small and it is part of the UBI kernel
        subsystem.  Delivered by Ezequiel Garcia, along with a piece of
        documentation on the MTD web site and the user-space tool for creating
        and removing block devices"
      
      * tag 'upstream-3.15-rc1' of git://git.infradead.org/linux-ubifs:
        UBI: block: Remove __initdata from ubiblock_param_ops
        UBI: make UBI_IOCVOLCRBLK take a parameter for future usage
        UBI: rename block device ioctls
        UBI: block: Use ENOSYS as return value when CONFIG_UBIBLOCK=n
        UBI: block: Add CONFIG_BLOCK dependency
        UBI: block: Use 'u64' for the 64-bit dividend
        UBI: block: Mark init-only symbol as __initdata
        UBI: block: do not use term "attach"
        UBI: R/O block driver on top of UBI volumes
      370d2662
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · d15fee81
      Linus Torvalds authored
      Pull fuse update from Miklos Szeredi:
       "This series adds cached writeback support to fuse, improving write
        throughput"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: fix "uninitialized variable" warning
        fuse: Turn writeback cache on
        fuse: Fix O_DIRECT operations vs cached writeback misorder
        fuse: fuse_flush() should wait on writeback
        fuse: Implement write_begin/write_end callbacks
        fuse: restructure fuse_readpage()
        fuse: Flush files on wb close
        fuse: Trust kernel i_mtime only
        fuse: Trust kernel i_size only
        fuse: Connection bit for enabling writeback
        fuse: Prepare to handle short reads
        fuse: Linking file to inode helper
      d15fee81
    • Linus Torvalds's avatar
      Merge tag 'dlm-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 56c225fe
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
       "This set includes a couple trivial cleanups and changes recovery log
        messages from DEBUG to INFO"
      
      * tag 'dlm-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: use INFO for recovery messages
        fs: Include appropriate header file in dlm/ast.c
        dlm: silence a harmless use after free warning
      56c225fe
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 53c56662
      Linus Torvalds authored
      Pull btrfs changes from Chris Mason:
       "This is a pretty long stream of bug fixes and performance fixes.
      
        Qu Wenruo has replaced the btrfs async threads with regular kernel
        workqueues.  We'll keep an eye out for performance differences, but
        it's nice to be using more generic code for this.
      
        We still have some corruption fixes and other patches coming in for
        the merge window, but this batch is tested and ready to go"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (108 commits)
        Btrfs: fix a crash of clone with inline extents's split
        btrfs: fix uninit variable warning
        Btrfs: take into account total references when doing backref lookup
        Btrfs: part 2, fix incremental send's decision to delay a dir move/rename
        Btrfs: fix incremental send's decision to delay a dir move/rename
        Btrfs: remove unnecessary inode generation lookup in send
        Btrfs: fix race when updating existing ref head
        btrfs: Add trace for btrfs_workqueue alloc/destroy
        Btrfs: less fs tree lock contention when using autodefrag
        Btrfs: return EPERM when deleting a default subvolume
        Btrfs: add missing kfree in btrfs_destroy_workqueue
        Btrfs: cache extent states in defrag code path
        Btrfs: fix deadlock with nested trans handles
        Btrfs: fix possible empty list access when flushing the delalloc inodes
        Btrfs: split the global ordered extents mutex
        Btrfs: don't flush all delalloc inodes when we doesn't get s_umount lock
        Btrfs: reclaim delalloc metadata more aggressively
        Btrfs: remove unnecessary lock in may_commit_transaction()
        Btrfs: remove the unnecessary flush when preparing the pages
        Btrfs: just do dirty page flush for the inode with compression before direct IO
        ...
      53c56662
    • Linus Torvalds's avatar
      Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 34917f97
      Linus Torvalds authored
      Pull GFS2 updates from Steven Whitehouse:
       "One of the main highlights this time, is not the patches themselves
        but instead the widening contributor base.  It is good to see that
        interest is increasing in GFS2, and I'd like to thank all the
        contributors to this patch set.
      
        In addition to the usual set of bug fixes and clean ups, there are
        patches to improve inode creation performance when xattrs are required
        and some improvements to the transaction code which is intended to
        help improve scalability after further changes in due course.
      
        Journal extent mapping is also updated to make it more efficient and
        again, this is a foundation for future work in this area.
      
        The maximum number of ACLs has been increased to 300 (for a 4k block
        size) which means that even with a few additional xattrs from selinux,
        everything should fit within a single fs block.
      
        There is also a patch to bring GFS2's own copy of the writepages code
        up to the same level as the core VFS.  Eventually we may be able to
        merge some of this code, since it is fairly similar.
      
        The other major change this time, is bringing consistency to the
        printing of messages via fs_<level>, pr_<level> macros"
      
      * tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw: (29 commits)
        GFS2: Fix address space from page function
        GFS2: Fix uninitialized VFS inode in gfs2_create_inode
        GFS2: Fix return value in slot_get()
        GFS2: inline function gfs2_set_mode
        GFS2: Remove extraneous function gfs2_security_init
        GFS2: Increase the max number of ACLs
        GFS2: Re-add a call to log_flush_wait when flushing the journal
        GFS2: Ensure workqueue is scheduled after noexp request
        GFS2: check NULL return value in gfs2_ok_to_move
        GFS2: Convert gfs2_lm_withdraw to use fs_err
        GFS2: Use fs_<level> more often
        GFS2: Use pr_<level> more consistently
        GFS2: Move recovery variables to journal structure in memory
        GFS2: global conversion to pr_foo()
        GFS2: return -E2BIG if hit the maximum limits of ACLs
        GFS2: Clean up journal extent mapping
        GFS2: replace kmalloc - __vmalloc / memset 0
        GFS2: Remove extra "if" in gfs2_log_flush()
        fs: NULL dereference in posix_acl_to_xattr()
        GFS2: Move log buffer accounting to transaction
        ...
      34917f97
    • Linus Torvalds's avatar
      Merge branch 'locks-3.15' of git://git.samba.org/jlayton/linux · f7789dc0
      Linus Torvalds authored
      Pull file locking updates from Jeff Layton:
       "Highlights:
      
         - maintainership change for fs/locks.c.  Willy's not interested in
           maintaining it these days, and is OK with Bruce and I taking it.
         - fix for open vs setlease race that Al ID'ed
         - cleanup and consolidation of file locking code
         - eliminate unneeded BUG() call
         - merge of file-private lock implementation"
      
      * 'locks-3.15' of git://git.samba.org/jlayton/linux:
        locks: make locks_mandatory_area check for file-private locks
        locks: fix locks_mandatory_locked to respect file-private locks
        locks: require that flock->l_pid be set to 0 for file-private locks
        locks: add new fcntl cmd values for handling file private locks
        locks: skip deadlock detection on FL_FILE_PVT locks
        locks: pass the cmd value to fcntl_getlk/getlk64
        locks: report l_pid as -1 for FL_FILE_PVT locks
        locks: make /proc/locks show IS_FILE_PVT locks as type "FLPVT"
        locks: rename locks_remove_flock to locks_remove_file
        locks: consolidate checks for compatible filp->f_mode values in setlk handlers
        locks: fix posix lock range overflow handling
        locks: eliminate BUG() call when there's an unexpected lock on file close
        locks: add __acquires and __releases annotations to locks_start and locks_stop
        locks: remove "inline" qualifier from fl_link manipulation functions
        locks: clean up comment typo
        locks: close potential race between setlease and open
        MAINTAINERS: update entry for fs/locks.c
      f7789dc0
    • Linus Torvalds's avatar
      Merge branch 'cross-rename' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · 7df93452
      Linus Torvalds authored
      Pull renameat2 system call from Miklos Szeredi:
       "This adds a new syscall, renameat2(), which is the same as renameat()
        but with a flags argument.
      
        The purpose of extending rename is to add cross-rename, a symmetric
        variant of rename, which exchanges the two files.  This allows
        interesting things, which were not possible before, for example
        atomically replacing a directory tree with a symlink, etc...  This
        also allows overlayfs and friends to operate on whiteouts atomically.
      
        Andy Lutomirski also suggested a "noreplace" flag, which disables the
        overwriting behavior of rename.
      
        These two flags, RENAME_EXCHANGE and RENAME_NOREPLACE are only
        implemented for ext4 as an example and for testing"
      
      * 'cross-rename' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ext4: add cross rename support
        ext4: rename: split out helper functions
        ext4: rename: move EMLINK check up
        ext4: rename: create ext4_renament structure for local vars
        vfs: add cross-rename
        vfs: lock_two_nondirectories: allow directory args
        security: add flags to rename hooks
        vfs: add RENAME_NOREPLACE flag
        vfs: add renameat2 syscall
        vfs: rename: use common code for dir and non-dir
        vfs: rename: move d_move() up
        vfs: add d_is_dir()
      7df93452
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 3c83e61e
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
       "The main set of series of patches for media subsystem, including:
         - document RC sysfs class
         - added an API to setup scancode to allow waking up systems using the
           Remote Controller
         - add API for SDR devices.  Drivers are still on staging
         - some API improvements for getting EDID data from media
           inputs/outputs
         - new DVB frontend driver for drx-j (ATSC)
         - one driver (it913x/it9137) got removed, in favor of an improvement
           on another driver (af9035)
         - added a skeleton V4L2 PCI driver at documentation
         - added a dual flash driver (lm3646)
         - added a new IR driver (img-ir)
         - added an IR scancode decoder for the Sharp protocol
         - some improvements at the usbtv driver, to allow its core to be
           reused.
         - added a new SDR driver (rtl2832u_sdr)
         - added a new tuner driver (msi001)
         - several improvements at em28xx driver to fix PM support, device
           removal and to split the V4L2 specific bits into a separate
           sub-driver
         - one driver got converted to videobuf2 (s2255drv)
         - the e4000 tuner driver now follows an improved binding model
         - some fixes at V4L2 compat32 code
         - several fixes and enhancements at videobuf2 code
         - some cleanups at V4L2 API documentation
         - usual driver enhancements, new board additions and misc fixups"
      
      [ NOTE! This merge effective drops commit 4329b93b ("of: Reduce
        indentation in of_graph_get_next_endpoint").
      
        The of_graph_get_next_endpoint() function was moved and renamed by
        commit fd9fdb78 ("[media] of: move graph helpers from
        drivers/media/v4l2-core to drivers/of").  It was originally called
        v4l2_of_get_next_endpoint() and lived in the file
        drivers/media/v4l2-core/v4l2-of.c.
      
        In that original location, it was then fixed to support empty port
        nodes by commit b9db140c ("[media] v4l: of: Support empty port
        nodes"), and that commit clashes badly with the dropped "Reduce
        intendation" commit.  I had to choose one or the other, and decided
        that the "Support empty port nodes" commit was more important ]
      
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (426 commits)
        [media] em28xx-dvb: fix PCTV 461e tuner I2C binding
        Revert "[media] em28xx-dvb: fix PCTV 461e tuner I2C binding"
        [media] em28xx: fix PCTV 290e LNA oops
        [media] em28xx-dvb: fix PCTV 461e tuner I2C binding
        [media] m88ds3103: fix bug on .set_tone()
        [media] saa7134: fix WARN_ON during resume
        [media] v4l2-dv-timings: add module name, description, license
        [media] videodev2.h: add parenthesis around macro arguments
        [media] saa6752hs: depends on CRC32
        [media] si4713: fix Kconfig dependencies
        [media] Sensoray 2255 uses videobuf2
        [media] adv7180: free an interrupt on failure paths in init_device()
        [media] e4000: make VIDEO_V4L2 dependency optional
        [media] af9033: Don't export functions for the hardware filter
        [media] af9035: use af9033 PID filters
        [media] af9033: implement PID filter
        [media] rtl2832_sdr: do not use dynamic stack allocation
        [media] e4000: fix 32-bit build error
        [media] em28xx-audio: make sure audio is unmuted on open()
        [media] DocBook media: v4l2_format_sdr was renamed to v4l2_sdr_format
        ...
      3c83e61e
  3. Apr 04, 2014