04 Jul, 2013

13 commits

  • Pull regmap updates from Mark Brown:
    "A small but useful set of regmap updates this time around:

    - An abstraction for bitfields within a register map contributed by
    Srinivas Kandagatla, allowing drivers to cope more easily when
    hardware designers randomly move things about (mainly when talking
    to things like system controllers).

    - Changes from Lars-Peter Clausen to allow the MMIO regmap to be used
    from hard IRQ context.

    - Small improvements to the cache infrastructure and performance,
    including a default cache sync operation so now all regmaps can
    sync easily.

    There's also a pinctrl driver making use of the new bitfield API,
    merged here for dependency reasons. There will be a simple add/add
    conflict with the pinctrl tree as a result."

    * tag 'regmap-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    pinctrl: st: Remove unnecessary use of of_match_ptr macro
    pinctrl: st: fix return value check
    pinctrl: st: Add pinctrl and pinconf support.
    regmap: debugfs: Suppress cache for partial register files
    regmap: Add regmap_field APIs
    regmap: core: Cache all registers by default when cache is enabled
    regmap: Implemented default cache sync operation
    regmap: Make regmap-mmio usable from atomic contexts
    regmap: regcache: Fixup locking for custom lock callbacks
    regmap: debugfs: Fix return from regmap_debugfs_get_dump_start
    regmap: debugfs: Don't mark lockdep as broken due to debugfs write
    regmap: rbtree: Use range information to allocate nodes
    regmap: rbtree: Factor out node allocation
    regmap: Make regmap_check_range_table() a public API
    regmap: Add support for discarding parts of the register cache

    Linus Torvalds
     
  • Pull GPIO updates from Linus Walleij:
    "Here is a batch of GPIO changes for v3.11. I have agreed with Grant
    to take care of the pull requests for this development cycle.

    No special things are happening in the GPIO tree this time (nice with
    some calm) and I have been extra careful to do regression builds and
    it's well boiled in -next.

    GPIO changes for the v3.11 development cycle:
    - Incremental development for the Langwell (Atom SoC), Xilinx, ICH
    and RCAR drivers.
    - Cleanups from Jingoo Han, Axel Lin, Wei Jongjun, Wolfram Sang,
    Tushar Behera, Sachin Kamat and Yijing Wang"

    * tag 'gpio-for-v3.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (35 commits)
    Gpio/trivial: replace numeric with standard PM state macros
    gpiolib: remove warnning of allocations with IRQs disabled
    gpio: grgpio: Staticize local symbols
    gpio-langwell: remove Withney point support
    gpio: ich: add GPO_BLINK support
    gpio-sta2x11: Convert to use devm_ioremap_resource
    gpio_msm: Convert to use devm_ioremap_resource
    gpio-rcar: Use OUTDT when reading GPIOs configured as output
    gpio-sta2x11: Fix potential NULL pointer dereference
    gpio/omap: omap_gpio_init_context stub must be inline
    gpio: msm-v1: Remove errant __devinit to fix compile
    gpio: devres: make comments proper
    GPIO: xilinx: Enable driver for Xilinx zynq
    DT: Add documentation for gpio-xilinx
    GPIO: xilinx: Use BIT macro
    GPIO: xilinx: Use __raw_readl/__raw_writel IO functions
    GPIO: xilinx: Add support for dual channel
    GPIO: xilinx: Simplify driver probe function
    gpio: sx150x: convert to use devm_* functions
    MAINTAINERS: add linux-gpio mailing list
    ...

    Linus Torvalds
     
  • Pull thermal power-limit update from Tony Luck:
    "Thermal limit warnings are too scary and cause unnecessary concern"

    * tag 'please-pull-mce-therm' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    x86 thermal: Disable power limit notification interrupt by default
    x86 thermal: Delete power-limit-notification console messages

    Linus Torvalds
     
  • Pull ia64 IOH hotplug fixes from Tony Luck:
    "Series to fix IOH hotplug in ia64"

    * tag 'please-pull-root_bus_hotplug' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    PCI: Replace printks with appropriate pr_*()
    PCI/IA64: introduce probe_pci_root_info() to manage _CRS resource
    PCI/IA64: Add host bridge resource release for _CRS path
    PCI/IA64: fix memleak for create pci root bus fail
    PCI/IA64: Allocate pci_root_info instead of using stack
    PCI/IA64: embed pci hostbridge resources into pci_root_info
    PCI/IA64: SN: use normal resource instead of pci_window
    PCI/IA64: SN: remove sn_pci_window_fixup()

    Linus Torvalds
     
  • Pull pstore update from Tony Luck:
    "Fixes for pstore for 3.11 merge window"

    * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    efivars: If pstore_register fails, free unneeded pstore buffer
    acpi: Eliminate console msg if pstore.backend excludes ERST
    pstore: Return unique error if backend registration excluded by kernel param
    pstore: Fail to unlink if a driver has not defined pstore_erase
    pstore/ram: remove the power of buffer size limitation
    pstore/ram: avoid atomic accesses for ioremapped regions
    efi, pstore: Cocci spatch "memdup.spatch"

    Linus Torvalds
     
  • Pull misc ia64 updates from Tony Luck:
    "Miscellaneous ia64 changes for 3.11 merge window"

    * tag 'please-pull-misc-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    [IA64] Delete __cpuinit usage from all ia64 users
    [IA64] hpsim: Fix check for overlong simscsi prefix.
    [IA64] pci: Remove unused fallback_dev
    [IA64] perfmon: Use %*phD specifier to dump small buffers
    [IA64] Fix trap #45 handling

    Linus Torvalds
     
  • Pull "exotic" arch fixes from Geert Uytterhoeven:
    "This is a collection of several exotic architecture fixes, and a few
    other fixes for issues that were detected while doing the former"

    * 'exotic-arch-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (35 commits)
    lib: Move fonts from drivers/video/console/ to lib/fonts/
    console/font: Refactor font support code selection logic
    Revert "staging/solo6x10: depend on CONFIG_FONTS"
    input: cros_ec_keyb_clear_keyboard() depends on CONFIG_PM_SLEEP
    score: Wire up asm-generic/xor.h
    score: Remove unneeded
    openrisc: Wire up asm-generic/xor.h
    h8300/boot: Use POSIX "$((..))" instead of bashism "$[...]"
    h8300: Mark H83002 and H83048 CPU support broken
    h8300: Switch h8300 to drivers/Kconfig
    h8300: Limit timer channel ranges in Kconfig
    h8300: Wire up asm-generic/xor.h
    h8300: Fill the system call table using a CALL() macro
    h8300: Fix
    h8300: Hardcode symbol prefixes in asm sources
    h8300: add missing definition for read_barries_depends()
    frv: head.S - Remove commented-out initialization code
    cris: Wire up asm-generic/vga.h
    parport: disable PC-style parallel port support on cris
    console: Disable VGA text console support on cris
    ...

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven.

    * 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/q40: Enable PC parallel port in defconfig
    m68k/q40: Undefine insl/outsl before redefining them
    m68k/uaccess: Fix asm constraints for userspace access
    swim: Release memory region after incorrect return/goto
    m68k/irq: Vector ints need a valid interrupt handler
    m68k/math-emu: unsigned issue, 'unsigned long' will never be less than zero
    m68k: remove CONFIG_EARLY_PRINTK dependency on CONFIG_EMBEDDED, default to n
    m68k/sun3: remove inline marking of EXPORT_SYMBOL functions
    [SCSI] a3000: use module_platform_driver_probe()
    [SCSI] a4000t: use module_platform_driver_probe()
    m68k: Remove inline strcpy() and strcat() implementations

    Linus Torvalds
     
  • Pull first batch of ARC changes from Vineet Gupta:
    "There's a second bunch to follow next week - which depends on commits
    on other trees (irq/net). I'd have preferred the accompanying ARC
    change via respective trees, but it didn't workout somehow.

    Highlights of changes:

    - Continuation of ARC MM changes from 3.10 including

    zero page optimization
    Setting pagecache pages dirty by default
    Non executable stack by default
    Reducing dcache flushes for aliasing VIPT config

    - Long overdue rework of pt_regs machinery - removing the unused word
    gutters and adding ECR register to baseline (helps cleanup lot of
    low level code)

    - Support for ARC gcc 4.8

    - Few other preventive fixes, cosmetics, usage of Kconfig helper..

    The diffstat is larger than normal primarily because of arcregs.h
    header split as well as beautification of macros in entry.h"

    * tag 'arc-v3.11-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (32 commits)
    ARC: warn on improper stack unwind FDE entries
    arc: delete __cpuinit usage from all arc files
    ARC: [tlb-miss] Fix bug with CONFIG_ARC_DBG_TLB_MISS_COUNT
    ARC: [tlb-miss] Extraneous PTE bit testing/setting
    ARC: Adjustments for gcc 4.8
    ARC: Setup Vector Table Base in early boot
    ARC: Remove explicit passing around of ECR
    ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values
    ARC: stop using pt_regs->orig_r8
    ARC: pt_regs update #4: r25 saved/restored unconditionally
    ARC: K/U SP saved from one location in stack switching macro
    ARC: Entry Handler tweaks: Simplify branch for in-kernel preemption
    ARC: Entry Handler tweaks: Avoid hardcoded LIMMS for ECR values
    ARC: Increase readability of entry handlers
    ARC: pt_regs update #3: Remove unused gutter at start of callee_regs
    ARC: pt_regs update #2: Remove unused gutter at start of pt_regs
    ARC: pt_regs update #1: Align pt_regs end with end of kernel stack page
    ARC: pt_regs update #0: remove kernel stack canary
    ARC: [mm] Remove @write argument to do_page_fault()
    ARC: [mm] Make stack/heap Non-executable by default
    ...

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "This is the bulk of the s390 patches for the 3.11 merge window.

    Notable enhancements are: the block timeout patches for dasd from
    Hannes, and more work on the PCI support front. In addition some
    cleanup and the usual bug fixing."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (42 commits)
    s390/dasd: Fail all requests when DASD_FLAG_ABORTIO is set
    s390/dasd: Add 'timeout' attribute
    block: check for timeout function in blk_rq_timed_out()
    block/dasd: detailed I/O errors
    s390/dasd: Reduce amount of messages for specific errors
    s390/dasd: Implement block timeout handling
    s390/dasd: process all requests in the device tasklet
    s390/dasd: make number of retries configurable
    s390/dasd: Clarify comment
    s390/hwsampler: Updated misleading member names in hws_data_entry
    s390/appldata_net_sum: do not use static data
    s390/appldata_mem: do not use static data
    s390/vmwatchdog: do not use static data
    s390/airq: simplify adapter interrupt code
    s390/pci: remove per device debug attribute
    s390/dma: remove gratuitous brackets
    s390/facility: decompose test_facility()
    s390/sclp: remove duplicated include from sclp_ctl.c
    s390/irq: store interrupt information in pt_regs
    s390/drivers: Cocci spatch "ptr_ret.spatch"
    ...

    Linus Torvalds
     
  • Pull ARM64 updates from Catalin Marinas:
    "Main features:
    - KVM and Xen ports to AArch64
    - Hugetlbfs and transparent huge pages support for arm64
    - Applied Micro X-Gene Kconfig entry and dts file
    - Cache flushing improvements

    For arm64 huge pages support, there are x86 changes moving part of
    arch/x86/mm/hugetlbpage.c into mm/hugetlb.c to be re-used by arm64"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: (66 commits)
    arm64: Add initial DTS for APM X-Gene Storm SOC and APM Mustang board
    arm64: Add defines for APM ARMv8 implementation
    arm64: Enable APM X-Gene SOC family in the defconfig
    arm64: Add Kconfig option for APM X-Gene SOC family
    arm64/Makefile: provide vdso_install target
    ARM64: mm: THP support.
    ARM64: mm: Raise MAX_ORDER for 64KB pages and THP.
    ARM64: mm: HugeTLB support.
    ARM64: mm: Move PTE_PROT_NONE bit.
    ARM64: mm: Make PAGE_NONE pages read only and no-execute.
    ARM64: mm: Restore memblock limit when map_mem finished.
    mm: thp: Correct the HPAGE_PMD_ORDER check.
    x86: mm: Remove general hugetlb code from x86.
    mm: hugetlb: Copy general hugetlb code from x86 to mm.
    x86: mm: Remove x86 version of huge_pmd_share.
    mm: hugetlb: Copy huge_pmd_share from x86 to mm.
    arm64: KVM: document kernel object mappings in HYP
    arm64: KVM: MAINTAINERS update
    arm64: KVM: userspace API documentation
    arm64: KVM: enable initialization of a 32bit vcpu
    ...

    Linus Torvalds
     
  • Pull ARM updates from Russell King:
    "This contains the usual updates from other people (listed below) and
    the usual random muddle of miscellaneous ARM updates which cover some
    low priority bug fixes and performance improvements.

    I've started to put the pull request wording into the merge commits,
    which are:

    - NoMMU stuff:

    This includes the following series sent earlier to the list:
    - nommu-fixes
    - R7 Support
    - MPU support

    I've left out the ARCH_MULTIPLATFORM/!MMU stuff that Arnd and I
    were discussing today until we've reached a conclusion/that's had
    some more review.

    This is rebased (and re-tested) on your devel-stable branch because
    otherwise there were going to be conflicts with Uwe's V7M work now
    that you've merged that. I've included the fix for limiting MPU to
    CPU_V7.

    - Huge page support

    These changes bring both HugeTLB support and Transparent HugePage
    (THP) support to ARM. Only long descriptors (LPAE) are supported
    in this series.

    The code has been tested on an Arndale board (Exynos 5250).

    - LPAE updates

    Please pull these miscellaneous LPAE fixes I've been collecting for
    a while now for 3.11. They've been tested and reviewed by quite a
    few people, and most of the patches are pretty trivial. -- Will Deacon.

    - arch_timer cleanups

    Please pull these arch_timer cleanups I've been holding onto for a
    while. They're the same as my last posting, but have been rebased
    to v3.10-rc3.

    - mpidr linearisation (multiprocessor id register - identifies which
    CPU number we are in the system)

    This patch series that implements MPIDR linearization through a
    simple hashing algorithm and updates current cpu_{suspend}/{resume}
    code to use the newly created hash structures to retrieve context
    pointers. It represents a stepping stone for the implementation of
    power management code on forthcoming multi-cluster ARM systems.

    It has been tested on TC2 (dual cluster A15xA7 system), iMX6q,
    OMAP4 and Tegra, with processors hitting low-power states requiring
    warm-boot resume through the cpu_resume code path"

    * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (77 commits)
    ARM: 7775/1: mm: Remove do_sect_fault from LPAE code
    ARM: 7777/1: Avoid extra calls to the C compiler
    ARM: 7774/1: Fix dtb dependency to use order-only prerequisites
    ARM: 7770/1: remove residual ARMv2 support from decompressor
    ARM: 7769/1: Cortex-A15: fix erratum 798181 implementation
    ARM: 7768/1: prevent risks of out-of-bound access in ASID allocator
    ARM: 7767/1: let the ASID allocator handle suspended animation
    ARM: 7766/1: versatile: don't mark pen as __INIT
    ARM: 7765/1: perf: Record the user-mode PC in the call chain.
    ARM: 7735/2: Preserve the user r/w register TPIDRURW on context switch and fork
    ARM: kernel: implement stack pointer save array through MPIDR hashing
    ARM: kernel: build MPIDR hash function data structure
    ARM: mpu: Ensure that MPU depends on CPU_V7
    ARM: mpu: protect the vectors page with an MPU region
    ARM: mpu: Allow enabling of the MPU via kconfig
    ARM: 7758/1: introduce config HAS_BANDGAP
    ARM: 7757/1: mm: don't flush icache in switch_mm with hardware broadcasting
    ARM: 7751/1: zImage: don't overwrite ourself with a page table
    ARM: 7749/1: spinlock: retry trylock operation if strex fails on free lock
    ARM: 7748/1: oabi: handle faults when loading swi instruction from userspace
    ...

    Linus Torvalds
     
  • Pull second set of VFS changes from Al Viro:
    "Assorted f_pos race fixes, making do_splice_direct() safe to call with
    i_mutex on parent, O_TMPFILE support, Jeff's locks.c series,
    ->d_hash/->d_compare calling conventions changes from Linus, misc
    stuff all over the place."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (63 commits)
    Document ->tmpfile()
    ext4: ->tmpfile() support
    vfs: export lseek_execute() to modules
    lseek_execute() doesn't need an inode passed to it
    block_dev: switch to fixed_size_llseek()
    cpqphp_sysfs: switch to fixed_size_llseek()
    tile-srom: switch to fixed_size_llseek()
    proc_powerpc: switch to fixed_size_llseek()
    ubi/cdev: switch to fixed_size_llseek()
    pci/proc: switch to fixed_size_llseek()
    isapnp: switch to fixed_size_llseek()
    lpfc: switch to fixed_size_llseek()
    locks: give the blocked_hash its own spinlock
    locks: add a new "lm_owner_key" lock operation
    locks: turn the blocked_list into a hashtable
    locks: convert fl_link to a hlist_node
    locks: avoid taking global lock if possible when waking up blocked waiters
    locks: protect most of the file_lock handling with i_lock
    locks: encapsulate the fl_link list handling
    locks: make "added" in __posix_lock_file a bool
    ...

    Linus Torvalds
     

