04 Jul, 2013

21 commits

  • Cc: Jie Liu
    Cc: Joel Becker
    Cc: Mark Fasheh
    Cc: Sunil Mushran
    Cc: Younger Liu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • In ocfs2_relink_block_group(), we roll back all those changes if notify
    intent to modify buffers for metadata update failed even if the relevant
    buffer has not yet been modified/got dirty at that point, that are not
    quite right because of:

    - None buffer has been modified/dirty if failed to call
    ocfs2_journal_access_gd() against the previous block group buffer

    - Only the previous block group buffer has got dirty if failed to call
    ocfs2_journal_access_gd() against the block group buffer

    - There is no need to roll back the change for file entry buffer at all

    Those problems will not cause anything wrong but unnecessary. This
    patch fix them and kill the useless bg_ptr variable as well.

    Signed-off-by: Jie Liu
    Cc: Younger Liu
    Cc: Sunil Mushran
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jie Liu
     
  • While adding a file into orphan dir in ocfs2_orphan_add(), it calls
    __ocfs2_add_entry() before ocfs2_journal_access_di(). If
    ocfs2_journal_access_di() failed, the file is added into orphan dir, and
    orphan dir dinode updated, but file dinode has not been updated.
    Accordingly, the data is not consistent between file dinode and orphan
    dir.

    So, need to call ocfs2_journal_access_di() before __ocfs2_add_entry(),
    and if ocfs2_journal_access_di() failed, orphan_fe and
    orphan_dir_inode->i_nlink need rollback.

    This bug was added by 3939fda4 ("Ocfs2: Journaling i_flags and
    i_orphaned_slot when adding inode to orphan dir.").

    Signed-off-by: Younger Liu
    Acked-by: Jeff Liu
    Cc: Sunil Mushran
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Younger Liu
     
  • dlmlock_master() returns DLM_RECOVERING/DLM_MIGRATING/ DLM_FORWAR after
    adding lock to blocked list if lockres has the state
    DLM_LOCK_RES_RECOVERING/DLM_LOCK_RES_MIGRATING/ DLM_LOCK_RES_IN_PROGRESS.
    so it will retry in dlmlock(). And this may cause dlm_thread fall into an
    infinite loop

    Thread1 dlm_thread

    calls dlm_lock->dlmlock_master,
    if lockresA is in state
    DLM_LOCK_RES_RECOVERING, calls
    __dlm_wait_on_lockres() and waits
    until others threads clear this
    state;

    If cannot grant this lock,
    adding lock to blocked list,
    and return DLM_RECOVERING;

    Grant this lock and move it to
    grant list;

    After a while, retry and
    calls list_add_tail(), adding lock
    to blocked list again.

    Granted and blocked list of this lockres will become the following
    conditions:

    lock_res->granted.next = dlm_lock->list_head;
    lock_res->blocked.next = dlm_lock->list_head;
    dlm_lock->list_head.next = dlm_lock_resource->blocked;

    When dlm_thread traverses the granted list, it will fall into an endless
    loop, checking dlm_lock.list_head, dlm_lock->list_head.next
    (i.e.lock_res->blocked), lock_res->blocked.next(i.e.dlm_lock.list_head
    again) .....

    Signed-off-by: joyce
    Reviewed-by: jensen
    Cc: Jeff Liu
    Acked-by: Sunil Mushran
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xue jiufei
     
  • Free space checking will be done in ocfs2_xattr_ibody_init(). So remove
    here.

    [akpm@linux-foundation.org: remove unused local]
    Signed-off-by: Junxiao Bi
    Reviewed-by: Jie Liu
    Acked-by: Joel Becker
    Cc: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Junxiao Bi
     
  • There is a memory leak in sc_kref_release(). When free struct
    o2net_sock_container (sc), we should release sc->sc_page.

    Signed-off-by: Younger Liu
    Reviewed-by: Jie Liu
    Cc: Joel Becker
    Cc: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Younger Liu
     
  • While adding extends to a file, the credits are calculated incorrectly
    and if the requested clusters is more than one (or more because we used
    a conservative limit) then we run out of journal credits and we hit an
    assert in journalling code.

    The function parameter bits_wanted variable was not used at all.

    Signed-off-by: Goldwyn Rodrigues
    Reviewed-by: Jie Liu
    Cc: Joel Becker
    Cc: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Goldwyn Rodrigues
     
  • In ocfs2_remove_btree_range, when calling ocfs2_lock_refcount_tree and
    ocfs2_prepare_refcount_change_for_del failed, it goes to out and then
    tries to call mutex_unlock without mutex_lock before. And when calling
    ocfs2_reserve_blocks_for_rec_trunc failed, it should free ref_tree
    before return.

    Signed-off-by: Joseph Qi
    Reviewed-by: Jie Liu
    Cc: Joel Becker
    Cc: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Code cleanup: needs_checkpoint is assigned to but never used. Delete
    the variable.

    Signed-off-by: Goldwyn Rodrigues
    Cc: Jeff Liu
    Acked-by: Joel Becker
    Cc: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Goldwyn Rodrigues
     
  • dlm_begin_reco_handler() returns without putting dlm when dlm recovery
    state is DLM_RECO_STATE_FINALIZE.

    Signed-off-by: joyce
    Reviewed-by: Jie Liu
    Acked-by: Joel Becker
    Cc: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xue jiufei
     
  • If we use le32_add_cpu to set ocfs2_dinode i_flags, it may lead to the
    corresponding flag corrupted. So we should change it to bitwise and/or
    operation.

    Signed-off-by: Joseph Qi
    Cc: Joel Becker
    Cc: Mark Fasheh
    Cc: shencanquan
    Reviewed-by: Jie Liu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • In dlm_request_all_locks, ret is type enum. But o2net_send_message
    returns a type int value. Then it will never run into the following
    error branch. So we should change the ret type from enum to int.

    Signed-off-by: Joseph Qi
    Cc: Joel Becker
    Cc: Mark Fasheh
    Acked-by: Sunil Mushran
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Below 3 functions have already been declared in dlmcommon.h, so we have
    no need to declare them again in dlmrecovery.c:

    dlm_complete_recovery_thread
    dlm_launch_recovery_thread
    dlm_kick_recovery_thread

    Signed-off-by: Joseph Qi
    Cc: Joel Becker
    Cc: Mark Fasheh
    Acked-by: Sunil Mushran
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • The difference between "count" and "len" is that "len" is capped at
    4095. Changing it like this makes it match how sysfs_write_file() is
    implemented.

    This is a static analysis patch. I haven't found any store_attribute()
    functions where this change makes a difference.

    Signed-off-by: Dan Carpenter
    Acked-by: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • spacr64 gcc-3.4.5 (at least) spits this back.

    Cc: Andrey Smirnov
    Cc: Mark Brown
    Cc: Takashi Iwai
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • tasklet_kill() may sleep so call it before taking pch->lock.

    Fixes following lockup:

    BUG: scheduling while atomic: cat/2383/0x00000002
    Modules linked in:
    unwind_backtrace+0x0/0xfc
    __schedule_bug+0x4c/0x58
    __schedule+0x690/0x6e0
    sys_sched_yield+0x70/0x78
    tasklet_kill+0x34/0x8c
    pl330_free_chan_resources+0x24/0x88
    dma_chan_put+0x4c/0x50
    [...]
    BUG: spinlock lockup suspected on CPU#0, swapper/0/0
    lock: 0xe52aa04c, .magic: dead4ead, .owner: cat/2383, .owner_cpu: 1
    unwind_backtrace+0x0/0xfc
    do_raw_spin_lock+0x194/0x204
    _raw_spin_lock_irqsave+0x20/0x28
    pl330_tasklet+0x2c/0x5a8
    tasklet_action+0xfc/0x114
    __do_softirq+0xe4/0x19c
    irq_exit+0x98/0x9c
    handle_IPI+0x124/0x16c
    gic_handle_irq+0x64/0x68
    __irq_svc+0x40/0x70
    cpuidle_wrap_enter+0x4c/0xa0
    cpuidle_enter_state+0x18/0x68
    cpuidle_idle_call+0xac/0xe0
    cpu_idle+0xac/0xf0

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Kyungmin Park
    Acked-by: Jassi Brar
    Cc: Vinod Koul
    Cc: Tomasz Figa
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bartlomiej Zolnierkiewicz
     
  • Need include "asm/uaccess.h" to pass compiling.

    The related error (with allmodconfig):

    arch/c6x/mm/init.c: In function `paging_init':
    arch/c6x/mm/init.c:46:2: error: implicit declaration of function `set_fs' [-Werror=implicit-function-declaration]
    arch/c6x/mm/init.c:46:9: error: `KERNEL_DS' undeclared (first use in this function)
    arch/c6x/mm/init.c:46:9: note: each undeclared identifier is reported only once for each function it appears in

    Signed-off-by: Chen Gang
    Cc: [3.10.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chen Gang
     
  • Commit f21afc25f9ed ("smp.h: Use local_irq_{save,restore}() in !SMP
    version of on_each_cpu()") converted on_each_cpu() to a C function.

    This required inclusion of irqflags.h, which broke ia64 and mn10300 (at
    least) due to header ordering hell.

    Switch on_each_cpu() back to a macro to fix this.

    Reported-by: Geert Uytterhoeven
    Acked-by: Geert Uytterhoeven
    Cc: David Daney
    Cc: Ralf Baechle
    Cc: Stephen Rothwell
    Cc: [3.10.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • 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

19 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