1. 12 3月, 2013 1 次提交
    • N
      ARM: 7670/1: fix the memset fix · 418df63a
      Nicolas Pitre 提交于
      Commit 455bd4c4 ("ARM: 7668/1: fix memset-related crashes caused by
      recent GCC (4.7.2) optimizations") attempted to fix a compliance issue
      with the memset return value.  However the memset itself became broken
      by that patch for misaligned pointers.
      
      This fixes the above by branching over the entry code from the
      misaligned fixup code to avoid reloading the original pointer.
      
      Also, because the function entry alignment is wrong in the Thumb mode
      compilation, that fixup code is moved to the end.
      
      While at it, the entry instructions are slightly reworked to help dual
      issue pipelines.
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Tested-by: NAlexander Holler <holler@ahsoftware.de>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      418df63a
  2. 08 3月, 2013 1 次提交
    • I
      ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations · 455bd4c4
      Ivan Djelic 提交于
      Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on
      assumptions about the implementation of memset and similar functions.
      The current ARM optimized memset code does not return the value of
      its first argument, as is usually expected from standard implementations.
      
      For instance in the following function:
      
      void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter)
      {
      	memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter));
      	waiter->magic = waiter;
      	INIT_LIST_HEAD(&waiter->list);
      }
      
      compiled as:
      
      800554d0 <debug_mutex_lock_common>:
      800554d0:       e92d4008        push    {r3, lr}
      800554d4:       e1a00001        mov     r0, r1
      800554d8:       e3a02010        mov     r2, #16 ; 0x10
      800554dc:       e3a01011        mov     r1, #17 ; 0x11
      800554e0:       eb04426e        bl      80165ea0 <memset>
      800554e4:       e1a03000        mov     r3, r0
      800554e8:       e583000c        str     r0, [r3, #12]
      800554ec:       e5830000        str     r0, [r3]
      800554f0:       e5830004        str     r0, [r3, #4]
      800554f4:       e8bd8008        pop     {r3, pc}
      
      GCC assumes memset returns the value of pointer 'waiter' in register r0; causing
      register/memory corruptions.
      
      This patch fixes the return value of the assembly version of memset.
      It adds a 'mov' instruction and merges an additional load+store into
      existing load/store instructions.
      For ease of review, here is a breakdown of the patch into 4 simple steps:
      
      Step 1
      ======
      Perform the following substitutions:
      ip -> r8, then
      r0 -> ip,
      and insert 'mov ip, r0' as the first statement of the function.
      At this point, we have a memset() implementation returning the proper result,
      but corrupting r8 on some paths (the ones that were using ip).
      
      Step 2
      ======
      Make sure r8 is saved and restored when (! CALGN(1)+0) == 1:
      
      save r8:
      -       str     lr, [sp, #-4]!
      +       stmfd   sp!, {r8, lr}
      
      and restore r8 on both exit paths:
      -       ldmeqfd sp!, {pc}               @ Now <64 bytes to go.
      +       ldmeqfd sp!, {r8, pc}           @ Now <64 bytes to go.
      (...)
              tst     r2, #16
              stmneia ip!, {r1, r3, r8, lr}
      -       ldr     lr, [sp], #4
      +       ldmfd   sp!, {r8, lr}
      
      Step 3
      ======
      Make sure r8 is saved and restored when (! CALGN(1)+0) == 0:
      
      save r8:
      -       stmfd   sp!, {r4-r7, lr}
      +       stmfd   sp!, {r4-r8, lr}
      
      and restore r8 on both exit paths:
              bgt     3b
      -       ldmeqfd sp!, {r4-r7, pc}
      +       ldmeqfd sp!, {r4-r8, pc}
      (...)
              tst     r2, #16
              stmneia ip!, {r4-r7}
      -       ldmfd   sp!, {r4-r7, lr}
      +       ldmfd   sp!, {r4-r8, lr}
      
      Step 4
      ======
      Rewrite register list "r4-r7, r8" as "r4-r8".
      Signed-off-by: NIvan Djelic <ivan.djelic@parrot.com>
      Reviewed-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NDirk Behme <dirk.behme@gmail.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      455bd4c4
  3. 07 3月, 2013 2 次提交
    • S
      ARM: 7667/1: perf: Fix section mismatch on armpmu_init() · 44d6b1fc
      Stephen Boyd 提交于
      WARNING: vmlinux.o(.text+0xfb80): Section mismatch in reference
      from the function armpmu_register() to the function
      .init.text:armpmu_init()
      The function armpmu_register() references
      the function __init armpmu_init().
      This is often because armpmu_register lacks a __init
      annotation or the annotation of armpmu_init is wrong.
      
      Just drop the __init marking on armpmu_init() because
      armpmu_register() no longer has an __init marking.
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      44d6b1fc
    • J
      ARM: 7666/1: decompressor: add -mno-single-pic-base for building the decompressor · b8083f86
      Jonathan Austin 提交于
      Before jumping to (position independent) C-code from the decompressor's
      assembler world we set-up the C environment. This setup currently does not
      set r9, which for arm-none-uclinux-uclibceabi toolchains is by default
      expected to be the PIC offset base register (IE should point to the
      beginning of the GOT).
      
      Currently, therefore, in order to build working kernels that use the
      decompressor it is necessary to use an arm-linux-gnueabi toolchain, or
      similar. uClinux toolchains cause a prefetch abort to occur at the beginning
      of the decompress_kernel function.
      
      This patch allows uClinux toolchains to build bootable zImages by forcing
      the -mno-single-pic-base option, which ensures that the location of the GOT
      is re-derived each time it is required, and r9 becomes free for use as a
      general purpose register.
      
      This has a small (4% in instruction terms) advantage over the alternative of
      setting r9 to point to the GOT before calling into the C-world.
      Signed-off-by: NJonathan Austin <jonathan.austin@arm.com>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      b8083f86
  4. 04 3月, 2013 23 次提交
    • C
      ARM: 7665/1: Wire up kcmp syscall · 3f7d1fe1
      Cyrill Gorcunov 提交于
      Wire up kcmp syscall for ability to proceed checkpoint/restore
      procedure on ARM platform.
      Signed-off-by: NAlexander Kartashov <alekskartashov@parallels.com>
      Signed-off-by: NCyrill Gorcunov <gorcunov@openvz.org>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      3f7d1fe1
    • C
      ARM: 7664/1: perf: remove erroneous semicolon from event initialisation · e595ede6
      Chen Gang 提交于
      Commit 9dcbf466 ("ARM: perf: simplify __hw_perf_event_init err
      handling") tidied up the error handling code for perf event
      initialisation on ARM, but a copy-and-paste error left a dangling
      semicolon at the end of an if statement.
      
      This patch removes the broken semicolon, restoring the old group
      validation semantics.
      
      Cc: Mark Rutland <mark.rutland@arm.com>
      Acked-by: NDirk Behme <dirk.behme@gmail.com>
      Signed-off-by: NChen Gang <gang.chen@asianux.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      e595ede6
    • W
      ARM: 7663/1: perf: fix ARMv7 EVTYPE_MASK to include NSH bit · f2fe09b0
      Will Deacon 提交于
      Masked out PMXEVTYPER.NSH means that we can't enable profiling at PL2,
      regardless of the settings in the HDCR.
      
      This patch fixes the broken mask.
      
      Cc: <stable@vger.kernel.org>
      Reported-by: NChristoffer Dall <cdall@cs.columbia.edu>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      f2fe09b0
    • D
      ARM: 7662/1: hw_breakpoint: reset debug logic on secondary CPUs in s2ram resume · 1a8e6118
      Dietmar Eggemann 提交于
      We must mask out the CPU_TASKS_FROZEN bit so that reset_ctrl_regs is
      also called on a secondary CPU during s2ram resume, where only the boot
      CPU will receive the PM_EXIT notification.
      Signed-off-by: NDietmar Eggemann <dietmar.eggemann@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      1a8e6118
    • W
      ARM: 7661/1: mm: perform explicit branch predictor maintenance when required · 89c7e4b8
      Will Deacon 提交于
      The ARM ARM requires branch predictor maintenance if, for a given ASID,
      the instructions at a specific virtual address appear to change.
      
      From the kernel's point of view, that means:
      
      	- Changing the kernel's view of memory (e.g. switching to the
      	  identity map)
      	- ASID rollover (since ASIDs will be re-allocated to new tasks)
      
      This patch adds explicit branch predictor maintenance when either of the
      two conditions above are met.
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      89c7e4b8
    • W
      ARM: 7660/1: tlb: add branch predictor maintenance operations · 862c588f
      Will Deacon 提交于
      The ARM architecture requires explicit branch predictor maintenance
      when updating an instruction stream for a given virtual address. In
      reality, this isn't so much of a burden because the branch predictor
      is flushed during the cache maintenance required to make the new
      instructions visible to the I-side of the processor.
      
      However, there are still some cases where explicit flushing is required,
      so add a local_bp_flush_all operation to deal with this.
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      862c588f
    • W
      ARM: 7659/1: mm: make mm->context.id an atomic64_t variable · 8a4e3a9e
      Will Deacon 提交于
      mm->context.id is updated under asid_lock when a new ASID is allocated
      to an mm_struct. However, it is also read without the lock when a task
      is being scheduled and checking whether or not the current ASID
      generation is up-to-date.
      
      If two threads of the same process are being scheduled in parallel and
      the bottom bits of the generation in their mm->context.id match the
      current generation (that is, the mm_struct has not been used for ~2^24
      rollovers) then the non-atomic, lockless access to mm->context.id may
      yield the incorrect ASID.
      
      This patch fixes this issue by making mm->context.id and atomic64_t,
      ensuring that the generation is always read consistently. For code that
      only requires access to the ASID bits (e.g. TLB flushing by mm), then
      the value is accessed directly, which GCC converts to an ldrb.
      
      Cc: <stable@vger.kernel.org> # 3.8
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      8a4e3a9e
    • W
      ARM: 7658/1: mm: fix race updating mm->context.id on ASID rollover · 37f47e3d
      Will Deacon 提交于
      If a thread triggers an ASID rollover, other threads of the same process
      must be made to wait until the mm->context.id for the shared mm_struct
      has been updated to new generation and associated book-keeping (e.g.
      TLB invalidation) has ben performed.
      
      However, there is a *tiny* window where both mm->context.id and the
      relevant active_asids entry are updated to the new generation, but the
      TLB flush has not been performed, which could allow another thread to
      return to userspace with a dirty TLB, potentially leading to data
      corruption. In reality this will never occur because one CPU would need
      to perform a context-switch in the time it takes another to do a couple
      of atomic test/set operations but we should plug the race anyway.
      
      This patch moves the active_asids update until after the potential TLB
      flush on context-switch.
      
      Cc: <stable@vger.kernel.org> # 3.8
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      37f47e3d
    • W
      ARM: 7657/1: head: fix swapper and idmap population with LPAE and big-endian · d61947a1
      Will Deacon 提交于
      The LPAE page table format uses 64-bit descriptors, so we need to take
      endianness into account when populating the swapper and idmap tables
      during early initialisation.
      
      This patch ensures that we store the two words making up each page table
      entry in the correct order when running big-endian.
      
      Cc: <stable@vger.kernel.org>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Tested-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      d61947a1
    • S
      ARM: 7655/1: smp_twd: make twd_local_timer_of_register() no-op for nosmp · 904464b9
      Shawn Guo 提交于
      When booting a SMP build kernel with nosmp on kernel cmdline, the
      following fat warning will be hit.
      
      ------------[ cut here ]------------
      WARNING: at arch/arm/kernel/smp_twd.c:345
      twd_local_timer_of_register+0x7c/0x90()
      twd_local_timer_of_register failed (-6)
      Modules linked in:
      Backtrace:
      [<80011f14>] (dump_backtrace+0x0/0x10c) from [<8044dd30>]
      (dump_stack+0x18/0x1c)
       r7:805e9f58 r6:805ba84c r5:80539331 r4:00000159
      [<8044dd18>] (dump_stack+0x0/0x1c) from [<80020fbc>]
      (warn_slowpath_common+0x54/0x6c)
      [<80020f68>] (warn_slowpath_common+0x0/0x6c) from [<80021078>]
      (warn_slowpath_fmt+0x38/0x40)
       r9:412fc09a r8:8fffffff r7:ffffffff r6:00000001 r5:80633b8c
      r4:80b32da8
      [<80021040>] (warn_slowpath_fmt+0x0/0x40) from [<805ba84]
      (twd_local_timer_of_register+0x7c/0x90)
       r3:fffffffa r2:8053934b
      [<805ba7d0>] (twd_local_timer_of_register+0x0/0x90) from [<805c0bec>]
      (imx6q_timer_init+0x18/0x4c)
       r5:80633800 r4:8053b701
      [<805c0bd4>] (imx6q_timer_init+0x0/0x4c) from [<805ba4e8>]
      (time_init+0x28/0x38)
       r5:80633800 r4:805dc0f4
      [<805ba4c0>] (time_init+0x0/0x38) from [<805b6854>]
      (start_kernel+0x1a0/0x310)
      [<805b66b4>] (start_kernel+0x0/0x310) from [<10008044>] (0x10008044)
       r8:1000406a r7:805f3f8c r6:805dc0c4 r5:805f0518 r4:10c5387d
      ---[ end trace 1b75b31a2719ed1c ]---
      
      Check (!is_smp() || !setup_max_cpus) in twd_local_timer_of_register()
      to make it be a no-op for the conditions, thus avoid above warning.
      Reported-by: NDirk Behme <dirk.behme@de.bosch.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      904464b9
    • B
      ARM: 7652/1: mm: fix missing use of 'asid' to get asid value from mm->context.id · 78305c86
      Ben Dooks 提交于
      Fix missing use of the asid macro when getting the ASID from the mm->context.id field.
      Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      78305c86
    • L
      ARM: 7642/1: netx: bump IRQ offset to 64 · 30a1b5ef
      Linus Walleij 提交于
      The Netx IRQs offset from zero, which is illegal, since Linux
      IRQ 0 is NO_IRQ.
      Acked-by: NSascha Hauer <s.hauer@pengutronix.de>
      Reviewed-by: NJamie Iles <jamie@jamieiles.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      30a1b5ef
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 56a79b7b
      Linus Torvalds 提交于
      Pull  more VFS bits from Al Viro:
       "Unfortunately, it looks like xattr series will have to wait until the
        next cycle ;-/
      
        This pile contains 9p cleanups and fixes (races in v9fs_fid_add()
        etc), fixup for nommu breakage in shmem.c, several cleanups and a bit
        more file_inode() work"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        constify path_get/path_put and fs_struct.c stuff
        fix nommu breakage in shmem.c
        cache the value of file_inode() in struct file
        9p: if v9fs_fid_lookup() gets to asking server, it'd better have hashed dentry
        9p: make sure ->lookup() adds fid to the right dentry
        9p: untangle ->lookup() a bit
        9p: double iput() in ->lookup() if d_materialise_unique() fails
        9p: v9fs_fid_add() can't fail now
        v9fs: get rid of v9fs_dentry
        9p: turn fid->dlist into hlist
        9p: don't bother with private lock in ->d_fsdata; dentry->d_lock will do just fine
        more file_inode() open-coded instances
        selinux: opened file can't have NULL or negative ->f_path.dentry
      
      (In the meantime, the hlist traversal macros have changed, so this
      required a semantic conflict fixup for the newly hlistified fid->dlist)
      56a79b7b
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 1c82315a
      Linus Torvalds 提交于
      Pull btrfs fixup from Chris Mason:
       "Geert and James both sent this one in, sorry guys"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        btrfs/raid56: Add missing #include <linux/vmalloc.h>
      1c82315a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 530ede14
      Linus Torvalds 提交于
      Pull second set of s390 patches from Martin Schwidefsky:
       "The main part of this merge are Heikos uaccess patches.  Together with
        commit 09884964 ("mm: do not grow the stack vma just because of an
        overrun on preceding vma") the user string access is hopefully fixed
        for good.
      
        In addition some bug fixes and two cleanup patches."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/module: fix compile warning
        qdio: remove unused parameters
        s390/uaccess: fix kernel ds access for page table walk
        s390/uaccess: fix strncpy_from_user string length check
        input: disable i8042 PC Keyboard controller for s390
        s390/dis: Fix invalid array size
        s390/uaccess: remove pointless access_ok() checks
        s390/uaccess: fix strncpy_from_user/strnlen_user zero maxlen case
        s390/uaccess: shorten strncpy_from_user/strnlen_user
        s390/dasd: fix unresponsive device after all channel paths were lost
        s390/mm: ignore change bit for vmemmap
        s390/page table dumper: add support for change-recording override bit
      530ede14
    • L
      Merge branch 'fixes-for-3.9-latest' of... · 6977c6fc
      Linus Torvalds 提交于
      Merge branch 'fixes-for-3.9-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
      
      Pull second round of PARISC updates from Helge Deller:
       "The most important fix in this branch is the switch of io_setup,
        io_getevents and io_submit syscalls to use the available compat
        syscalls when running 32bit userspace on 64bit kernel.  Other than
        that it's mostly removal of compile warnings."
      
      * 'fixes-for-3.9-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: fix redefinition of SET_PERSONALITY
        parisc: do not install modules when installing kernel
        parisc: fix compile warnings triggered by atomic_sub(sizeof(),v)
        parisc: check return value of down_interruptible() in hp_sdc_rtc.c
        parisc: avoid unitialized variable warning in pa_memcpy()
        parisc: remove unused variable 'compat_val'
        parisc: switch to compat_functions of io_setup, io_getevents and io_submit
        parisc: select ARCH_WANT_FRAME_POINTERS
      6977c6fc
    • L
      Merge tag 'metag-v3.9-rc1-v4' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag · 8fd5e7a2
      Linus Torvalds 提交于
      Pull new ImgTec Meta architecture from James Hogan:
       "This adds core architecture support for Imagination's Meta processor
        cores, followed by some later miscellaneous arch/metag cleanups and
        fixes which I kept separate to ease review:
      
         - Support for basic Meta 1 (ATP) and Meta 2 (HTP) core architecture
         - A few fixes all over, particularly for symbol prefixes
         - A few privilege protection fixes
         - Several cleanups (setup.c includes, split out a lot of
           metag_ksyms.c)
         - Fix some missing exports
         - Convert hugetlb to use vm_unmapped_area()
         - Copy device tree to non-init memory
         - Provide dma_get_sgtable()"
      
      * tag 'metag-v3.9-rc1-v4' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (61 commits)
        metag: Provide dma_get_sgtable()
        metag: prom.h: remove declaration of metag_dt_memblock_reserve()
        metag: copy devicetree to non-init memory
        metag: cleanup metag_ksyms.c includes
        metag: move mm/init.c exports out of metag_ksyms.c
        metag: move usercopy.c exports out of metag_ksyms.c
        metag: move setup.c exports out of metag_ksyms.c
        metag: move kick.c exports out of metag_ksyms.c
        metag: move traps.c exports out of metag_ksyms.c
        metag: move irq enable out of irqflags.h on SMP
        genksyms: fix metag symbol prefix on crc symbols
        metag: hugetlb: convert to vm_unmapped_area()
        metag: export clear_page and copy_page
        metag: export metag_code_cache_flush_all
        metag: protect more non-MMU memory regions
        metag: make TXPRIVEXT bits explicit
        metag: kernel/setup.c: sort includes
        perf: Enable building perf tools for Meta
        metag: add boot time LNKGET/LNKSET check
        metag: add __init to metag_cache_probe()
        ...
      8fd5e7a2
    • L
      Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm · 529e5fbc
      Linus Torvalds 提交于
      Pull late ARM updates from Russell King:
       "Here is the late set of ARM updates for this merge window; in here is:
      
         - The ARM parts of the broadcast timer support, core parts merged
           through tglx's tree.  This was left over from the previous merge to
           allow the dependency on tglx's tree to be resolved.
      
         - A fix to the VFP code which shows up on Raspberry Pi's, as well as
           fixing the fallout from a previous commit in this area.
      
         - A number of smaller fixes scattered throughout the ARM tree"
      
      * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: Fix broken commit 0cc41e4a corrupting kernel messages
        ARM: fix scheduling while atomic warning in alignment handling code
        ARM: VFP: fix emulation of second VFP instruction
        ARM: 7656/1: uImage: Error out on build of multiplatform without LOADADDR
        ARM: 7640/1: memory: tegra_ahb_enable_smmu() depends on TEGRA_IOMMU_SMMU
        ARM: 7654/1: Preserve L_PTE_VALID in pte_modify()
        ARM: 7653/2: do not scale loops_per_jiffy when using a constant delay clock
        ARM: 7651/1: remove unused smp_timer_broadcast #define
      529e5fbc
    • L
      Merge tag 'char-misc-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 686c0940
      Linus Torvalds 提交于
      Pull char/misc patch from Greg Kroah-Hartman:
       "Here is one remaining patch for 3.9-rc1.  It is for the hyper-v
        drivers, and had to wait until some other patches went in through the
        x86 tree."
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      
      * tag 'char-misc-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        Drivers: hv: vmbus: Use the new infrastructure for delivering VMBUS interrupts
      686c0940
    • L
      Merge tag 'usb-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · bc2e4a90
      Linus Torvalds 提交于
      Pull USB patch revert from Greg Kroah-Hartman:
       "Here is one remaining USB patch for 3.9-rc1, it reverts a 3.8 patch
        that has caused a lot of regressions for some VIA EHCI controllers."
      
      * tag 'usb-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: EHCI: revert "remove ASS/PSS polling timeout"
      bc2e4a90
    • L
      Merge git://www.linux-watchdog.org/linux-watchdog · 68b86a25
      Linus Torvalds 提交于
      Pull watchdog updates from Wim Van Sebroeck:
       "This contains:
         - fixes and improvements
         - devicetree bindings
         - conversion to watchdog generic framework of the following drivers:
              - booke_wdt
              - bcm47xx_wdt.c
              - at91sam9_wdt
         - Removal of old STMP3xxx driver
         - Addition of following new drivers:
              - new driver for STMP3xxx and i.MX23/28
              - Retu watchdog driver"
      
      * git://www.linux-watchdog.org/linux-watchdog: (30 commits)
        watchdog: sp805_wdt depends on ARM
        watchdog: davinci_wdt: update to devm_* API
        watchdog: davinci_wdt: use devm managed clk get
        watchdog: at91rm9200: add DT support
        watchdog: add timeout-sec property binding
        watchdog: at91sam9_wdt: Convert to use the watchdog framework
        watchdog: omap_wdt: Add option nowayout
        watchdog: core: dt: add support for the timeout-sec dt property
        watchdog: bcm47xx_wdt.c: add hard timer
        watchdog: bcm47xx_wdt.c: rename wdt_time to timeout
        watchdog: bcm47xx_wdt.c: rename ops methods
        watchdog: bcm47xx_wdt.c: use platform device
        watchdog: bcm47xx_wdt.c: convert to watchdog core api
        watchdog: Convert BookE watchdog driver to watchdog infrastructure
        watchdog: s3c2410_wdt: Use devm_* functions
        watchdog: remove old STMP3xxx driver
        watchdog: add new driver for STMP3xxx and i.MX23/28
        rtc: stmp3xxx: add wdt-accessor function
        watchdog: introduce retu_wdt driver
        watchdog: intel_scu_watchdog: fix Kconfig dependency
        ...
      68b86a25
    • L
      Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma · 527c680f
      Linus Torvalds 提交于
      Pull second set of slave-dmaengine updates from Vinod Koul:
       "Arnd's patch moves the dw_dmac to use generic DMA binding.  I agreed
        to merge this late as it will avoid the conflicts between trees.
      
        The second patch from Matt adding a dma_request_slave_channel_compat
        API was supposed to be picked up, but somehow never got picked up.
        Some patches dependent on this are already in -next :("
      
      * 'next' of git://git.infradead.org/users/vkoul/slave-dma:
        dmaengine: dw_dmac: move to generic DMA binding
        dmaengine: add dma_request_slave_channel_compat()
      527c680f
    • L
      Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 · 23caaeea
      Linus Torvalds 提交于
      Pull x86 platform driver updates from Matthew Garrett:
       "Mostly relatively small updates, along with some hardware enablement
        for Sony hardware and a pile of updates to Google's Chromebook driver"
      
      * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86: (49 commits)
        ideapad-laptop: Depend on BACKLIGHT_CLASS_DEVICE instead of selecting it
        ideapad: depends on backlight subsystem and update comment
        Platform: x86: chromeos_laptop - add i915 gmbuses to adapter names
        Platform: x86: chromeos_laptop - Add isl light sensor for Pixel
        Platform: x86: chromeos_laptop - Add a more general add_i2c_device
        Platform: x86: chromeos_laptop - Add Pixel Touchscreen
        Platform: x86: chromeos_laptop - Add support for probing devices
        Platform: x86: chromeos_laptop - Add Pixel Trackpad
        hp-wmi: fix handling of platform device
        sony-laptop: leak in error handling sony_nc_lid_resume_setup()
        hp-wmi: Add support for SMBus hotkeys
        asus-wmi: Fix unused function build warning
        acer-wmi: avoid the warning of 'devices' may be used uninitialized
        drivers/platform/x86/thinkpad_acpi.c: Handle HKEY event 0x6040
        Platform: x86: chromeos_laptop - Add HP Pavilion 14
        Platform: x86: chromeos_laptop - Add Taos tsl2583 device
        Platform: x86: chromeos_laptop - Add Taos tsl2563 device
        Platform: x86: chromeos_laptop - Add Acer C7 trackpad
        Platform: x86: chromeos_laptop - Rename setup_lumpy_tp to setup_cyapa_smbus_tp
        asus-laptop: always report brightness key events
        ...
      23caaeea
  5. 03 3月, 2013 13 次提交
    • G
      btrfs/raid56: Add missing #include <linux/vmalloc.h> · d7011f5b
      Geert Uytterhoeven 提交于
      tilegx_defconfig:
      
      fs/btrfs/raid56.c: In function 'btrfs_alloc_stripe_hash_table':
      fs/btrfs/raid56.c:206:3: error: implicit declaration of function 'vzalloc' [-Werror=implicit-function-declaration]
      fs/btrfs/raid56.c:206:9: warning: assignment makes pointer from integer without a cast [enabled by default]
      fs/btrfs/raid56.c:226:4: error: implicit declaration of function 'vfree' [-Werror=implicit-function-declaration]
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NChris Mason <chris.mason@fusionio.com>
      d7011f5b
    • L
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · a7c1120d
      Linus Torvalds 提交于
      Pull ext4 bug fixes from Ted Ts'o:
       "Various bug fixes for ext4.  The most important is a fix for the new
        extent cache's slab shrinker which can cause significant, user-visible
        pauses when the system is under memory pressure."
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: enable quotas before orphan cleanup
        ext4: don't allow quota mount options when quota feature enabled
        ext4: fix a warning from sparse check for ext4_dir_llseek
        ext4: convert number of blocks to clusters properly
        ext4: fix possible memory leak in ext4_remount()
        jbd2: fix ERR_PTR dereference in jbd2__journal_start
        ext4: use percpu counter for extent cache count
        ext4: optimize ext4_es_shrink()
      a7c1120d
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal · 6ec40b42
      Linus Torvalds 提交于
      Pull sigprocmask compat fix from Al Viro:
       "generic compat_sys_rt_sigprocmask() had a very dumb braino; I'd spent
        quite a while staring at the offending commit before finally managing
        to spot the idiocy ;-/"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
        fix compat_sys_rt_sigprocmask()
      6ec40b42
    • A
      fix compat_sys_rt_sigprocmask() · db61ec29
      Al Viro 提交于
      Converting bitmask to 32bit granularity is fine, but we'd better
      _do_ something with the result.  Such as "copy it to userland"...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      db61ec29
    • L
      Merge tag 'nfs-for-3.9-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 8d05b377
      Linus Torvalds 提交于
      Pull NFS client bugfixes from Trond Myklebust:
       "We've just concluded another Connectathon interoperability testing
        week, and so here are the fixes for the bugs that were discovered:
      
         - Don't allow NFS silly-renamed files to be deleted
         - Don't start the retransmission timer when out of socket space
         - Fix a couple of pnfs-related Oopses.
         - Fix one more NFSv4 state recovery deadlock
         - Don't loop forever when LAYOUTGET returns NFS4ERR_LAYOUTTRYLATER"
      
      * tag 'nfs-for-3.9-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        SUNRPC: One line comment fix
        NFSv4.1: LAYOUTGET EDELAY loops timeout to the MDS
        SUNRPC: add call to get configured timeout
        PNFS: set the default DS timeout to 60 seconds
        NFSv4: Fix another open/open_recovery deadlock
        nfs: don't allow nfs_find_actor to match inodes of the wrong type
        NFSv4.1: Hold reference to layout hdr in layoutget
        pnfs: fix resend_to_mds for directio
        SUNRPC: Don't start the retransmission timer when out of socket space
        NFS: Don't allow NFS silly-renamed files to be deleted, no signal
      8d05b377
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · b695188d
      Linus Torvalds 提交于
      Pull btrfs update from Chris Mason:
       "The biggest feature in the pull is the new (and still experimental)
        raid56 code that David Woodhouse started long ago.  I'm still working
        on the parity logging setup that will avoid inconsistent parity after
        a crash, so this is only for testing right now.  But, I'd really like
        to get it out to a broader audience to hammer out any performance
        issues or other problems.
      
        scrub does not yet correct errors on raid5/6 either.
      
        Josef has another pass at fsync performance.  The big change here is
        to combine waiting for metadata with waiting for data, which is a big
        latency win.  It is also step one toward using atomics from the
        hardware during a commit.
      
        Mark Fasheh has a new way to use btrfs send/receive to send only the
        metadata changes.  SUSE is using this to make snapper more efficient
        at finding changes between snapshosts.
      
        Snapshot-aware defrag is also included.
      
        Otherwise we have a large number of fixes and cleanups.  Eric Sandeen
        wins the award for removing the most lines, and I'm hoping we steal
        this idea from XFS over and over again."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (118 commits)
        btrfs: fixup/remove module.h usage as required
        Btrfs: delete inline extents when we find them during logging
        btrfs: try harder to allocate raid56 stripe cache
        Btrfs: cleanup to make the function btrfs_delalloc_reserve_metadata more logic
        Btrfs: don't call btrfs_qgroup_free if just btrfs_qgroup_reserve fails
        Btrfs: remove reduplicate check about root in the function btrfs_clean_quota_tree
        Btrfs: return ENOMEM rather than use BUG_ON when btrfs_alloc_path fails
        Btrfs: fix missing deleted items in btrfs_clean_quota_tree
        btrfs: use only inline_pages from extent buffer
        Btrfs: fix wrong reserved space when deleting a snapshot/subvolume
        Btrfs: fix wrong reserved space in qgroup during snap/subv creation
        Btrfs: remove unnecessary dget_parent/dput when creating the pending snapshot
        btrfs: remove a printk from scan_one_device
        Btrfs: fix NULL pointer after aborting a transaction
        Btrfs: fix memory leak of log roots
        Btrfs: copy everything if we've created an inline extent
        btrfs: cleanup for open-coded alignment
        Btrfs: do not change inode flags in rename
        Btrfs: use reserved space for creating a snapshot
        clear chunk_alloc flag on retryable failure
        ...
      b695188d
    • L
      Merge tag 'for-linus-20130301' of git://git.infradead.org/linux-mtd · 48476df9
      Linus Torvalds 提交于
      Pull MTD update from David Woodhouse:
       "Fairly unexciting MTD merge for 3.9:
      
         - misc clean-ups in the MTD command-line partitioning parser
           (cmdlinepart)
         - add flash locking support for STmicro chips serial flash chips, as
           well as for CFI command set 2 chips.
         - new driver for the ELM error correction HW module found in various
           TI chips, enable the OMAP NAND driver to use the ELM HW error
           correction
         - added number of new serial flash IDs
         - various fixes and improvements in the gpmi NAND driver
         - bcm47xx NAND driver improvements
         - make the mtdpart module actually removable"
      
      * tag 'for-linus-20130301' of git://git.infradead.org/linux-mtd: (45 commits)
        mtd: map: BUG() in non handled cases
        mtd: bcm47xxnflash: use pr_fmt for module prefix in messages
        mtd: davinci_nand: Use managed resources
        mtd: mtd_torturetest can cause stack overflows
        mtd: physmap_of: Convert device allocation to managed devm_kzalloc()
        mtd: at91: atmel_nand: for PMECC, add code to check the ONFI parameter ECC requirement.
        mtd: atmel_nand: make pmecc-cap, pmecc-sector-size in dts is optional.
        mtd: atmel_nand: avoid to report an error when lookup table offset is 0.
        mtd: bcm47xxsflash: adjust names of bus-specific functions
        mtd: bcm47xxpart: improve probing of nvram partition
        mtd: bcm47xxpart: add support for other erase sizes
        mtd: bcm47xxnflash: register this as normal driver
        mtd: bcm47xxnflash: fix message
        mtd: bcm47xxsflash: register this as normal driver
        mtd: bcm47xxsflash: write number of written bytes
        mtd: gpmi: add sanity check for the ECC
        mtd: gpmi: set the Golois Field bit for mx6q's BCH
        mtd: devices: elm: Removes <xx> literals in elm DT node
        mtd: gpmi: fix a dereferencing freed memory error
        mtd: fix the wrong timeo for panic_nand_wait()
        ...
      48476df9
    • R
      16af43fe
    • T
      512e4b29
    • J
      ext4: enable quotas before orphan cleanup · 9b2ff357
      Jan Kara 提交于
      When using quota feature we need to enable quotas before orphan cleanup
      so that changes happening during it are properly reflected in quota
      accounting.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      9b2ff357
    • J
      ext4: don't allow quota mount options when quota feature enabled · 262b4662
      Jan Kara 提交于
      So far we silently ignored when quota mount options were set while quota
      feature was enabled.  But this can create confusion in userspace when
      mount options are set but silently ignored and also creates opportunities
      for bugs when we don't properly test all quota types.  Actually
      ext4_mark_dquot_dirty() forgets to test for quota feature so it was
      dependent on journaled quota options being set.  OTOH ext4_orphan_cleanup()
      tries to enable journaled quota when quota options are specified which is
      wrong when quota feature is enabled.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      262b4662
    • Z
      ext4: fix a warning from sparse check for ext4_dir_llseek · d4e43954
      Zheng Liu 提交于
      ext4_dir_llseek is only used as a callback function, and no one calls
      it directly.  So make it as a static function in order to remove a
      warning message from sparse check.
      Signed-off-by: NZheng Liu <wenqing.lz@taobao.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      d4e43954
    • L
      ext4: convert number of blocks to clusters properly · 810da240
      Lukas Czerner 提交于
      We're using macro EXT4_B2C() to convert number of blocks to number of
      clusters for bigalloc file systems.  However, we should be using
      EXT4_NUM_B2C().
      Signed-off-by: NLukas Czerner <lczerner@redhat.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      810da240