31 Jan, 2014

4 commits

  • Pull core block IO changes from Jens Axboe:
    "The major piece in here is the immutable bio_ve series from Kent, the
    rest is fairly minor. It was supposed to go in last round, but
    various issues pushed it to this release instead. The pull request
    contains:

    - Various smaller blk-mq fixes from different folks. Nothing major
    here, just minor fixes and cleanups.

    - Fix for a memory leak in the error path in the block ioctl code
    from Christian Engelmayer.

    - Header export fix from CaiZhiyong.

    - Finally the immutable biovec changes from Kent Overstreet. This
    enables some nice future work on making arbitrarily sized bios
    possible, and splitting more efficient. Related fixes to immutable
    bio_vecs:

    - dm-cache immutable fixup from Mike Snitzer.
    - btrfs immutable fixup from Muthu Kumar.

    - bio-integrity fix from Nic Bellinger, which is also going to stable"

    * 'for-3.14/core' of git://git.kernel.dk/linux-block: (44 commits)
    xtensa: fixup simdisk driver to work with immutable bio_vecs
    block/blk-mq-cpu.c: use hotcpu_notifier()
    blk-mq: for_each_* macro correctness
    block: Fix memory leak in rw_copy_check_uvector() handling
    bio-integrity: Fix bio_integrity_verify segment start bug
    block: remove unrelated header files and export symbol
    blk-mq: uses page->list incorrectly
    blk-mq: use __smp_call_function_single directly
    btrfs: fix missing increment of bi_remaining
    Revert "block: Warn and free bio if bi_end_io is not set"
    block: Warn and free bio if bi_end_io is not set
    blk-mq: fix initializing request's start time
    block: blk-mq: don't export blk_mq_free_queue()
    block: blk-mq: make blk_sync_queue support mq
    block: blk-mq: support draining mq queue
    dm cache: increment bi_remaining when bi_end_io is restored
    block: fixup for generic bio chaining
    block: Really silence spurious compiler warnings
    block: Silence spurious compiler warnings
    block: Kill bio_pair_split()
    ...

    Linus Torvalds
     
  • Pull nfsd updates from Bruce Fields:
    - Handle some loose ends from the vfs read delegation support.
    (For example nfsd can stop breaking leases on its own in a
    fewer places where it can now depend on the vfs to.)
    - Make life a little easier for NFSv4-only configurations
    (thanks to Kinglong Mee).
    - Fix some gss-proxy problems (thanks Jeff Layton).
    - miscellaneous bug fixes and cleanup

    * 'for-3.14' of git://linux-nfs.org/~bfields/linux: (38 commits)
    nfsd: consider CLAIM_FH when handing out delegation
    nfsd4: fix delegation-unlink/rename race
    nfsd4: delay setting current_fh in open
    nfsd4: minor nfs4_setlease cleanup
    gss_krb5: use lcm from kernel lib
    nfsd4: decrease nfsd4_encode_fattr stack usage
    nfsd: fix encode_entryplus_baggage stack usage
    nfsd4: simplify xdr encoding of nfsv4 names
    nfsd4: encode_rdattr_error cleanup
    nfsd4: nfsd4_encode_fattr cleanup
    minor svcauth_gss.c cleanup
    nfsd4: better VERIFY comment
    nfsd4: break only delegations when appropriate
    NFSD: Fix a memory leak in nfsd4_create_session
    sunrpc: get rid of use_gssp_lock
    sunrpc: fix potential race between setting use_gss_proxy and the upcall rpc_clnt
    sunrpc: don't wait for write before allowing reads from use-gss-proxy file
    nfsd: get rid of unused function definition
    Define op_iattr for nfsd4_open instead using macro
    NFSD: fix compile warning without CONFIG_NFSD_V3
    ...

    Linus Torvalds
     
  • Fix

    drivers/char/ipmi/ipmi_si_intf.c: In function 'ipmi_parisc_probe':
    drivers/char/ipmi/ipmi_si_intf.c:2752:2: error: 'rv' undeclared (first use in this function)
    drivers/char/ipmi/ipmi_si_intf.c:2752:2: note: each undeclared identifier is reported only once for each function it appears in

    Introduced by commit d02b3709ff8e ("ipmi: Cleanup error return")

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Corey Minyard
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Chris Mason reported a NULL pointer derefernence in generic_getxattr()
    that was due to sb->s_xattr being NULL.

    The reason is that the nfs #ifdef's for ACL support were misplaced, and
    the nfs3 inode operations had the xattr operation pointers set up, even
    though xattrs were not actually supported. As a result, the xattr code
    was being called without the infrastructure having been set up.

    Move the #ifdef's appropriately.

    Reported-and-tested-by: Chris Mason
    Acked-by: Al Viro viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