03 Jul, 2013

27 commits

  • Signed-off-by: Al Viro

    Al Viro
     
  • very similar to ext3 counterpart...

    Signed-off-by: Al Viro

    Al Viro
     
  • For those file systems(btrfs/ext4/ocfs2/tmpfs) that support
    SEEK_DATA/SEEK_HOLE functions, we end up handling the similar
    matter in lseek_execute() to update the current file offset
    to the desired offset if it is valid, ceph also does the
    simliar things at ceph_llseek().

    To reduce the duplications, this patch make lseek_execute()
    public accessible so that we can call it directly from the
    underlying file systems.

    Thanks Dave Chinner for this suggestion.

    [AV: call it vfs_setpos(), don't bring the removed 'inode' argument back]

    v2->v1:
    - Add kernel-doc comments for lseek_execute()
    - Call lseek_execute() in ceph->llseek()

    Signed-off-by: Jie Liu
    Cc: Dave Chinner
    Cc: Al Viro
    Cc: Andi Kleen
    Cc: Andrew Morton
    Cc: Christoph Hellwig
    Cc: Chris Mason
    Cc: Josef Bacik
    Cc: Ben Myers
    Cc: Ted Tso
    Cc: Hugh Dickins
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Sage Weil
    Signed-off-by: Al Viro

    Jie Liu
     
  • Pull cpuset changes from Tejun Heo:
    "cpuset has always been rather odd about its configurations - a cgroup
    right after creation didn't allow any task executions before
    configuration, changing configuration in the parent modifies the
    descendants irreversibly and so on. These behaviors are inherently
    nasty and almost hostile against sharing the hierarchy with other
    controllers making it very difficult to use in unified hierarchy.

    Li is currently in the process of updating the behaviors for
    __DEVEL__sane_behavior which is the bulk of changes in this pull
    request. It isn't complete yet and the behaviors will change further
    but all changes are gated behind sane_behavior. In the process, the
    rather hairy work-item punting which was used to work around the
    limitations of cgroup descendant iterator was simplified."

    * 'for-3.11-cpuset' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cpuset: rename @cont to @cgrp
    cpuset: fix to migrate mm correctly in a corner case
    cpuset: allow to move tasks to empty cpusets
    cpuset: allow to keep tasks in empty cpusets
    cpuset: introduce effective_{cpumask|nodemask}_cpuset()
    cpuset: record old_mems_allowed in struct cpuset
    cpuset: remove async hotplug propagation work
    cpuset: let hotplug propagation work wait for task attaching
    cpuset: re-structure update_cpumask() a bit
    cpuset: remove cpuset_test_cpumask()
    cpuset: remove unnecessary variable in cpuset_attach()
    cpuset: cleanup guarantee_online_{cpus|mems}()
    cpuset: remove redundant check in cpuset_cpus_allowed_fallback()

    Linus Torvalds
     
  • Pull cgroup changes from Tejun Heo:
    "This pull request contains the following changes.

    - cgroup_subsys_state (css) reference counting has been converted to
    percpu-ref. css is what each resource controller embeds into its
    own control structure and perform reference count against. It may
    be used in hot paths of various subsystems and is similar to module
    refcnt in that aspect. For example, block-cgroup's css refcnting
    was showing up a lot in Mikulaus's device-mapper scalability work
    and this should alleviate it.

    - cgroup subtree iterator has been updated so that RCU read lock can
    be released after grabbing reference. This allows simplifying its
    users which requires blocking which used to build iteration list
    under RCU read lock and then traverse it outside. This pull
    request contains simplification of cgroup core and device-cgroup.
    A separate pull request will update cpuset.

    - Fixes for various bugs including corner race conditions and RCU
    usage bugs.

    - A lot of cleanups and some prepartory work for the planned unified
    hierarchy support."

    * 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (48 commits)
    cgroup: CGRP_ROOT_SUBSYS_BOUND should also be ignored when mounting an existing hierarchy
    cgroup: CGRP_ROOT_SUBSYS_BOUND should be ignored when comparing mount options
    cgroup: fix deadlock on cgroup_mutex via drop_parsed_module_refcounts()
    cgroup: always use RCU accessors for protected accesses
    cgroup: fix RCU accesses around task->cgroups
    cgroup: fix RCU accesses to task->cgroups
    cgroup: grab cgroup_mutex in drop_parsed_module_refcounts()
    cgroup: fix cgroupfs_root early destruction path
    cgroup: reserve ID 0 for dummy_root and 1 for unified hierarchy
    cgroup: implement for_each_[builtin_]subsys()
    cgroup: move init_css_set initialization inside cgroup_mutex
    cgroup: s/for_each_subsys()/for_each_root_subsys()/
    cgroup: clean up find_css_set() and friends
    cgroup: remove cgroup->actual_subsys_mask
    cgroup: prefix global variables with "cgroup_"
    cgroup: convert CFTYPE_* flags to enums
    cgroup: rename cont to cgrp
    cgroup: clean up cgroup_serial_nr_cursor
    cgroup: convert cgroup_cft_commit() to use cgroup_for_each_descendant_pre()
    cgroup: make serial_nr_cursor available throughout cgroup.c
    ...

    Linus Torvalds
     
  • Pull workqueue changes from Tejun Heo:
    "Surprisingly, Lai and I didn't break too many things implementing
    custom pools and stuff last time around and there aren't any follow-up
    changes necessary at this point.

    The only change in this pull request is Viresh's patches to make some
    per-cpu workqueues to behave as unbound workqueues dependent on a boot
    param whose default can be configured via a config option. This leads
    to higher processing overhead / lower bandwidth as more work items are
    bounced across CPUs; however, it can lead to noticeable powersave in
    certain configurations - ~10% w/ idlish constant workload on a
    big.LITTLE configuration according to Viresh.

    This is because per-cpu workqueues interfere with how the scheduler
    perceives whether or not each CPU is idle by forcing pinned tasks on
    them, which makes the scheduler's power-aware scheduling decisions
    less effective.

    Its effectiveness is likely less pronounced on homogenous
    configurations and this type of optimization can probably be made
    automatic; however, the changes are pretty minimal and the affected
    workqueues are clearly marked, so it's an easy gain for some
    configurations for the time being with pretty unintrusive changes."

    * 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    fbcon: queue work on power efficient wq
    block: queue work on power efficient wq
    PHYLIB: queue work on system_power_efficient_wq
    workqueue: Add system wide power_efficient workqueues
    workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues

    Linus Torvalds
     
  • Pull per-cpu changes from Tejun Heo:
    "This pull request contains Kent's per-cpu reference counter. It has
    gone through several iterations since the last time and the dynamic
    allocation is gone.

    The usual usage is relatively straight-forward although async kill
    confirm interface, which is not used int most cases, is somewhat icky.
    There also are some interface concerns - e.g. I'm not sure about
    passing in @relesae callback during init as that becomes funny when we
    later implement synchronous kill_and_drain - but nothing too serious
    and it's quite useable now.

    cgroup_subsys_state refcnting has already been converted and we should
    convert module refcnt (Kent?)"

    * 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    percpu-refcount: use RCU-sched insted of normal RCU
    percpu-refcount: implement percpu_tryget() along with percpu_ref_kill_and_confirm()
    percpu-refcount: implement percpu_ref_cancel_init()
    percpu-refcount: add __must_check to percpu_ref_init() and don't use ACCESS_ONCE() in percpu_ref_kill_rcu()
    percpu-refcount: cosmetic updates
    percpu-refcount: consistently use plain (non-sched) RCU
    percpu-refcount: Don't use silly cmpxchg()
    percpu: implement generic percpu refcounting

    Linus Torvalds
     
  • Pull x86 UV update from Ingo Molnar:
    "There's a single commit in this tree, which adds support for a new SGI
    UV GRU (Global Reference Unit - fast NUMA messaging ASIC) hardware
    feature to scale up and beyond: an optional distributed mode that will
    allow per-node address mapping of local GRU space, as opposed to
    mapping all GRU hardware to the same contiguous high space"

    * 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/UV: Add GRU distributed mode mappings

    Linus Torvalds
     
  • Pull x86 tracing updates from Ingo Molnar:
    "This tree adds IRQ vector tracepoints that are named after the handler
    and which output the vector #, based on a zero-overhead approach that
    relies on changing the IDT entries, by Seiji Aguchi.

    The new tracepoints look like this:

    # perf list | grep -i irq_vector
    irq_vectors:local_timer_entry [Tracepoint event]
    irq_vectors:local_timer_exit [Tracepoint event]
    irq_vectors:reschedule_entry [Tracepoint event]
    irq_vectors:reschedule_exit [Tracepoint event]
    irq_vectors:spurious_apic_entry [Tracepoint event]
    irq_vectors:spurious_apic_exit [Tracepoint event]
    irq_vectors:error_apic_entry [Tracepoint event]
    irq_vectors:error_apic_exit [Tracepoint event]
    [...]"

    * 'x86-tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tracing: Add config option checking to the definitions of mce handlers
    trace,x86: Do not call local_irq_save() in load_current_idt()
    trace,x86: Move creation of irq tracepoints from apic.c to irq.c
    x86, trace: Add irq vector tracepoints
    x86: Rename variables for debugging
    x86, trace: Introduce entering/exiting_irq()
    tracing: Add DEFINE_EVENT_FN() macro

    Linus Torvalds
     
  • Pull x86 RAS update from Ingo Molnar:
    "The changes in this tree are:

    - ACPI APEI (ACPI Platform Error Interface) improvements, by Chen
    Gong
    - misc MCE fixes/cleanups"

    * 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mce: Update MCE severity condition check
    mce: acpi/apei: Add comments to clarify usage of the various bitfields in the MCA subsystem
    ACPI/APEI: Update einj documentation for param1/param2
    ACPI/APEI: Add parameter check before error injection
    ACPI, APEI, EINJ: Fix error return code in einj_init()
    x86, mce: Fix "braodcast" typo

    Linus Torvalds
     
  • Pull x86 platform updates from Ingo Molnar:
    "Two changes:

    - A Kconfig dependency fix/cleanup

    - Introduce the 'make kvmconfig' KVM configuration helper utility
    that turns the current .config into a KVM-bootable config. Useful
    for debugging specific native kernel configs that have no KVM
    config options enabled on VM setups."

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/platform: Make X86_GOLDFISH depend on X86_EXTENDED_PLATFORM
    x86/platform: Add kvmconfig to the phony targets
    x86, platform, kvm, kconfig: Turn existing .config's into KVM-capable configs

    Linus Torvalds
     
  • Pull x86 mm changes from Ingo Molnar:
    "Misc improvements:

    - Fix /proc/mtrr reporting
    - Fix ioremap printout
    - Remove the unused pvclock fixmap entry on 32-bit
    - misc cleanups"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/ioremap: Correct function name output
    x86: Fix /proc/mtrr with base/size more than 44bits
    ix86: Don't waste fixmap entries
    x86/mm: Drop unneeded include
    x86_64: Correct phys_addr in cleanup_highmap comment

    Linus Torvalds
     
  • Pull x86 microcode loading update from Ingo Molnar:
    "Two main changes that improve microcode loading on AMD CPUs:

    - Add support for all-in-one binary microcode files that concatenate
    the microcode images of multiple processor families, by Jacob Shin

    - Add early microcode loading (embedded in the initrd) support, also
    by Jacob Shin"

    * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, microcode, amd: Another early loading fixup
    x86, microcode, amd: Allow multiple families' bin files appended together
    x86, microcode, amd: Make find_ucode_in_initrd() __init
    x86, microcode, amd: Fix warnings and errors on with CONFIG_MICROCODE=m
    x86, microcode, amd: Early microcode patch loading support for AMD
    x86, microcode, amd: Refactor functions to prepare for early loading
    x86, microcode: Vendor abstract out save_microcode_in_initrd()
    x86, microcode, intel: Correct typo in printk

    Linus Torvalds
     
  • Pull x86 FPU changes from Ingo Molnar:
    "There are two bigger changes in this tree:

    - Add an [early-use-]safe static_cpu_has() variant and other
    robustness improvements, including the new X86_DEBUG_STATIC_CPU_HAS
    configurable debugging facility, motivated by recent obscure FPU
    code bugs, by Borislav Petkov

    - Reimplement FPU detection code in C and drop the old asm code, by
    Peter Anvin."

    * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, fpu: Use static_cpu_has_safe before alternatives
    x86: Add a static_cpu_has_safe variant
    x86: Sanity-check static_cpu_has usage
    x86, cpu: Add a synthetic, always true, cpu feature
    x86: Get rid of ->hard_math and all the FPU asm fu

    Linus Torvalds
     
  • Pull x86 EFI changes from Ingo Molnar:
    "Two fixes that should in principle increase robustness of our
    interaction with the EFI firmware, and a cleanup"

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, efi: retry ExitBootServices() on failure
    efi: Convert runtime services function ptrs
    UEFI: Don't pass boot services regions to SetVirtualAddressMap()

    Linus Torvalds
     
  • Pull x86 debug update from Ingo Molnar:
    "Misc debuggability improvements:

    - Optimize the x86 CPU register printout a bit
    - Expose the tboot TXT log via debugfs
    - Small do_debug() cleanup"

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tboot: Provide debugfs interfaces to access TXT log
    x86: Remove weird PTR_ERR() in do_debug
    x86/debug: Only print out DR registers if they are not power-on defaults

    Linus Torvalds
     
  • Pull x86 cpu updates from Ingo Molnar:
    "Two changes:

    - Extend 32-bit double fault debugging aid to 64-bit
    - Fix a build warning"

    * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/intel/cacheinfo: Shut up last long-standing warning
    x86: Extend #DF debugging aid to 64-bit

    Linus Torvalds
     
  • Pull x86 cleanups from Ingo Molnar:
    "Misc x86 cleanups"

    * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, reloc: Use xorl instead of xorq in relocate_kernel_64.S
    x86, cleanups: Remove extra tab in __flush_tlb_one()
    x86/mce: Remove check for CONFIG_X86_MCE_P4THERMAL

    Linus Torvalds
     
  • Pull x86 boot build fix from Ingo Molnar:
    "Small fixlet for the build process"

    * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/boot: Close opened file descriptor

    Linus Torvalds
     
  • Pull asm/x86 changes from Ingo Molnar:
    "Misc changes, with a bigger processor-flags cleanup/reorganization by
    Peter Anvin"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, asm, cleanup: Replace open-coded control register values with symbolic
    x86, processor-flags: Fix the datatypes and add bit number defines
    x86: Rename X86_CR4_RDWRGSFS to X86_CR4_FSGSBASE
    x86, flags: Rename X86_EFLAGS_BIT1 to X86_EFLAGS_FIXED
    linux/const.h: Add _BITUL() and _BITULL()
    x86/vdso: Convert use of typedef ctl_table to struct ctl_table
    x86: __force_order doesn't need to be an actual variable

    Linus Torvalds
     
  • Pull voluntary preemption fixes from Ingo Molnar:
    "This tree contains a speedup which is achieved through better
    might_sleep()/might_fault() preemption point annotations for uaccess
    functions, by Michael S Tsirkin:

    1. The only reason uaccess routines might sleep is if they fault.
    Make this explicit for all architectures.

    2. A voluntary preemption point in uaccess functions means compiler
    can't inline them efficiently, this breaks assumptions that they
    are very fast and small that e.g. net code seems to make. Remove
    this preemption point so behaviour matches with what callers
    assume.

    3. Accesses (e.g through socket ops) to kernel memory with KERNEL_DS
    like net/sunrpc does will never sleep. Remove an unconditinal
    might_sleep() in the might_fault() inline in kernel.h (used when
    PROVE_LOCKING is not set).

    4. Accesses with pagefault_disable() return EFAULT but won't cause
    caller to sleep. Check for that and thus avoid might_sleep() when
    PROVE_LOCKING is set.

    These changes offer a nice speedup for CONFIG_PREEMPT_VOLUNTARY=y
    kernels, here's a network bandwidth measurement between a virtual
    machine and the host:

    before:
    incoming: 7122.77 Mb/s
    outgoing: 8480.37 Mb/s

    after:
    incoming: 8619.24 Mb/s [ +21.0% ]
    outgoing: 9455.42 Mb/s [ +11.5% ]

    I kept these changes in a separate tree, separate from scheduler
    changes, because it's a mixed MM and scheduler topic"

    * 'sched-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    mm, sched: Allow uaccess in atomic with pagefault_disable()
    mm, sched: Drop voluntary schedule from might_fault()
    x86: uaccess s/might_sleep/might_fault/
    tile: uaccess s/might_sleep/might_fault/
    powerpc: uaccess s/might_sleep/might_fault/
    mn10300: uaccess s/might_sleep/might_fault/
    microblaze: uaccess s/might_sleep/might_fault/
    m32r: uaccess s/might_sleep/might_fault/
    frv: uaccess s/might_sleep/might_fault/
    arm64: uaccess s/might_sleep/might_fault/
    asm-generic: uaccess s/might_sleep/might_fault/

    Linus Torvalds
     
  • Pull scheduler updates from Ingo Molnar:
    "The main changes:

    - load-calculation cleanups and improvements, by Alex Shi
    - various nohz related tidying up of statisics, by Frederic
    Weisbecker
    - factor out /proc functions to kernel/sched/proc.c, by Paul
    Gortmaker
    - simplify the RT policy scheduler, by Kirill Tkhai
    - various fixes and cleanups"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (42 commits)
    sched/debug: Remove CONFIG_FAIR_GROUP_SCHED mask
    sched/debug: Fix formatting of /proc//sched
    sched: Fix typo in struct sched_avg member description
    sched/fair: Fix typo describing flags in enqueue_entity
    sched/debug: Add load-tracking statistics to task
    sched: Change get_rq_runnable_load() to static and inline
    sched/tg: Remove tg.load_weight
    sched/cfs_rq: Change atomic64_t removed_load to atomic_long_t
    sched/tg: Use 'unsigned long' for load variable in task group
    sched: Change cfs_rq load avg to unsigned long
    sched: Consider runnable load average in move_tasks()
    sched: Compute runnable load avg in cpu_load and cpu_avg_load_per_task
    sched: Update cpu load after task_tick
    sched: Fix sleep time double accounting in enqueue entity
    sched: Set an initial value of runnable avg for new forked task
    sched: Move a few runnable tg variables into CONFIG_SMP
    Revert "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking"
    sched: Don't mix use of typedef ctl_table and struct ctl_table
    sched: Remove WARN_ON(!sd) from init_sched_groups_power()
    sched: Fix memory leakage in build_sched_groups()
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Kernel improvements:

    - watchdog driver improvements by Li Zefan
    - Power7 CPI stack events related improvements by Sukadev Bhattiprolu
    - event multiplexing via hrtimers and other improvements by Stephane
    Eranian
    - kernel stack use optimization by Andrew Hunter
    - AMD IOMMU uncore PMU support by Suravee Suthikulpanit
    - NMI handling rate-limits by Dave Hansen
    - various hw_breakpoint fixes by Oleg Nesterov
    - hw_breakpoint overflow period sampling and related signal handling
    fixes by Jiri Olsa
    - Intel Haswell PMU support by Andi Kleen

    Tooling improvements:

    - Reset SIGTERM handler in workload child process, fix from David
    Ahern.
    - Makefile reorganization, prep work for Kconfig patches, from Jiri
    Olsa.
    - Add automated make test suite, from Jiri Olsa.
    - Add --percent-limit option to 'top' and 'report', from Namhyung
    Kim.
    - Sorting improvements, from Namhyung Kim.
    - Expand definition of sysfs format attribute, from Michael Ellerman.

    Tooling fixes:

    - 'perf tests' fixes from Jiri Olsa.
    - Make Power7 CPI stack events available in sysfs, from Sukadev
    Bhattiprolu.
    - Handle death by SIGTERM in 'perf record', fix from David Ahern.
    - Fix printing of perf_event_paranoid message, from David Ahern.
    - Handle realloc failures in 'perf kvm', from David Ahern.
    - Fix divide by 0 in variance, from David Ahern.
    - Save parent pid in thread struct, from David Ahern.
    - Handle JITed code in shared memory, from Andi Kleen.
    - Fixes for 'perf diff', from Jiri Olsa.
    - Remove some unused struct members, from Jiri Olsa.
    - Add missing liblk.a dependency for python/perf.so, fix from Jiri
    Olsa.
    - Respect CROSS_COMPILE in liblk.a, from Rabin Vincent.
    - No need to do locking when adding hists in perf report, only 'top'
    needs that, from Namhyung Kim.
    - Fix alignment of symbol column in in the hists browser (top,
    report) when -v is given, from NAmhyung Kim.
    - Fix 'perf top' -E option behavior, from Namhyung Kim.
    - Fix bug in isupper() and islower(), from Sukadev Bhattiprolu.
    - Fix compile errors in bp_signal 'perf test', from Sukadev
    Bhattiprolu.

    ... and more things"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (102 commits)
    perf/x86: Disable PEBS-LL in intel_pmu_pebs_disable()
    perf/x86: Fix shared register mutual exclusion enforcement
    perf/x86/intel: Support full width counting
    x86: Add NMI duration tracepoints
    perf: Drop sample rate when sampling is too slow
    x86: Warn when NMI handlers take large amounts of time
    hw_breakpoint: Introduce "struct bp_cpuinfo"
    hw_breakpoint: Simplify *register_wide_hw_breakpoint()
    hw_breakpoint: Introduce cpumask_of_bp()
    hw_breakpoint: Simplify the "weight" usage in toggle_bp_slot() paths
    hw_breakpoint: Simplify list/idx mess in toggle_bp_slot() paths
    perf/x86/intel: Add mem-loads/stores support for Haswell
    perf/x86/intel: Support Haswell/v4 LBR format
    perf/x86/intel: Move NMI clearing to end of PMI handler
    perf/x86/intel: Add Haswell PEBS support
    perf/x86/intel: Add simple Haswell PMU support
    perf/x86/intel: Add Haswell PEBS record support
    perf/x86/intel: Fix sparse warning
    perf/x86/amd: AMD IOMMU Performance Counter PERF uncore PMU implementation
    perf/x86/amd: Add IOMMU Performance Counter resource management
    ...

    Linus Torvalds
     
  • Pull core irq changes from Ingo Molnar:
    "The main changes:

    - generic-irqchip driver additions, cleanups and fixes

    - 3 new irqchip drivers: ARMv7-M NVIC, TB10x and Marvell Orion SoCs

    - irq_get_trigger_type() simplification and cross-arch cleanup

    - various cleanups, simplifications

    - documentation updates"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits)
    softirq: Use _RET_IP_
    genirq: Add the generic chip to the genirq docbook
    genirq: generic-chip: Export some irq_gc_ functions
    genirq: Fix can_request_irq() for IRQs without an action
    irqchip: exynos-combiner: Staticize combiner_init
    irqchip: Add support for ARMv7-M NVIC
    irqchip: Add TB10x interrupt controller driver
    irqdomain: Use irq_get_trigger_type() to get IRQ flags
    MIPS: octeon: Use irq_get_trigger_type() to get IRQ flags
    arm: orion: Use irq_get_trigger_type() to get IRQ flags
    mfd: stmpe: use irq_get_trigger_type() to get IRQ flags
    mfd: twl4030-irq: Use irq_get_trigger_type() to get IRQ flags
    gpio: mvebu: Use irq_get_trigger_type() to get IRQ flags
    genirq: Add irq_get_trigger_type() to get IRQ flags
    genirq: Irqchip: document gcflags arg of irq_alloc_domain_generic_chips
    genirq: Set irq thread to RT priority on creation
    irqchip: Add support for Marvell Orion SoCs
    genirq: Add kerneldoc for irq_disable.
    genirq: irqchip: Add mask to block out invalid irqs
    genirq: Generic chip: Add linear irq domain support
    ...

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "The major changes:

    - Simplify RCU's grace-period and callback processing based on the new
    numbering for callbacks.

    - Removal of TINY_PREEMPT_RCU in favor of TREE_PREEMPT_RCU for
    single-CPU low-latency systems.

    - SRCU-related changes and fixes.

    - Miscellaneous fixes, including converting a few remaining printk()
    calls to pr_*().

    - Documentation updates"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
    rcu: Shrink TINY_RCU by reworking CPU-stall ifdefs
    rcu: Shrink TINY_RCU by moving exit_rcu()
    rcu: Remove TINY_PREEMPT_RCU tracing documentation
    rcu: Consolidate rcutiny_plugin.h ifdefs
    rcu: Remove rcu_preempt_note_context_switch()
    rcu: Remove the CONFIG_TINY_RCU ifdefs in rcutiny.h
    rcu: Remove check_cpu_stall_preempt()
    rcu: Simplify RCU_TINY RCU callback invocation
    rcu: Remove rcu_preempt_process_callbacks()
    rcu: Remove rcu_preempt_remove_callbacks()
    rcu: Remove rcu_preempt_check_callbacks()
    rcu: Remove show_tiny_preempt_stats()
    rcu: Remove TINY_PREEMPT_RCU
    powerpc,kvm: fix imbalance srcu_read_[un]lock()
    rcu: Remove srcu_read_lock_raw() and srcu_read_unlock_raw().
    rcu: Apply Dave Jones's NOCB Kconfig help feedback
    rcu: Merge adjacent identical ifdefs
    rcu: Drive quiescent-state-forcing delay from HZ
    rcu: Remove "Experimental" flags
    kthread: Add kworker kthreads to OS-jitter documentation
    ...

    Linus Torvalds
     
  • Pull WW mutex support from Ingo Molnar:
    "This tree adds support for wound/wait style locks, which the graphics
    guys would like to make use of in the TTM graphics subsystem.

    Wound/wait mutexes are used when other multiple lock acquisitions of a
    similar type can be done in an arbitrary order. The deadlock handling
    used here is called wait/wound in the RDBMS literature: The older
    tasks waits until it can acquire the contended lock. The younger
    tasks needs to back off and drop all the locks it is currently
    holding, ie the younger task is wounded.

    See this LWN.net description of W/W mutexes:

    https://lwn.net/Articles/548909/

    The comments there outline specific usecases for this facility (which
    have already been implemented for the DRM tree).

    Also see Documentation/ww-mutex-design.txt for more details"

    * 'core-mutexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking-selftests: Handle unexpected failures more strictly
    mutex: Add more w/w tests to test EDEADLK path handling
    mutex: Add more tests to lib/locking-selftest.c
    mutex: Add w/w tests to lib/locking-selftest.c
    mutex: Add w/w mutex slowpath debugging
    mutex: Add support for wound/wait style locks
    arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not

    Linus Torvalds
     
  • Pull locking changes from Ingo Molnar:
    "Four miscellanous standalone fixes for futexes, rtmutexes and
    Kconfig.locks."

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    futex: Use freezable blocking call
    futex: Take hugepages into account when generating futex_key
    rtmutex: Document rt_mutex_adjust_prio_chain()
    locking: Fix copy/paste errors of "ARCH_INLINE_*_UNLOCK_BH"

    Linus Torvalds