1. 30 Jan, 2014 3 commits
    • Johannes Weiner's avatar
      mm/page-writeback.c: fix dirty_balance_reserve subtraction from dirtyable memory · a804552b
      Johannes Weiner authored
      Tejun reported stuttering and latency spikes on a system where random
      tasks would enter direct reclaim and get stuck on dirty pages.  Around
      50% of memory was occupied by tmpfs backed by an SSD, and another disk
      (rotating) was reading and writing at max speed to shrink a partition.
      
      : The problem was pretty ridiculous.  It's a 8gig machine w/ one ssd and 10k
      : rpm harddrive and I could reliably reproduce constant stuttering every
      : several seconds for as long as buffered IO was going on on the hard drive
      : either with tmpfs occupying somewhere above 4gig or a test program which
      : allocates about the same amount of anon memory.  Although swap usage was
      : zero, turning off swap also made the problem go away too.
      :
      : The trigger conditions seem quite plausible - high anon memory usage w/
      : heavy buffered IO and swap configured - and it's highly likely that this
      : is happening in the wild too.  (this can happen with copying large files
      : to usb sticks too, right?)
      
      This patch (of 2):
      
      The dirty_balance_reserve is an approximation of the fraction of free
      pages that the page allocator does not make available for page cache
      allocations.  As a result, it has to be taken into account when
      calculating the amount of "dirtyable memory", the baseline to which
      dirty_background_ratio and dirty_ratio are applied.
      
      However, currently the reserve is subtracted from the sum of free and
      reclaimable pages, which is non-sensical and leads to erroneous results
      when the system is dominated by unreclaimable pages and the
      dirty_balance_reserve is bigger than free+reclaimable.  In that case, at
      least the already allocated cache should be considered dirtyable.
      
      Fix the calculation by subtracting the reserve from the amount of free
      pages, then adding the reclaimable pages on top.
      
      [akpm@linux-foundation.org: fix CONFIG_HIGHMEM build]
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Reported-by: default avatarTejun Heo <tj@kernel.org>
      Tested-by: default avatarTejun Heo <tj@kernel.org>
      Reviewed-by: default avatarRik van Riel <riel@redhat.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Reviewed-by: default avatarMichal Hocko <mhocko@suse.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a804552b
    • Aaron Tomlin's avatar
      mm: document improved handling of swappiness==0 · 8582cb96
      Aaron Tomlin authored
      Prior to commit fe35004f ("mm: avoid swapping out with
      swappiness==0") setting swappiness to 0, reclaim code could still evict
      recently used user anonymous memory to swap even though there is a
      significant amount of RAM used for page cache.
      
      The behaviour of setting swappiness to 0 has since changed.  When set,
      the reclaim code does not initiate swap until the amount of free pages
      and file-backed pages, is less than the high water mark in a zone.
      
      Let's update the documentation to reflect this.
      
      [akpm@linux-foundation.org: remove comma, per Randy]
      Signed-off-by: default avatarAaron Tomlin <atomlin@redhat.com>
      Acked-by: default avatarRik van Riel <riel@redhat.com>
      Acked-by: default avatarBryn M. Reeves <bmr@redhat.com>
      Cc: Satoru Moriya <satoru.moriya@hds.com>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8582cb96
    • Lad, Prabhakar's avatar
      lib/genalloc.c: add check gen_pool_dma_alloc() if dma pointer is not NULL · 0368dfd0
      Lad, Prabhakar authored
      In the gen_pool_dma_alloc() the dma pointer can be NULL and while
      assigning gen_pool_virt_to_phys(pool, vaddr) to dma caused the following
      crash on da850 evm:
      
         Unable to handle kernel NULL pointer dereference at virtual address 00000000
         Internal error: Oops: 805 [#1] PREEMPT ARM
         Modules linked in:
         CPU: 0 PID: 1 Comm: swapper Tainted: G        W    3.13.0-rc1-00001-g0609e45-dirty #5
         task: c4830000 ti: c4832000 task.ti: c4832000
         PC is at gen_pool_dma_alloc+0x30/0x3c
         LR is at gen_pool_virt_to_phys+0x74/0x80
         Process swapper, call trace:
           gen_pool_dma_alloc+0x30/0x3c
           davinci_pm_probe+0x40/0xa8
           platform_drv_probe+0x1c/0x4c
           driver_probe_device+0x98/0x22c
           __driver_attach+0x8c/0x90
           bus_for_each_dev+0x6c/0x8c
           bus_add_driver+0x124/0x1d4
           driver_register+0x78/0xf8
           platform_driver_probe+0x20/0xa4
           davinci_init_late+0xc/0x14
           init_machine_late+0x1c/0x28
           do_one_initcall+0x34/0x15c
           kernel_init_freeable+0xe4/0x1ac
           kernel_init+0x8/0xec
      
      This patch fixes the above.
      
      [akpm@linux-foundation.org: update kerneldoc]
      Signed-off-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Cc: Philipp Zabel <p.zabel@pengutronix.de>
      Cc: Nicolin Chen <b42378@freescale.com>
      Cc: Joe Perches <joe@perches.com>
      Cc: Sachin Kamat <sachin.kamat@linaro.org>
      Cc: <stable@vger.kernel.org>	[3.13.x]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0368dfd0
  2. 29 Jan, 2014 6 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20140127' of git://git.infradead.org/linux-mtd · 0e47c969
      Linus Torvalds authored
      Pull MTD updates from Brian Norris:
       - Add me (Brian Norris) as an additional MTD maintainer (it'd be nice to get
         David's "ack" for this; I'm sure he approves, but he's been pretty silent
         lately)
       - Add Ezequiel Garcie as maintainer for the pxa3xx NAND driver
       - Last (?) round of pxa3xx improvements for supporting Armada 370/XP
       - Typical churn in driver boilerplate (OOM messages, printk()'s, devm_*, etc.)
       - Quad read mode support for SPI NOR driver (m25p80)
       - Update Davinci NAND driver to prepare for use on new platforms
       - Begin to kill off NAND_MAX_{PAGE,OOB}SIZE macros; more work is pending
       - Miscellaneous NAND device support (new IDs)
       - Add READ RETRY support for Micron MLC NAND
       - Support new GPMI NAND ECC layout device-tree binding
       - Avoid mapping stack/vmalloc() memory for GPMI NAND DMA
      
      * tag 'for-linus-20140127' of git://git.infradead.org/linux-mtd: (151 commits)
        mtd: gpmi: add sanity check when mapping DMA for read_buf/write_buf
        mtd: gpmi: allocate a proper buffer for non ECC read/write
        mtd: m25p80: Set rx_nbits for Quad SPI transfers
        mtd: m25p80: Enable Quad SPI read transfers for s25fl512s
        mtd: s3c2410: Merge plat/regs-nand.h into s3c2410.c
        mtd: mtdram: add missing 'const'
        mtd: m25p80: assign default read command
        mtd: nuc900_nand: remove redundant return value check of platform_get_resource()
        mtd: plat_nand: remove redundant return value check of platform_get_resource()
        mtd: nand: add Intel manufacturer ID
        mtd: nand: add SanDisk manufacturer ID
        mtd: nand: add support for Samsung K9LCG08U0B
        mtd: nand: pxa3xx: Add support for 2048 bytes page size devices
        mtd: m25p80: Use OPCODE_QUAD_READ_4B for 4-byte addressing
        mtd: nand: don't use {read,write}_buf for 8-bit transfers
        mtd: nand: use __packed shorthand
        mtd: nand: support Micron READ RETRY
        mtd: nand: add generic READ RETRY support
        mtd: nand: add ONFI vendor block for Micron
        mtd: nand: localize ECC failures per page
        ...
      0e47c969
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 268943fb
      Linus Torvalds authored
      Pull LED subsystem update from Bryan Wu:
       "Basically this cycle is mostly cleanup for LED subsystem"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: s3c24xx: Remove hardware.h inclusion
        leds: replace list_for_each with list_for_each_entry
        leds: kirkwood: Cleanup in header files
        leds: pwm: Remove a warning on non-DT platforms
        leds: leds-pwm: fix duty time overflow.
        leds: leds-mc13783: Remove unneeded mc13xxx_{un}lock
        leds: leds-mc13783: Remove duplicate field in platform data
        drivers: leds: leds-tca6507: check CONFIG_GPIOLIB whether defined for 'gpio_base'
        leds: lp5523: Support LED MUX configuration on running a pattern
        leds: lp5521/5523: Fix multiple engine usage bug
        LEDS: tca6507 - fix up some comments.
        LEDS: tca6507: add device-tree support for GPIO configuration.
        LEDS: tca6507 - fix bugs in parsing of device-tree configuration.
      268943fb
    • Linus Torvalds's avatar
      Merge tag 'tty-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 2ad48ee8
      Linus Torvalds authored
      Pull serial fixes from Greg KH:
       "Here are tiny and assorted serial driver fixes that have been in a
        branch in my tree for a while and somehow did not get properly merged
        into my big TTY / Serial pull request for 3.14-rc1.  Sorry about that.
      
        All have been in linux-next for a while with no issues"
      
      * tag 'tty-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: xuartps: Properly guard sysrq specific code
        serial: 8250: Fix initialisation of Quatech cards with the AMCC PCI chip
        serial: icom: dereference after free in load_code()
        serial: 8250_dw: add new ACPI IDs
        tty: serial: pch: don't crash if DMA enabled but not loaded
        serial: samsung: move clock deactivation below uart registration
      2ad48ee8
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus-3.14-part2' of git://git.linaro.org/people/mike.turquette/linux · d30492ad
      Linus Torvalds authored
      Pull more clock framework changes from Mike Turquette:
       "The second half of the clock framework pull requeust for 3.14 is
        dominated by platform support for Qualcomm's MSM SoCs, DT binding
        updates for TI's OMAP-ish processors and additional support for
        Samsung chips.
      
        Additionally there are other smaller clock driver changes and several
        last minute fixes.  This pull request also includes the HiSilicon
        support that depends on the already-merged arm-soc pull request"
      
      [ Fix up stupid compile error in the source tree with evil merge  - Grumpy Linus ]
      
      * tag 'clk-for-linus-3.14-part2' of git://git.linaro.org/people/mike.turquette/linux: (49 commits)
        clk: sort Makefile
        clk: sunxi: fix overflow when setting up divided factors
        clk: Export more clk-provider functions
        dt-bindings: qcom: Fix warning with duplicate dt define
        clk: si5351: remove variant from platform_data
        clk: samsung: Remove unneeded semicolon
        clk: qcom: Fix modular build
        ARM: OMAP3: use DT clock init if DT data is available
        ARM: AM33xx: remove old clock data and link in new clock init code
        ARM: AM43xx: Enable clock init
        ARM: OMAP: DRA7: Enable clock init
        ARM: OMAP4: remove old clock data and link in new clock init code
        ARM: OMAP2+: io: use new clock init API
        ARM: OMAP2+: PRM: add support for initializing PRCM clock modules from DT
        ARM: OMAP3: hwmod: initialize clkdm from clkdm_name
        ARM: OMAP: hwmod: fix an incorrect clk type cast with _get_clkdm
        ARM: OMAP2+: clock: use driver API instead of direct memory read/write
        ARM: OMAP2+: clock: add support for indexed memmaps
        ARM: dts: am43xx clock data
        ARM: dts: AM35xx: use DT clock data
        ...
      d30492ad
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-v3.14-rc1-2' of git://oss.sgi.com/xfs/xfs · f1499382
      Linus Torvalds authored
      Pull second xfs update from Ben Myers:
       "Allow logical sector sized direct io on 'advanced format' 4k/512 disk"
      
      * tag 'xfs-for-linus-v3.14-rc1-2' of git://oss.sgi.com/xfs/xfs:
        xfs: allow logical-sector sized O_DIRECT
        xfs: rename xfs_buftarg structure members
        xfs: clean up xfs_buftarg
      f1499382
    • Linus Torvalds's avatar
      ceph: Fix up after semantic merge conflict · 4db658ea
      Linus Torvalds authored
      The previous ceph-client merge resulted in ceph not even building,
      because there was a merge conflict that wasn't visible as an actual data
      conflict: commit 7221fe4c ("ceph: add acl for cephfs") added support
      for POSIX ACL's into Ceph, but unluckily we also had the VFS tree change
      a lot of the POSIX ACL helper functions to be much more helpful to
      filesystems (see for example commits 2aeccbe9 "fs: add generic
      xattr_acl handlers", 5bf3258f "fs: make posix_acl_chmod more useful"
      and 37bc1539 "fs: make posix_acl_create more useful")
      
      The reason this conflict wasn't obvious was many-fold: because it was a
      semantic conflict rather than a data conflict, it wasn't visible in the
      git merge as a conflict.  And because the VFS tree hadn't been in
      linux-next, people hadn't become aware of it that way.  And because I
      was at jury duty this morning, I was using my laptop and as a result not
      doing constant "allmodconfig" builds.
      
      Anyway, this fixes the build and generally removes a fair chunk of the
      Ceph POSIX ACL support code, since the improved helpers seem to match
      really well for Ceph too.  But I don't actually have any way to *test*
      the end result, and I was really hoping for some ACK's for this.  Oh,
      well.
      
      Not compiling certainly doesn't make things easier to test, so I'm
      committing this without the acks after having waited for four hours...
      Plus it's what I would have done for the merge had I noticed the
      semantic conflict..
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Cc: Sage Weil <sage@inktank.com>
      Cc: Guangliang Zhao <lucienchao@gmail.com>
      Cc: Li Wang <li.wang@ubuntykylin.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4db658ea
  3. 28 Jan, 2014 31 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · d891ea23
      Linus Torvalds authored
      Pull ceph updates from Sage Weil:
       "This is a big batch.  From Ilya we have:
      
         - rbd support for more than ~250 mapped devices (now uses same scheme
           that SCSI does for device major/minor numbering)
         - crush updates for new mapping behaviors (will be needed for coming
           erasure coding support, among other things)
         - preliminary support for tiered storage pools
      
        There is also a big series fixing a pile cephfs bugs with clustered
        MDSs from Yan Zheng, ACL support for cephfs from Guangliang Zhao, ceph
        fscache improvements from Li Wang, improved behavior when we get
        ENOSPC from Josh Durgin, some readv/writev improvements from
        Majianpeng, and the usual mix of small cleanups"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (76 commits)
        ceph: cast PAGE_SIZE to size_t in ceph_sync_write()
        ceph: fix dout() compile warnings in ceph_filemap_fault()
        libceph: support CEPH_FEATURE_OSD_CACHEPOOL feature
        libceph: follow redirect replies from osds
        libceph: rename ceph_osd_request::r_{oloc,oid} to r_base_{oloc,oid}
        libceph: follow {read,write}_tier fields on osd request submission
        libceph: add ceph_pg_pool_by_id()
        libceph: CEPH_OSD_FLAG_* enum update
        libceph: replace ceph_calc_ceph_pg() with ceph_oloc_oid_to_pg()
        libceph: introduce and start using oid abstraction
        libceph: rename MAX_OBJ_NAME_SIZE to CEPH_MAX_OID_NAME_LEN
        libceph: move ceph_file_layout helpers to ceph_fs.h
        libceph: start using oloc abstraction
        libceph: dout() is missing a newline
        libceph: add ceph_kv{malloc,free}() and switch to them
        libceph: support CEPH_FEATURE_EXPORT_PEER
        ceph: add imported caps when handling cap export message
        ceph: add open export target session helper
        ceph: remove exported caps when handling cap import message
        ceph: handle session flush message
        ...
      d891ea23
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd · 08d21b5f
      Linus Torvalds authored
      Pull exofs and ore fixes from Boaz Harrosh:
       "The main fix here, the first patch, is also destined for -stable.  The
        rest is small trivia and cosmetics.  The ORE patches effect both exofs
        and pnfs-objects very reproducible bugs"
      
      [ ORE is "object raid engine", used by exofs and pnfs  - Linus ]
      
      * 'for-linus' of git://git.open-osd.org/linux-open-osd:
        exofs: Print less in r4w
        exofs: Allow corrupted directory entry to be empty file
        exofs: Allow O_DIRECT open
        ore: Don't crash on NULL bio in _clear_bio
        ore: Fix wrong math in allocation of per device BIO
      08d21b5f
    • Ilya Dryomov's avatar
      ceph: cast PAGE_SIZE to size_t in ceph_sync_write() · 125d725c
      Ilya Dryomov authored
      Use min_t(size_t, ...) instead of plain min(), which does strict type
      checking, to avoid compile warning on i386.
      
      Cc: Jianpeng Ma <majianpeng@gmail.com>
      Signed-off-by: default avatarIlya Dryomov <ilya.dryomov@inktank.com>
      Reviewed-by: default avatarSage Weil <sage@inktank.com>
      125d725c
    • Ilya Dryomov's avatar
      ceph: fix dout() compile warnings in ceph_filemap_fault() · 37b52fe6
      Ilya Dryomov authored
      PAGE_CACHE_SIZE is unsigned long on all architectures, however size_t
      is either unsigned int or unsigned long.  Rather than change format
      strings, cast PAGE_CACHE_SIZE to size_t to be in line with dout()s in
      ceph_page_mkwrite().
      
      Cc: Yan, Zheng <zheng.z.yan@intel.com>
      Signed-off-by: default avatarIlya Dryomov <ilya.dryomov@inktank.com>
      Reviewed-by: default avatarSage Weil <sage@inktank.com>
      37b52fe6
    • Linus Torvalds's avatar
      Merge tag 'microblaze-3.14-rc1' of git://git.monstr.eu/linux-2.6-microblaze · 627f4b3e
      Linus Torvalds authored
      Pull microblaze patches from Michal Simek:
       - add CCF support
       - fix BS=0 compilation
       - wire up defconfig
       - some minor cleanups and fixes
      
      * tag 'microblaze-3.14-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Add missing v8.50.a version
        microblaze: Fix missing bracket in printk
        microblaze: Fix compilation error for BS=0
        microblaze: Disable stack protection from bootloader
        microblaze: Define read/write{b,w,l}_relaxed MMIO
        microblaze: timer: Do not initialized system timer twice
        microblaze: timer: Use generic sched_clock implementation
        microblaze: Add NOTES section to linker script
        microblaze: Add support for CCF
        microblaze: Simplify fcpu helper function
        microblaze/uapi: Use Kbuild logic to include <asm-generic/types.h>
        microblaze: Remove duplicate declarations of _stext[] and _etext[]
        microblaze: Remove _fdt_start casts
        microblaze: Wire up defconfig to mmu_defconfig
      627f4b3e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · e770d73c
      Linus Torvalds authored
      Pull s390 patches from Martin Schwidefsky:
       "A new binary interface to be able to query and modify the LPAR
        scheduler weight and cap settings.  Some improvements for the hvc
        terminal over iucv and a couple of bux fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/hypfs: add interface for diagnose 0x304
        s390: wire up sys_sched_setattr/sys_sched_getattr
        s390/uapi: fix struct statfs64 definition
        s390/uaccess: remove dead extern declarations, make functions static
        s390/uaccess: test if current->mm is set before walking page tables
        s390/zfcpdump: make zfcpdump depend on 64BIT
        s390/32bit: fix cmpxchg64
        s390/xpram: don't modify module parameters
        s390/zcrypt: remove zcrypt kmsg documentation again
        s390/hvc_iucv: Automatically assign free HVC terminal devices
        s390/hvc_iucv: Display connection details through device attributes
        s390/hvc_iucv: fix sparse warning
        s390/vmur: Link parent CCW device during UR device creation
      e770d73c
    • Linus Torvalds's avatar
      Merge tag 'cris-correction-for-3.14' of git://jni.nu/cris · be864971
      Linus Torvalds authored
      Pull cris fix from Jesper Nilsson:
       "One include too much was removed"
      
      * tag 'cris-correction-for-3.14' of git://jni.nu/cris:
        CRISv10: Readd missing header
      be864971
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · a53b75b3
      Linus Torvalds authored
      Pull ext4 update from Ted Ts'o:
       "Bug fixes and cleanups for ext4.  We also enable the punch hole
        functionality for bigalloc file systems"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: delete "set but not used" variables
        ext4: don't pass freed handle to ext4_walk_page_buffers
        ext4: avoid clearing beyond i_blocks when truncating an inline data file
        ext4: ext4_inode_is_fast_symlink should use EXT4_CLUSTER_SIZE
        ext4: fix a typo in extents.c
        ext4: use %pd printk specificer
        ext4: standardize error handling in ext4_da_write_inline_data_begin()
        ext4: retry allocation when inline->extent conversion failed
        ext4: enable punch hole for bigalloc
      a53b75b3
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.14-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 2b2b15c3
      Linus Torvalds authored
      Pull NFS client updates from Trond Myklebust:
       "Highlights include:
      
         - stable fix for an infinite loop in RPC state machine
         - stable fix for a use after free situation in the NFSv4 trunking discovery
         - stable fix for error handling in the NFSv4 trunking discovery
         - stable fix for the page write update code
         - stable fix for the NFSv4.1 mount time security negotiation
         - stable fix for the NFSv4 open code.
         - O_DIRECT locking fixes
         - fix an Oops in the pnfs file commit code
         - RPC layer needs finer grained handling of connection errors
         - more RPC GSS upcall fixes"
      
      * tag 'nfs-for-3.14-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (30 commits)
        pnfs: Proper delay for NFS4ERR_RECALLCONFLICT in layout_get_done
        pnfs: fix BUG in filelayout_recover_commit_reqs
        nfs4: fix discover_server_trunking use after free
        NFSv4.1: Handle errors correctly in nfs41_walk_client_list
        nfs: always make sure page is up-to-date before extending a write to cover the entire page
        nfs: page cache invalidation for dio
        nfs: take i_mutex during direct I/O reads
        nfs: merge nfs_direct_write into nfs_file_direct_write
        nfs: merge nfs_direct_read into nfs_file_direct_read
        nfs: increment i_dio_count for reads, too
        nfs: defer inode_dio_done call until size update is done
        nfs: fix size updates for aio writes
        nfs4.1: properly handle ENOTSUP in SECINFO_NO_NAME
        NFSv4.1: Fix a race in nfs4_write_inode
        NFSv4.1: Don't trust attributes if a pNFS LAYOUTCOMMIT is outstanding
        point to the right include file in a comment (left over from a9004abc)
        NFS: dprintk() should not print negative fileids and inode numbers
        nfs: fix dead code of ipv6_addr_scope
        sunrpc: Fix infinite loop in RPC state machine
        SUNRPC: Add tracepoint for socket errors
        ...
      2b2b15c3
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · bf3d846b
      Linus Torvalds authored
      Pull vfs updates from Al Viro:
       "Assorted stuff; the biggest pile here is Christoph's ACL series.  Plus
        assorted cleanups and fixes all over the place...
      
        There will be another pile later this week"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (43 commits)
        __dentry_path() fixes
        vfs: Remove second variable named error in __dentry_path
        vfs: Is mounted should be testing mnt_ns for NULL or error.
        Fix race when checking i_size on direct i/o read
        hfsplus: remove can_set_xattr
        nfsd: use get_acl and ->set_acl
        fs: remove generic_acl
        nfs: use generic posix ACL infrastructure for v3 Posix ACLs
        gfs2: use generic posix ACL infrastructure
        jfs: use generic posix ACL infrastructure
        xfs: use generic posix ACL infrastructure
        reiserfs: use generic posix ACL infrastructure
        ocfs2: use generic posix ACL infrastructure
        jffs2: use generic posix ACL infrastructure
        hfsplus: use generic posix ACL infrastructure
        f2fs: use generic posix ACL infrastructure
        ext2/3/4: use generic posix ACL infrastructure
        btrfs: use generic posix ACL infrastructure
        fs: make posix_acl_create more useful
        fs: make posix_acl_chmod more useful
        ...
      bf3d846b
    • Jesper Nilsson's avatar
      CRISv10: Readd missing header · cd065a01
      Jesper Nilsson authored
      The svinto architecture header was mistakenly removed,
      leading to a compile error.
      Signed-off-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
      cd065a01
    • Huang Shijie's avatar
      mtd: gpmi: add sanity check when mapping DMA for read_buf/write_buf · 0ff76a92
      Huang Shijie authored
      The buffer pointer passed from the upper layer may points to
      a buffer in the stack or a buffer allocated by vmalloc, and etc..
      
      This patch adds more sanity check to this buffer.
      After this patch, if we meet a buffer which is allocated by vmalloc or
      a buffer in the stack, we will use our own DMA buffer @data_buffer_dma
      to do the DMA operations. If the buffer is not the cases above, we will
      map it for DMA operations directly.
      Signed-off-by: default avatarHuang Shijie <shijie8@gmail.com>
      Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
      0ff76a92
    • Huang Shijie's avatar
      mtd: gpmi: allocate a proper buffer for non ECC read/write · 06f216c8
      Huang Shijie authored
      The @data_buffer_dma buffer is used for non ECC read/write.
      
      Currently, the length of the buffer is PAGE_SIZE, but the NAND chip may
      has 8K page or 16K page. So we have to extend it for the large page NAND
      chips.
      
      The gpmi_alloc_dma_buffer will be called twice. The first time is to
      allocate a temporary buffer for scanning the NAND chip; The second time
      is to allocate a buffer to store the real page content.
      
      This patch allocates a buffer of PAGE_SIZE size for scanning the NAND
      chip when gpmi_alloc_dma_buffer is called the first time, and allocates a
      buffer of the real NAND page size for the second time gpmi_alloc_dma_buffer
      is called.
      Signed-off-by: default avatarHuang Shijie <shijie8@gmail.com>
      Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
      06f216c8
    • Geert Uytterhoeven's avatar
      mtd: m25p80: Set rx_nbits for Quad SPI transfers · 464e9067
      Geert Uytterhoeven authored
      When using the Quad Read opcode, SPI masters still use Single SPI
      transfers, as spi_transfer.rx_nbits defaults to SPI_NBITS_SINGLE.
      Use SPI_NBITS_QUAD to fix this.
      
      While an earlier version of commit 3487a639
      ("drivers: mtd: m25p80: add quad read support") did this correctly, it was
      forgotten in the version that got merged.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@linux-m68k.org>
      Acked-by: default avatarMarek Vasut <marex@denx.de>
      Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
      464e9067
    • Geert Uytterhoeven's avatar
      mtd: m25p80: Enable Quad SPI read transfers for s25fl512s · d8d5d10d
      Geert Uytterhoeven authored
      Spansion s25fl512s supports Quad SPI transfers, hence set the
      M25P80_QUAD_READ flag.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@linux-m68k.org>
      Acked-by: default avatarMarek Vasut <marex@denx.de>
      Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
      d8d5d10d
    • Linus Torvalds's avatar
      Merge branch 'akpm' (incoming from Andrew) · 54c0a4b4
      Linus Torvalds authored
      Merge misc updates from Andrew Morton:
      
       - a few hotfixes
      
       - dynamic-debug updates
      
       - ipc updates
      
       - various other sweepings off the factory floor
      
      * akpm: (31 commits)
        firmware/google: drop 'select EFI' to avoid recursive dependency
        compat: fix sys_fanotify_mark
        checkpatch.pl: check for function declarations without arguments
        mm/migrate.c: fix setting of cpupid on page migration twice against normal page
        softirq: use const char * const for softirq_to_name, whitespace neatening
        softirq: convert printks to pr_<level>
        softirq: use ffs() in __do_softirq()
        kernel/kexec.c: use vscnprintf() instead of vsnprintf() in vmcoreinfo_append_str()
        splice: fix unexpected size truncation
        ipc: fix compat msgrcv with negative msgtyp
        ipc,msg: document barriers
        ipc: delete seq_max field in struct ipc_ids
        ipc: simplify sysvipc_proc_open() return
        ipc: remove useless return statement
        ipc: remove braces for single statements
        ipc: standardize code comments
        ipc: whitespace cleanup
        ipc: change kern_ipc_perm.deleted type to bool
        ipc: introduce ipc_valid_object() helper to sort out IPC_RMID races
        ipc/sem.c: avoid overflow of semop undo (semadj) value
        ...
      54c0a4b4
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 1b17366d
      Linus Torvalds authored
      Pull powerpc updates from Ben Herrenschmidt:
       "So here's my next branch for powerpc.  A bit late as I was on vacation
        last week.  It's mostly the same stuff that was in next already, I
        just added two patches today which are the wiring up of lockref for
        powerpc, which for some reason fell through the cracks last time and
        is trivial.
      
        The highlights are, in addition to a bunch of bug fixes:
      
         - Reworked Machine Check handling on kernels running without a
           hypervisor (or acting as a hypervisor).  Provides hooks to handle
           some errors in real mode such as TLB errors, handle SLB errors,
           etc...
      
         - Support for retrieving memory error information from the service
           processor on IBM servers running without a hypervisor and routing
           them to the memory poison infrastructure.
      
         - _PAGE_NUMA support on server processors
      
         - 32-bit BookE relocatable kernel support
      
         - FSL e6500 hardware tablewalk support
      
         - A bunch of new/revived board support
      
         - FSL e6500 deeper idle states and altivec powerdown support
      
        You'll notice a generic mm change here, it has been acked by the
        relevant authorities and is a pre-req for our _PAGE_NUMA support"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (121 commits)
        powerpc: Implement arch_spin_is_locked() using arch_spin_value_unlocked()
        powerpc: Add support for the optimised lockref implementation
        powerpc/powernv: Call OPAL sync before kexec'ing
        powerpc/eeh: Escalate error on non-existing PE
        powerpc/eeh: Handle multiple EEH errors
        powerpc: Fix transactional FP/VMX/VSX unavailable handlers
        powerpc: Don't corrupt transactional state when using FP/VMX in kernel
        powerpc: Reclaim two unused thread_info flag bits
        powerpc: Fix races with irq_work
        Move precessing of MCE queued event out from syscall exit path.
        pseries/cpuidle: Remove redundant call to ppc64_runlatch_off() in cpu idle routines
        powerpc: Make add_system_ram_resources() __init
        powerpc: add SATA_MV to ppc64_defconfig
        powerpc/powernv: Increase candidate fw image size
        powerpc: Add debug checks to catch invalid cpu-to-node mappings
        powerpc: Fix the setup of CPU-to-Node mappings during CPU online
        powerpc/iommu: Don't detach device without IOMMU group
        powerpc/eeh: Hotplug improvement
        powerpc/eeh: Call opal_pci_reinit() on powernv for restoring config space
        powerpc/eeh: Add restore_config operation
        ...
      1b17366d
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · d12de1ef
      Linus Torvalds authored
      Pull powerpc mremap fix from Ben Herrenschmidt:
       "This is the patch that I had sent after -rc8 and which we decided to
        wait before merging.  It's based on a different tree than my -next
        branch (it needs some pre-reqs that were in -rc4 or so while my -next
        is based on -rc1) so I left it as a separate branch for your to pull.
        It's identical to the request I did 2 or 3 weeks back.
      
        This fixes crashes in mremap with THP on powerpc.
      
        The fix however requires a small change in the generic code.  It moves
        a condition into a helper we can override from the arch which is
        harmless, but it *also* slightly changes the order of the set_pmd and
        the withdraw & deposit, which should be fine according to Kirill (who
        wrote that code) but I agree -rc8 is a bit late...
      
        It was acked by Kirill and Andrew told me to just merge it via powerpc"
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/thp: Fix crash on mremap
      d12de1ef
    • Ard Biesheuvel's avatar
      firmware/google: drop 'select EFI' to avoid recursive dependency · c2218e26
      Ard Biesheuvel authored
      The GOOGLE_SMI Kconfig symbol depends on DMI and selects EFI.  This
      causes problems on other archs when introducing DMI support that depends
      on EFI, as it results in a recursive dependency:
      
        arch/arm/Kconfig:1845:error: recursive dependency detected!
        arch/arm/Kconfig:1845:	symbol DMI depends on EFI
      
      Fix by changing the 'select EFI' to a 'depends on EFI'.
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: David Rientjes <rientjes@google.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c2218e26
    • Heiko Carstens's avatar
      compat: fix sys_fanotify_mark · 592f6b84
      Heiko Carstens authored
      Commit 91c2e0bc ("unify compat fanotify_mark(2), switch to
      COMPAT_SYSCALL_DEFINE") added a new unified compat fanotify_mark syscall
      to be used by all architectures.
      
      Unfortunately the unified version merges the split mask parameter in a
      wrong way: the lower and higher word got swapped.
      
      This was discovered with glibc's tst-fanotify test case.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Reported-by: default avatarAndreas Krebbel <krebbel@linux.vnet.ibm.com>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Acked-by: default avatar"David S. Miller" <davem@davemloft.net>
      Acked-by: default avatarAl Viro <viro@ZenIV.linux.org.uk>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: <stable@vger.kernel.org>	[3.10+]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      592f6b84
    • Joe Perches's avatar
      checkpatch.pl: check for function declarations without arguments · b36190c5
      Joe Perches authored
      Functions like this one are evil:
      
      void foo()
      {
      	...
      }
      
      Because these functions allow variadic arguments without
      checking the arguments at all.
      
      Original patch by Richard Weinberger.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Borislav Petkov <bp@alien8.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b36190c5
    • Wanpeng Li's avatar
      mm/migrate.c: fix setting of cpupid on page migration twice against normal page · a3978a51
      Wanpeng Li authored
      Commit 7851a45c ("mm: numa: Copy cpupid on page migration") copies
      over the cpupid at page migration time.  It is unnecessary to set it
      again in alloc_misplaced_dst_page().
      Signed-off-by: default avatarWanpeng Li <liwanp@linux.vnet.ibm.com>
      Reviewed-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Acked-by: default avatarMel Gorman <mgorman@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a3978a51
    • Joe Perches's avatar
      softirq: use const char * const for softirq_to_name, whitespace neatening · ce85b4f2
      Joe Perches authored
      Reduce data size a little.
      Reduce checkpatch noise.
      
      $ size kernel/softirq.o*
         text	   data	    bss	    dec	    hex	filename
        11554	   6013	   4008	  21575	   5447	kernel/softirq.o.new
        11474	   6093	   4008	  21575	   5447	kernel/softirq.o.old
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ce85b4f2
    • Joe Perches's avatar
      softirq: convert printks to pr_<level> · 40322764
      Joe Perches authored
      Use a more current logging style.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      40322764
    • Joe Perches's avatar
      softirq: use ffs() in __do_softirq() · 2e702b9f
      Joe Perches authored
      Possible speed improvement of __do_softirq() by using ffs() instead of
      using a while loop with an & 1 test then single bit shift.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2e702b9f
    • Chen Gang's avatar
      kernel/kexec.c: use vscnprintf() instead of vsnprintf() in vmcoreinfo_append_str() · a19428e5
      Chen Gang authored
      vsnprintf() may let 'r' larger than sizeof(buf), in this case, if 'r' is
      also less than "vmcoreinfo_max_size - vmcoreinfo_size" (left size of
      destination buffer), next memcpy() will read the unexpected addresses.
      Signed-off-by: default avatarChen Gang <gang.chen@asianux.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a19428e5
    • Xiao Guangrong's avatar
      splice: fix unexpected size truncation · 53e0ee9f
      Xiao Guangrong authored
      @splice_desc.total_len is 32 bit(unsigned int) which is used to store the
      size passed from userspace which is 64 bit(size_t) so that the size is
      unexpectedly truncated
      
      That means vmsplice can not work if the size passed from userspace is >=
      4G, for example, we noticed in vmsplice, splice-reader does not do
      anything and splice-writer is waiting for available buffer forever if the
      size is 4G
      
      Fix it by extending @splice_desc.total_len to 64 bits as well
      Signed-off-by: default avatarXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      53e0ee9f
    • Mateusz Guzik's avatar
      ipc: fix compat msgrcv with negative msgtyp · e7ca2552
      Mateusz Guzik authored
      Compat function takes msgtyp argument as u32 and passes it down to
      do_msgrcv which results in casting to long, thus the sign is lost and we
      get a big positive number instead.
      
      Cast the argument to signed type before passing it down.
      Signed-off-by: default avatarMateusz Guzik <mguzik@redhat.com>
      Reported-by: default avatarGabriellla Schmidt <gsc@bruker.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Davidlohr Bueso <davidlohr@hp.com>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e7ca2552
    • Davidlohr Bueso's avatar
      ipc,msg: document barriers · ffa571da
      Davidlohr Bueso authored
      Both expunge_all() and pipeline_send() rely on both a nil msg value and
      a full barrier to guarantee the correct ordering when waking up a task.
      
      While its counterpart at the receiving end is well documented for the
      lockless recv algorithm, we still need to document these specific
      smp_mb() calls.
      
      [akpm@linux-foundation.org: fix typo, per Mike]
      [akpm@linux-foundation.org: mroe tpyos]
      Signed-off-by: default avatarDavidlohr Bueso <davidlohr@hp.com>
      Cc: Aswin Chandramouleeswaran <aswin@hp.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ffa571da
    • Davidlohr Bueso's avatar
      ipc: delete seq_max field in struct ipc_ids · daf948c7
      Davidlohr Bueso authored
      This field is only used to reset the ids seq number if it exceeds the
      smaller of INT_MAX/SEQ_MULTIPLIER and USHRT_MAX, and can therefore be
      moved out of the structure and into its own macro.  Since each
      ipc_namespace contains a table of 3 pointers to struct ipc_ids we can
      save space in instruction text:
      
         text    data     bss     dec     hex filename
        56232    2348      24   58604    e4ec ipc/built-in.o
        56216    2348      24   58588    e4dc ipc/built-in.o-after
      Signed-off-by: default avatarDavidlohr Bueso <davidlohr@hp.com>
      Reviewed-by: default avatarJonathan Gonzalez <jgonzalez@linets.cl>
      Cc: Aswin Chandramouleeswaran <aswin@hp.com>
      Cc: Rik van Riel <riel@redhat.com>
      Acked-by: default avatarManfred Spraul <manfred@colorfullife.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      daf948c7
    • Davidlohr Bueso's avatar
      ipc: simplify sysvipc_proc_open() return · 8dc5cd04
      Davidlohr Bueso authored
      Get rid of silly/useless label jumping.
      Signed-off-by: default avatarDavidlohr Bueso <davidlohr@hp.com>
      Cc: Aswin Chandramouleeswaran <aswin@hp.com>
      Cc: Rik van Riel <riel@redhat.com>
      Acked-by: default avatarManfred Spraul <manfred@colorfullife.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8dc5cd04