30 Jan, 2014

36 commits

  • Pull drm updates from Dave Airlie:
    "Been a bit busy, first week of kids school, and waiting on other trees
    to go in before I could send this, so its a bit later than I'd
    normally like.

    Highlights:
    - core:
    timestamp fixes, lots of misc cleanups
    - new drivers:
    bochs virtual vga
    - vmwgfx:
    major overhaul for their nextgen virt gpu.
    - i915:
    runtime D3 on HSW, watermark fixes, power well work, fbc fixes,
    bdw is no longer prelim.
    - nouveau:
    gk110/208 acceleration, more pm groundwork, old overlay support
    - radeon:
    dpm rework and clockgating for CIK, pci config reset, big endian
    fixes
    - tegra:
    panel support and DSI support, build as module, prime.
    - armada, omap, gma500, rcar, exynos, mgag200, cirrus, ast:
    fixes
    - msm:
    hdmi support for mdp5"

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (595 commits)
    drm/nouveau: resume display if any later suspend bits fail
    drm/nouveau: fix lock unbalance in nouveau_crtc_page_flip
    drm/nouveau: implement hooks for needed for drm vblank timestamping support
    drm/nouveau/disp: add a method to fetch info needed by drm vblank timestamping
    drm/nv50: fill in crtc mode struct members from crtc_mode_fixup
    drm/radeon/dce8: workaround for atom BlankCrtc table
    drm/radeon/DCE4+: clear bios scratch dpms bit (v2)
    drm/radeon: set si_notify_smc_display_change properly
    drm/radeon: fix DAC interrupt handling on DCE5+
    drm/radeon: clean up active vram sizing
    drm/radeon: skip async dma init on r6xx
    drm/radeon/runpm: don't runtime suspend non-PX cards
    drm/radeon: add ring to fence trace functions
    drm/radeon: add missing trace point
    drm/radeon: fix VMID use tracking
    drm: ast,cirrus,mgag200: use drm_can_sleep
    drm/gma500: Lock struct_mutex around cursor updates
    drm/i915: Fix the offset issue for the stolen GEM objects
    DRM: armada: fix missing DRM_KMS_FB_HELPER select
    drm/i915: Decouple GPU error reporting from ring initialisation
    ...

    Linus Torvalds
     
  • Pull slave-dma updates from Vinod Koul:
    - new driver for BCM2835 used in R-pi
    - new driver for MOXA ART
    - dma_get_any_slave_channel API for DT based systems
    - minor fixes and updates spread acrooss driver

    [ The fsl-ssi dual fifo mode support addition clashed badly with the
    other changes to fsl-ssi that came in through the sound merge. I did
    a very rough cut at fixing up the conflict, but Nicolin Chen (author
    of both sides) will need to verify and check things ]

    * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (36 commits)
    dmaengine: mmp_pdma: fix mismerge
    dma: pl08x: Export pl08x_filter_id
    acpi-dma: align documentation with kernel-doc format
    dma: fix vchan_cookie_complete() debug print
    DMA: dmatest: extend the "device" module parameter to 32 characters
    drivers/dma: fix error return code
    dma: omap: Set debug level to debugging messages
    dmaengine: fix kernel-doc style typos for few comments
    dma: tegra: add support for Tegra148/124
    dma: dw: use %pad instead of casting dma_addr_t
    dma: dw: join split up messages
    dma: dw: fix style of multiline comment
    dmaengine: k3dma: fix sparse warnings
    dma: pl330: Use dma_get_slave_channel() in the of xlate callback
    dma: pl330: Differentiate between submitted and issued descriptors
    dmaengine: sirf: Add device_slave_caps interface
    DMA: Freescale: change BWC from 256 bytes to 1024 bytes
    dmaengine: Add MOXA ART DMA engine driver
    dmaengine: Add DMA_PRIVATE to BCM2835 driver
    dma: imx-sdma: Assign a default script number for ROM firmware cases
    ...

    Linus Torvalds
     
  • Pull chrome platform cleanups and improvements from Olof Johansson:
    - Use deferred probing on Chrome OS platforms for the i2c device
    registration. This fixes a long-standing race of initialization of
    touchpad/screen on Chromebooks.
    - Added in platform device registration for pstore console on supported
    hardware
    - Misc smaller fixes (__initdata, module exit cleanup, etc)

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/chrome-platform:
    platform/chrome: unregister platform driver/device when module exit
    platform/chrome: Make i2c_adapter_names static
    platform/chrome: chromeos_laptop - fix incorrect placement of __initdata tag
    platform/chrome: chromeos_laptop - Use deferred probing
    platform/chrome: chromeos_laptop - Restructure device associations
    platform/chrome: Add pstore platform_device

    Linus Torvalds
     
  • Pull IOMMU Updates from Joerg Roedel:
    "A few patches have been queued up for this merge window:

    - improvements for the ARM-SMMU driver (IOMMU_EXEC support, IOMMU
    group support)
    - updates and fixes for the shmobile IOMMU driver
    - various fixes to generic IOMMU code and the Intel IOMMU driver
    - some cleanups in IOMMU drivers (dev_is_pci() usage)"

    * tag 'iommu-updates-v3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (36 commits)
    iommu/vt-d: Fix signedness bug in alloc_irte()
    iommu/vt-d: free all resources if failed to initialize DMARs
    iommu/vt-d, trivial: clean sparse warnings
    iommu/vt-d: fix wrong return value of dmar_table_init()
    iommu/vt-d: release invalidation queue when destroying IOMMU unit
    iommu/vt-d: fix access after free issue in function free_dmar_iommu()
    iommu/vt-d: keep shared resources when failed to initialize iommu devices
    iommu/vt-d: fix invalid memory access when freeing DMAR irq
    iommu/vt-d, trivial: simplify code with existing macros
    iommu/vt-d, trivial: use defined macro instead of hardcoding
    iommu/vt-d: mark internal functions as static
    iommu/vt-d, trivial: clean up unused code
    iommu/vt-d, trivial: check suitable flag in function detect_intel_iommu()
    iommu/vt-d, trivial: print correct domain id of static identity domain
    iommu/vt-d, trivial: refine support of 64bit guest address
    iommu/vt-d: fix resource leakage on error recovery path in iommu_init_domains()
    iommu/vt-d: fix a race window in allocating domain ID for virtual machines
    iommu/vt-d: fix PCI device reference leakage on error recovery path
    drm/msm: Fix link error with !MSM_IOMMU
    iommu/vt-d: use dedicated bitmap to track remapping entry allocation status
    ...

    Linus Torvalds
     
  • Pull watchdog updates from Wim Van Sebroeck:
    - new driver for bcm281xx watchdog device
    - new driver for gpio based watchdog devices
    - remove DEFINE_PCI_DEVICE_TABLE macro for watchdog device drivers
    - conversion of davinci_wdt and mpc8xxx_wdt to watchdog core
    - improvements on davinci_wdt, at91/dt, at91sam9_wdt and s3c2410_wdt
    - Auto-detect IO address and expand supported chips on w836* super-I/O
    chipsets
    - core: Make dt "timeout-sec" property work on drivers w/out min/max
    - fix Kconfig dependencies
    - sirf: Remove redundant of_match_ptr helper
    - mach-moxart: add restart handler
    - hpwdt patch to display better panic information
    - imx2_wdt: disable watchdog timer during low power mode

    * git://www.linux-watchdog.org/linux-watchdog: (31 commits)
    watchdog: w83627hf_wdt: Reset watchdog trigger during initialization
    watchdog: w83627hf: Add support for W83697HF and W83697UG
    watchdog: w83627hf: Auto-detect IO address and supported chips
    watchdog: at91sam9_wdt: increase security margin on watchdog counter reset
    watchdog: at91sam9_wdt: avoid spurious watchdog reset during init
    watchdog: at91sam9_wdt: fix secs_to_ticks
    ARM: at91/dt: add watchdog properties to kizbox board
    ARM: at91/dt: add sam9 watchdog default options to SoCs
    watchdog: at91sam9_wdt: update device tree doc
    watchdog: at91sam9_wdt: better watchdog support
    watchdog: sp805_wdt depends also on ARM64
    watchdog: mach-moxart: add restart handler
    watchdog: mpc8xxx_wdt convert to watchdog core
    watchdog: sirf: Remove redundant of_match_ptr helper
    watchdog: hpwdt patch to display informative string
    watchdog: dw_wdt: remove build dependencies
    watchdog: imx2_wdt: disable watchdog timer during low power mode
    watchdog: s3c2410_wdt: Report when the watchdog reset the system
    watchdog: s3c2410_wdt: use syscon regmap interface to configure pmu register
    watchdog: s3c2410_wdt: Handle rounding a little better for timeout
    ...

    Linus Torvalds
     
  • Pull more i2c updates from Wolfram Sang:
    "Mostly bugfixes, small but wanted cleanups, and Paul's init.h removal
    applied"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: rcar: fix NACK error code
    i2c: update i2c_algorithm documentation
    i2c: rcar: use devm_clk_get to ensure clock is properly ref-counted
    i2c: rcar: do not print error if device nacks transfer
    i2c: rely on driver core when sanitizing devices
    i2c: delete non-required instances of include
    i2c: acorn: is tristate and should use module.h
    i2c: piix4: Standardize log messages
    i2c: piix4: Use different message for AMD Auxiliary SMBus Controller
    i2c: piix4: Add support for AMD ML and CZ SMBus changes

    Linus Torvalds
     
  • Pull hwmon updates from Jean Delvare:
    "This include it87 driver improvements, and a tree-wide change of my
    e-mail address"

    * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    Update Jean Delvare's e-mail address
    hwmon: (it87) Print proper names for the IT8771E and IT8772E
    hwmon: (it87) Add support for the ITE IT8603E

    Linus Torvalds
     
  • Pull x86 platform drivers update from Matthew Garrett:
    "Nothing amazingly special here. Some cleanups, a new driver to
    support a single button on some new HPs, a tiny amount of hardware
    enablement"

    * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86:
    ipc: add intel-mid's pci id macros
    hp-wireless: new driver for hp wireless button for Windows 8
    toshiba_acpi: Support RFKILL hotkey scancode
    hp_accel: Add a new PnP ID HPQ6007 for new HP laptops
    sony-laptop: remove unnecessary assigment of len
    fujitsu-laptop: fix error return code
    dell-laptop: Only install the i8042 filter when rfkill is active
    X86 platform: New BayTrail IOSF-SB MBI driver
    drivers: platform: Include appropriate header file in mxm-wmi.c
    drivers: platform: Mark functions as static in hp_accel.c
    dell-laptop: rkill whitelist Precision models
    ipc: simplify platform data approach
    asus-wmi: Convert to use devm_hwmon_device_register_with_groups
    compal-laptop: Use devm_hwmon_device_register_with_groups
    compal-laptop: Replace SENSOR_DEVICE_ATTR with DEVICE_ATTR
    eeepc-laptop: Convert to use devm_hwmon_device_register_with_groups
    compal-laptop: Use devm_kzalloc to allocate local data structure
    dell-laptop: fix to return error code in dell_send_intensity()

    Linus Torvalds
     
  • …realmz6/blackfin-linux

    Pull blackfin updates from Steven Miao:
    "Some minor changes and bug fixes"

    * tag 'blackfin-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/realmz6/blackfin-linux:
    From: Eunbong Song <eunb.song@samsung.com>
    Add platfrom device resource for bfin-sport on bf533 stamp
    fix build error for bf527-ezkit_defconfig for old silicon
    blackfin: Support L1 SRAM parity checking feature on bf60x
    blackfin: bf609: update the anomaly list to Nov 2013
    blackfin: delete non-required instances of <linux/init.h>
    From: Paul Walmsley <pwalmsley@nvidia.com>
    06/18] smp, blackfin: kill SMP single function call interrupt
    arch: blackfin: uapi: be sure of "_UAPI" prefix for all guard macros

    Linus Torvalds
     
  • Pull intel MID cleanups from Peter Anvin:
    "Miscellaneous cleanups to the intel-mid code merged earlier in this
    merge window"

    * 'x86-intel-mid-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, intel-mid: Cleanup some platform code's header files
    x86, intel-mid: Add missing 'void' to functions without arguments
    x86: Don't add new __cpuinit users to Merrifield platform code
    x86: Don't introduce more __cpuinit users in intel_mid_weak_decls.h

    Linus Torvalds
     
  • Pull more x32 uabi type fixes from Peter Anvin:
    "Despite the branch name, **most of these changes are to generic
    code**. They change types so that they make an increasing amount of
    the exported uapi kernel headers usable for libc.

    The ARM64 people are also interested in these changes for their ILP32
    ABI"

    * 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    uapi: Use __kernel_long_t in struct mq_attr
    uapi: Use __kernel_ulong_t in shmid64_ds/shminfo64/shm_info
    x86, uapi, x32: Use __kernel_ulong_t in x86 struct semid64_ds
    uapi: Use __kernel_ulong_t in struct msqid64_ds
    uapi: Use __kernel_long_t in struct msgbuf
    uapi, asm-generic: Use __kernel_ulong_t in uapi struct ipc64_perm
    uapi: Use __kernel_long_t/__kernel_ulong_t in
    uapi: Use __kernel_long_t in struct timex

    Linus Torvalds
     
  • Pull more ARM updates from Russell King:
    "Some further changes for this merge window:
    - fix bug building with gcc 4.6.4 and EABI.
    - fix pgtbl macro with some LPAE configurations
    - fix initrd override - FDT was overriding the command line, and it
    should be the other way around.
    - fix byteswap of instructions in undefined instruction handler
    - add basic support for SolidRun Hummingboard and Cubox-i boards"

    * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: fix building with gcc 4.6.4
    ARM: 7941/2: Fix incorrect FDT initrd parameter override
    ARM: 7947/1: Make pgtbl macro more robust
    ARM: 7946/1: asm: __und_usr_thumb need byteswap instructions in BE case
    ARM: 7930/1: Introduce atomic MMIO modify
    ARM: imx: initial SolidRun Cubox-i support
    ARM: imx: initial SolidRun HummingBoard support

    Linus Torvalds
     
  • Pull networking fixes from David Miller:
    "Several fixups, of note:

    1) Fix unlock of not held spinlock in RXRPC code, from Alexey
    Khoroshilov.

    2) Call pci_disable_device() from the correct shutdown path in bnx2x
    driver, from Yuval Mintz.

    3) Fix qeth build on s390 for some configurations, from Eugene
    Crosser.

    4) Cure locking bugs in bond_loadbalance_arp_mon(), from Ding
    Tianhong.

    5) Must do netif_napi_add() before registering netdevice in sky2
    driver, from Stanislaw Gruszka.

    6) Fix lost bug fix during merge due to code movement in ieee802154,
    noticed and fixed by the eagle eyed Stephen Rothwell.

    7) Get rid of resource leak in xen-netfront driver, from Annie Li.

    8) Bounds checks in qlcnic driver are off by one, from Manish Chopra.

    9) TPROXY can leak sockets when TCP early demux is enabled, fix from
    Holger Eitzenberger"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (32 commits)
    qeth: fix build of s390 allmodconfig
    bonding: fix locking in bond_loadbalance_arp_mon()
    tun: add device name(iff) field to proc fdinfo entry
    DT: net: davinci_emac: "ti, davinci-no-bd-ram" property is actually optional
    DT: net: davinci_emac: "ti, davinci-rmii-en" property is actually optional
    bnx2x: Fix generic option settings
    net: Fix warning on make htmldocs caused by skbuff.c
    llc: remove noisy WARN from llc_mac_hdr_init
    qlcnic: Fix loopback test failure
    qlcnic: Fix tx timeout.
    qlcnic: Fix initialization of vlan list.
    qlcnic: Correct off-by-one errors in bounds checks
    net: Document promote_secondaries
    net: gre: use icmp_hdr() to get inner ip header
    i40e: Add missing braces to i40e_dcb_need_reconfig()
    xen-netfront: fix resource leak in netfront
    net: 6lowpan: fixup for code movement
    hyperv: Add support for physically discontinuous receive buffer
    sky2: initialize napi before registering device
    net: Fix memory leak if TPROXY used with TCP early demux
    ...

    Linus Torvalds
     
  • Pull sparc update from David Miller:
    "Two cleanups from Paul Gortmaker and hook up the new scheduler system
    calls"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc: Hook up sched_setattr and sched_getattr syscalls.
    sparc: don't use module_init in non-modular pci.c code
    sparc: delete non-required instances of include

    Linus Torvalds
     
  • Pull IDE fixes from David Miller:
    "Two header file inclusion fixes from Rashika Kheria"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
    drivers: ide: Include appropriate header file in ide-pio-blacklist.c
    drivers: ide: Include appropriate header file in ide-cd_verbose.c

    Linus Torvalds
     
  • more fixes for nouveau.

    * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
    drm/nouveau: resume display if any later suspend bits fail
    drm/nouveau: fix lock unbalance in nouveau_crtc_page_flip
    drm/nouveau: implement hooks for needed for drm vblank timestamping support
    drm/nouveau/disp: add a method to fetch info needed by drm vblank timestamping
    drm/nv50: fill in crtc mode struct members from crtc_mode_fixup

    Dave Airlie
     
  • more radeon fixes

    * 'drm-next-3.14' of git://people.freedesktop.org/~agd5f/linux:
    drm/radeon/dce8: workaround for atom BlankCrtc table
    drm/radeon/DCE4+: clear bios scratch dpms bit (v2)
    drm/radeon: set si_notify_smc_display_change properly
    drm/radeon: fix DAC interrupt handling on DCE5+
    drm/radeon: clean up active vram sizing
    drm/radeon: skip async dma init on r6xx
    drm/radeon/runpm: don't runtime suspend non-PX cards
    drm/radeon: add ring to fence trace functions
    drm/radeon: add missing trace point
    drm/radeon: fix VMID use tracking

    Dave Airlie
     
  • Merge random fixes from Andrew Morton:
    "Random fixes.

    I have one batch remaining for -rc1, mainly zram changes which await a
    merge of Jens's trees"

    * emailed patches fron Andrew Morton akpm@linux-foundation.org>:
    MAINTAINERS: ADI Linux development mailing lists: change to the new server
    Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/
    dma-debug: fix overlap detection
    memblock: add limit checking to memblock_virt_alloc
    mm/readahead.c: fix do_readahead() for no readpage(s)
    mm/slub.c: do not VM_BUG_ON_PAGE() for temporary on-stack pages
    slab: fix wrong retval on kmem_cache_create_memcg error path
    s390/compat: change parameter types from unsigned long to compat_ulong_t
    fs/compat: fix lookup_dcookie() parameter handling
    fs/compat: fix parameter handling for compat readv/writev syscalls
    mm/mempolicy.c: convert to pr_foo()
    mm: numa: initialise numa balancing after jump label initialisation
    mm/page-writeback.c: do not count anon pages as dirtyable memory
    mm/page-writeback.c: fix dirty_balance_reserve subtraction from dirtyable memory
    mm: document improved handling of swappiness==0
    lib/genalloc.c: add check gen_pool_dma_alloc() if dma pointer is not NULL

    Linus Torvalds
     
  • Update Blackfin arch maintainer's email as well.

    Signed-off-by: Sonic Zhang
    Cc: Michael Hennerich
    Cc: Lars-Peter Clausen
    Cc: Mike Frysinger
    Cc: Steven Miao
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sonic Zhang
     
  • Signed-off-by: Ard Biesheuvel
    Cc: Greg KH
    Acked-by: Andrzej Pietrasiewicz
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ard Biesheuvel
     
  • Commit 0abdd7a81b7e ("dma-debug: introduce debug_dma_assert_idle()") was
    reworked to expand the overlap counter to the full range expressable by
    3 tag bits, but it has a thinko in treating the overlap counter as a
    pure reference count for the entry.

    Instead of deleting when the reference-count drops to zero, we need to
    delete when the overlap-count drops below zero. Also, when detecting
    overflow we can just test the overlap-count > MAX rather than applying
    special meaning to 0.

    Regression report available here:
    http://marc.info/?l=linux-netdev&m=139073373932386&w=2

    This patch, now tested on the original net_dma case, sees the expected
    handful of reports before the eventual data corruption occurs.

    Signed-off-by: Dan Williams
    Reported-by: Sander Eikelenboom
    Cc: Francois Romieu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Williams
     
  • In original bootmem wrapper for memblock, we have limit checking.

    Add it to memblock_virt_alloc, to address arm and x86 booting crash.

    Signed-off-by: Yinghai Lu
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Reported-by: Kevin Hilman
    Tested-by: Kevin Hilman
    Reported-by: Olof Johansson
    Tested-by: Olof Johansson
    Reported-by: Konrad Rzeszutek Wilk
    Tested-by: Konrad Rzeszutek Wilk
    Cc: Dave Hansen
    Cc: Santosh Shilimkar
    Cc: "Strashko, Grygorii"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     
  • Commit 63d0f0a3c7e1 ("mm/readahead.c:do_readhead(): don't check for
    ->readpage") unintentionally made do_readahead return 0 for all valid
    files regardless of whether readahead was supported, rather than the
    expected -EINVAL. This gets forwarded on to userspace, and results in
    sys_readahead appearing to succeed in cases that don't make sense (e.g.
    when called on pipes or sockets). This issue is detected by the LTP
    readahead01 testcase.

    As the exact return value of force_page_cache_readahead is currently
    never used, we can simplify it to return only 0 or -EINVAL (when
    readpage or readpages is missing). With that in place we can simply
    forward on the return value of force_page_cache_readahead in
    do_readahead.

    This patch performs said change, restoring the expected semantics.

    Signed-off-by: Mark Rutland
    Acked-by: Kirill A. Shutemov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Rutland
     
  • Commit 309381feaee5 ("mm: dump page when hitting a VM_BUG_ON using
    VM_BUG_ON_PAGE") added a bunch of VM_BUG_ON_PAGE() calls.

    But, most of the ones in the slub code are for _temporary_ 'struct
    page's which are declared on the stack and likely have lots of gunk in
    them. Dumping their contents out will just confuse folks looking at
    bad_page() output. Plus, if we try to page_to_pfn() on them or
    soemthing, we'll probably oops anyway.

    Turn them back in to VM_BUG_ON()s.

    Signed-off-by: Dave Hansen
    Cc: Sasha Levin
    Cc: "Kirill A. Shutemov"
    Cc: Pekka Enberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Hansen
     
  • On kmem_cache_create_memcg() error path we set 'err', but leave 's' (the
    new cache ptr) undefined. The latter can be NULL if we could not
    allocate the cache, or pointing to a freed area if we failed somewhere
    later while trying to initialize it. Initially we checked 'err'
    immediately before exiting the function and returned NULL if it was set
    ignoring the value of 's':

    out_unlock:
    ...
    if (err) {
    /* report error */
    return NULL;
    }
    return s;

    Recently this check was, in fact, broken by commit f717eb3abb5e ("slab:
    do not panic if we fail to create memcg cache"), which turned it to:

    out_unlock:
    ...
    if (err && !memcg) {
    /* report error */
    return NULL;
    }
    return s;

    As a result, if we are failing creating a cache for a memcg, we will
    skip the check and return 's' that can contain crap. Obviously, commit
    f717eb3abb5e intended not to return crap on error allocating a cache for
    a memcg, but only to remove the error reporting in this case, so the
    check should look like this:

    out_unlock:
    ...
    if (err) {
    if (!memcg)
    return NULL;
    /* report error */
    return NULL;
    }
    return s;

    [rientjes@google.com: despaghettification]
    [vdavydov@parallels.com: patch monkeying]
    Signed-off-by: David Rientjes
    Signed-off-by: Vladimir Davydov
    Signed-off-by: Dave Jones
    Reported-by: Dave Jones
    Acked-by: Pekka Enberg
    Cc: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • Change parameter types of s390's compat ipc syscall from unsigned long
    to compat_ulong_t to enforce zero extension of these parameters.

    This is not really a bug, since s390_ipc compat syscall is only a
    wrapper to the generic compat_sys_ipc() syscall, which performs correct
    zero and sign extension.

    This was introduced with commit 56e41d3c5aa8 ("merge compat sys_ipc
    instances").

    Signed-off-by: Heiko Carstens
    Cc: Al Viro
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Hendrik Brueckner
    Cc: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • Commit d5dc77bfeeab ("consolidate compat lookup_dcookie()") coverted all
    architectures to the new compat_sys_lookup_dcookie() syscall.

    The "len" paramater of the new compat syscall must have the type
    compat_size_t in order to enforce zero extension for architectures where
    the ABI requires that the caller of a function performed zero and/or
    sign extension to 64 bit of all parameters.

    Signed-off-by: Heiko Carstens
    Cc: Al Viro
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Hendrik Brueckner
    Cc: Martin Schwidefsky
    Cc: [v3.10+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • We got a report that the pwritev syscall does not work correctly in
    compat mode on s390.

    It turned out that with commit 72ec35163f9f ("switch compat readv/writev
    variants to COMPAT_SYSCALL_DEFINE") we lost the zero extension of a
    couple of syscall parameters because the some parameter types haven't
    been converted from unsigned long to compat_ulong_t.

    This is needed for architectures where the ABI requires that the caller
    of a function performed zero and/or sign extension to 64 bit of all
    parameters.

    Signed-off-by: Heiko Carstens
    Cc: Al Viro
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Hendrik Brueckner
    Cc: Martin Schwidefsky
    Cc: [v3.10+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • A few printk(KERN_*'s have snuck in there.

    Cc: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • The command line parsing takes place before jump labels are initialised
    which generates a warning if numa_balancing= is specified and
    CONFIG_JUMP_LABEL is set.

    On older kernels before commit c4b2c0c5f647 ("static_key: WARN on usage
    before jump_label_init was called") the kernel would have crashed. This
    patch enables automatic numa balancing later in the initialisation
    process if numa_balancing= is specified.

    Signed-off-by: Mel Gorman
    Acked-by: Rik van Riel
    Cc: stable
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • The VM is currently heavily tuned to avoid swapping. Whether that is
    good or bad is a separate discussion, but as long as the VM won't swap
    to make room for dirty cache, we can not consider anonymous pages when
    calculating the amount of dirtyable memory, the baseline to which
    dirty_background_ratio and dirty_ratio are applied.

    A simple workload that occupies a significant size (40+%, depending on
    memory layout, storage speeds etc.) of memory with anon/tmpfs pages and
    uses the remainder for a streaming writer demonstrates this problem. In
    that case, the actual cache pages are a small fraction of what is
    considered dirtyable overall, which results in an relatively large
    portion of the cache pages to be dirtied. As kswapd starts rotating
    these, random tasks enter direct reclaim and stall on IO.

    Only consider free pages and file pages dirtyable.

    Signed-off-by: Johannes Weiner
    Reported-by: Tejun Heo
    Tested-by: Tejun Heo
    Reviewed-by: Rik van Riel
    Cc: Mel Gorman
    Cc: Wu Fengguang
    Reviewed-by: Michal Hocko
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • 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: Johannes Weiner
    Reported-by: Tejun Heo
    Tested-by: Tejun Heo
    Reviewed-by: Rik van Riel
    Cc: Mel Gorman
    Cc: Wu Fengguang
    Reviewed-by: Michal Hocko
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • Prior to commit fe35004fbf9e ("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: Aaron Tomlin
    Acked-by: Rik van Riel
    Acked-by: Bryn M. Reeves
    Cc: Satoru Moriya
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Aaron Tomlin
     
  • 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: Lad, Prabhakar
    Cc: Philipp Zabel
    Cc: Nicolin Chen
    Cc: Joe Perches
    Cc: Sachin Kamat
    Cc: [3.13.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lad, Prabhakar
     
  • Pull fanotify use-after-free fixes from Jan Kara:
    "Three fixes for the fanotify use after free problems guys were
    reporting.

    I have ended up with different lifetime rules for struct
    fanotify_event_info depending on whether it is for permission event or
    normal event which isn't ideal. My plan is to split these into two
    different structures (as permission events need larger struct anyway)
    which will make the rules trivial again. But that can wait for later
    I guess (but I can add the patch to the pile if you want), now I
    wanted to make -rc1 boot for these guys"

    [ "These guys" being Jiri Kosina and Dave Jones that reported the slab
    corruption issues due to incorrect object lifetimes ]

    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    fanotify: Fix use after free for permission events
    fsnotify: Do not return merged event from fsnotify_add_notify_event()
    fanotify: Fix use after free in mask checking

    Linus Torvalds
     
  • The merge of commit 7221fe4c2ed7 ("ceph: add acl for cephfs") raced with
    upstream changes in the generic POSIX ACL code (eg commit 2aeccbe957d0
    "fs: add generic xattr_acl handlers" and others).

    Some of the fallout was fixed in commit 4db658ea0ca ("ceph: Fix up after
    semantic merge conflict"), but it was incomplete: the set_acl
    inode_operation wasn't getting set, and the prototype needed to be
    adjusted a bit (it doesn't take a dentry anymore).

    Signed-off-by: Sage Weil
    Signed-off-by: Ilya Dryomov
    Signed-off-by: Linus Torvalds

    Sage Weil