1. 10 5月, 2014 3 次提交
    • W
      arm64: barriers: make use of barrier options with explicit barriers · 98f7685e
      Will Deacon 提交于
      When calling our low-level barrier macros directly, we can often suffice
      with more relaxed behaviour than the default "all accesses, full system"
      option.
      
      This patch updates the users of dsb() to specify the option which they
      actually require.
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      98f7685e
    • S
      arm64: mm: Optimise tlb flush logic where we have >4K granule · fa48e6f7
      Steve Capper 提交于
      The tlb maintainence functions: __cpu_flush_user_tlb_range and
      __cpu_flush_kern_tlb_range do not take into consideration the page
      granule when looping through the address range, and repeatedly flush
      tlb entries for the same page when operating with 64K pages.
      
      This patch re-works the logic s.t. we instead advance the loop by
       1 << (PAGE_SHIFT - 12), so avoid repeating ourselves.
      
      Also the routines have been converted from assembler to static inline
      functions to aid with legibility and potential compiler optimisations.
      
      The isb() has been removed from flush_tlb_kernel_range(.) as it is
      only needed when changing the execute permission of a mapping. If one
      needs to set an area of the kernel as execute/non-execute an isb()
      must be inserted after the call to flush_tlb_kernel_range.
      
      Cc: Laura Abbott <lauraa@codeaurora.org>
      Signed-off-by: NSteve Capper <steve.capper@linaro.org>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      fa48e6f7
    • W
      arm64: xchg: prevent warning if return value is unused · e1dfda9c
      Will Deacon 提交于
      Some users of xchg() don't bother using the return value, which results
      in a compiler warning like the following (from kgdb):
      
      In file included from linux/arch/arm64/include/asm/atomic.h:27:0,
                       from include/linux/atomic.h:4,
                       from include/linux/spinlock.h:402,
                       from include/linux/seqlock.h:35,
                       from include/linux/time.h:5,
                       from include/uapi/linux/timex.h:56,
                       from include/linux/timex.h:56,
                       from include/linux/sched.h:19,
                       from include/linux/pid_namespace.h:4,
                       from kernel/debug/debug_core.c:30:
      kernel/debug/debug_core.c: In function ‘kgdb_cpu_enter’:
      linux/arch/arm64/include/asm/cmpxchg.h:75:3: warning: value computed is not used [-Wunused-value]
        ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
         ^
      linux/arch/arm64/include/asm/atomic.h:132:30: note: in expansion of macro ‘xchg’
       #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
      
      kernel/debug/debug_core.c:504:4: note: in expansion of macro ‘atomic_xchg’
          atomic_xchg(&kgdb_active, cpu);
          ^
      
      This patch makes use of the same trick as we do for cmpxchg, by assigning
      the return value to a dummy variable in the xchg() macro itself.
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      e1dfda9c
  2. 09 5月, 2014 9 次提交
  3. 05 5月, 2014 4 次提交
    • L
      Linux 3.15-rc4 · 89ca3b88
      Linus Torvalds 提交于
      89ca3b88
    • L
      Merge tag 'locks-v3.15-3' of git://git.samba.org/jlayton/linux · 164c0997
      Linus Torvalds 提交于
      Pull file locking change from Jeff Layton:
       "Only an email address change to the MAINTAINERS file"
      
      * tag 'locks-v3.15-3' of git://git.samba.org/jlayton/linux:
        MAINTAINERS: email address change for Jeff Layton
      164c0997
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 8a9f5ecd
      Linus Torvalds 提交于
      Pull arm64 fixes from Catalin Marinas:
       "These are mostly arm64 fixes with an additional arm(64) platform fix
        for the initialisation of vexpress clocks (the latter only affecting
        arm64; the arch/arm64 code is SoC agnostic and does not rely on early
        SoC-specific calls)
      
         - vexpress platform clocks initialisation moved earlier following the
           arm64 move of of_clk_init() call in a previous commit
         - Default DMA ops changed to non-coherent to preserve compatibility
           with 32-bit ARM DT files.  The "dma-coherent" property can be used
           to explicitly mark a device coherent.  The Applied Micro DT file
           has been updated to avoid DMA cache maintenance for the X-Gene SATA
           controller (the only arm64 related driver with such assumption in
           -rc mainline)
         - Fixmap correction for earlyprintk
         - kern_addr_valid() fix for huge pages"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        vexpress: Initialise the sysregs before setting up the clocks
        arm64: Mark the Applied Micro X-Gene SATA controller as DMA coherent
        arm64: Use bus notifiers to set per-device coherent DMA ops
        arm64: Make default dma_ops to be noncoherent
        arm64: fixmap: fix missing sub-page offset for earlyprintk
        arm64: Fix for the arm64 kern_addr_valid() function
      8a9f5ecd
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · e3fb7d4c
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "This is two patches both fixing bugs in drivers (virtio-scsi and
        mpt2sas) causing an oops in certain circumstances"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] virtio-scsi: Skip setting affinity on uninitialized vq
        [SCSI] mpt2sas: Don't disable device twice at suspend.
      e3fb7d4c
  4. 04 5月, 2014 6 次提交
  5. 03 5月, 2014 13 次提交
    • L
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0384dcae
      Linus Torvalds 提交于
      Pull irq fixes from Thomas Gleixner:
       "This udpate delivers:
      
         - A fix for dynamic interrupt allocation on x86 which is required to
           exclude the GSI interrupts from the dynamic allocatable range.
      
           This was detected with the newfangled tablet SoCs which have GPIOs
           and therefor allocate a range of interrupts.  The MSI allocations
           already excluded the GSI range, so we never noticed before.
      
         - The last missing set_irq_affinity() repair, which was delayed due
           to testing issues
      
         - A few bug fixes for the armada SoC interrupt controller
      
         - A memory allocation fix for the TI crossbar interrupt controller
      
         - A trivial kernel-doc warning fix"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip: irq-crossbar: Not allocating enough memory
        irqchip: armanda: Sanitize set_irq_affinity()
        genirq: x86: Ensure that dynamic irq allocation does not conflict
        linux/interrupt.h: fix new kernel-doc warnings
        irqchip: armada-370-xp: Fix releasing of MSIs
        irqchip: armada-370-xp: implement the ->check_device() msi_chip operation
        irqchip: armada-370-xp: fix invalid cast of signed value into unsigned variable
      0384dcae
    • L
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 98facf0e
      Linus Torvalds 提交于
      Pull timer fixes from Thomas Gleixner:
       "This update brings along:
      
         - Two fixes for long standing bugs in the hrtimer code, one which
           prevents remote enqueuing and the other preventing arbitrary delays
           after a interrupt hang was detected
      
         - A fix in the timer wheel which prevents math overflow
      
         - A fix for a long standing issue with the architected ARM timer
           related to the C3STOP mechanism.
      
         - A trivial compile fix for nspire SoC clocksource"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timer: Prevent overflow in apply_slack
        hrtimer: Prevent remote enqueue of leftmost timers
        hrtimer: Prevent all reprogramming if hang detected
        clocksource: nspire: Fix compiler warning
        clocksource: arch_arm_timer: Fix age-old arch timer C3STOP detection issue
      98facf0e
    • L
      Merge tag 'trace-fixes-v3.15-rc3' of... · 00622e61
      Linus Torvalds 提交于
      Merge tag 'trace-fixes-v3.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing fix from Steven Rostedt:
       "This is a small fix where the trigger code used the wrong
        rcu_dereference().  It required rcu_dereference_sched() instead of the
        normal rcu_dereference().  It produces a nasty RCU lockdep splat due
        to the incorrect rcu notation"
      Acked-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      
      * tag 'trace-fixes-v3.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Use rcu_dereference_sched() for trace event triggers
      00622e61
    • S
      tracing: Use rcu_dereference_sched() for trace event triggers · 561a4fe8
      Steven Rostedt (Red Hat) 提交于
      As trace event triggers are now part of the mainline kernel, I added
      my trace event trigger tests to my test suite I run on all my kernels.
      Now these tests get run under different config options, and one of
      those options is CONFIG_PROVE_RCU, which checks under lockdep that
      the rcu locking primitives are being used correctly. This triggered
      the following splat:
      
      ===============================
      [ INFO: suspicious RCU usage. ]
      3.15.0-rc2-test+ #11 Not tainted
      -------------------------------
      kernel/trace/trace_events_trigger.c:80 suspicious rcu_dereference_check() usage!
      
      other info that might help us debug this:
      
      rcu_scheduler_active = 1, debug_locks = 0
      4 locks held by swapper/1/0:
       #0:  ((&(&j_cdbs->work)->timer)){..-...}, at: [<ffffffff8104d2cc>] call_timer_fn+0x5/0x1be
       #1:  (&(&pool->lock)->rlock){-.-...}, at: [<ffffffff81059856>] __queue_work+0x140/0x283
       #2:  (&p->pi_lock){-.-.-.}, at: [<ffffffff8106e961>] try_to_wake_up+0x2e/0x1e8
       #3:  (&rq->lock){-.-.-.}, at: [<ffffffff8106ead3>] try_to_wake_up+0x1a0/0x1e8
      
      stack backtrace:
      CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.15.0-rc2-test+ #11
      Hardware name:                  /DG965MQ, BIOS MQ96510J.86A.0372.2006.0605.1717 06/05/2006
       0000000000000001 ffff88007e083b98 ffffffff819f53a5 0000000000000006
       ffff88007b0942c0 ffff88007e083bc8 ffffffff81081307 ffff88007ad96d20
       0000000000000000 ffff88007af2d840 ffff88007b2e701c ffff88007e083c18
      Call Trace:
       <IRQ>  [<ffffffff819f53a5>] dump_stack+0x4f/0x7c
       [<ffffffff81081307>] lockdep_rcu_suspicious+0x107/0x110
       [<ffffffff810ee51c>] event_triggers_call+0x99/0x108
       [<ffffffff810e8174>] ftrace_event_buffer_commit+0x42/0xa4
       [<ffffffff8106aadc>] ftrace_raw_event_sched_wakeup_template+0x71/0x7c
       [<ffffffff8106bcbf>] ttwu_do_wakeup+0x7f/0xff
       [<ffffffff8106bd9b>] ttwu_do_activate.constprop.126+0x5c/0x61
       [<ffffffff8106eadf>] try_to_wake_up+0x1ac/0x1e8
       [<ffffffff8106eb77>] wake_up_process+0x36/0x3b
       [<ffffffff810575cc>] wake_up_worker+0x24/0x26
       [<ffffffff810578bc>] insert_work+0x5c/0x65
       [<ffffffff81059982>] __queue_work+0x26c/0x283
       [<ffffffff81059999>] ? __queue_work+0x283/0x283
       [<ffffffff810599b7>] delayed_work_timer_fn+0x1e/0x20
       [<ffffffff8104d3a6>] call_timer_fn+0xdf/0x1be^M
       [<ffffffff8104d2cc>] ? call_timer_fn+0x5/0x1be
       [<ffffffff81059999>] ? __queue_work+0x283/0x283
       [<ffffffff8104d823>] run_timer_softirq+0x1a4/0x22f^M
       [<ffffffff8104696d>] __do_softirq+0x17b/0x31b^M
       [<ffffffff81046d03>] irq_exit+0x42/0x97
       [<ffffffff81a08db6>] smp_apic_timer_interrupt+0x37/0x44
       [<ffffffff81a07a2f>] apic_timer_interrupt+0x6f/0x80
       <EOI>  [<ffffffff8100a5d8>] ? default_idle+0x21/0x32
       [<ffffffff8100a5d6>] ? default_idle+0x1f/0x32
       [<ffffffff8100ac10>] arch_cpu_idle+0xf/0x11
       [<ffffffff8107b3a4>] cpu_startup_entry+0x1a3/0x213
       [<ffffffff8102a23c>] start_secondary+0x212/0x219
      
      The cause is that the triggers are protected by rcu_read_lock_sched() but
      the data is dereferenced with rcu_dereference() which expects it to
      be protected with rcu_read_lock(). The proper reference should be
      rcu_dereference_sched().
      
      Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
      Cc: stable@vger.kernel.org # 3.14+
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      561a4fe8
    • L
      Merge tag 'pm+acpi-3.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 6c6ca9c2
      Linus Torvalds 提交于
      Pull ACPI and power management fixes from Rafael Wysocki:
       "A bunch of regression fixes this time.  They fix two regressions in
        the PNP subsystem, one in the ACPI processor driver and one in the
        ACPI EC driver, four cpufreq driver regressions and an unrelated bug
        in one of the drivers.  The regressions are recent or introduced in
        3.14.
      
        Specifics:
      
         - There are two bugs in the ACPI PNP core that cause errors to be
           returned if optional ACPI methods are not present.  After an ACPI
           core change made in 3.14 one of those errors leads to serial port
           suspend failures on some systems.  Fix from Rafael J Wysocki.
      
         - A recently added PNP quirk related to Intel chipsets intorduced a
           build error in unusual configurations (PNP without PCI).  Fix from
           Bjorn Helgaas.
      
         - An ACPI EC workaround related to system suspend on Samsung machines
           added in 3.14 introduced a race causing some valid EC events to be
           discarded.  Fix from Kieran Clancy.
      
         - The acpi-cpufreq driver fails to load on some systems after a 3.14
           commit related to APIC ID parsing that overlooked one corner case.
           Fix from Lan Tianyu.
      
         - Fix for a recently introduced build problem in the ppc-corenet
           cpufreq driver from Tim Gardner.
      
         - A recent cpufreq core change to ensure serialization of frequency
           transitions for drivers with a ->target_index() callback overlooked
           the fact that some of those drivers had been doing operations
           introduced by it into the core already by themselves.  That
           resulted in a mess in which the core and the drivers try to do the
           same thing and block each other which leads to deadlocks.  Fixes
           for the powernow-k7, powernow-k6, and longhaul cpufreq drivers from
           Srivatsa S Bhat.
      
         - Fix for a computational error in the powernow-k6 cpufreq driver
           from Srivatsa S Bhat"
      
      * tag 'pm+acpi-3.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / processor: Fix failure of loading acpi-cpufreq driver
        PNP / ACPI: Do not return errors if _DIS or _SRS are not present
        PNP: Fix compile error in quirks.c
        ACPI / EC: Process rather than discard events in acpi_ec_clear
        cpufreq: ppc-corenet-cpufreq: Fix __udivdi3 modpost error
        cpufreq: powernow-k7: Fix double invocation of cpufreq_freq_transition_begin/end
        cpufreq: powernow-k6: Fix double invocation of cpufreq_freq_transition_begin/end
        cpufreq: powernow-k6: Fix incorrect comparison with max_multipler
        cpufreq: longhaul: Fix double invocation of cpufreq_freq_transition_begin/end
      6c6ca9c2
    • L
      Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux · e981e795
      Linus Torvalds 提交于
      Pull driver core deferred probe fix from Grant Likely:
       "Drivercore race condition fix (exposed by devicetree)
      
        This branch fixes a bug where a device can get stuck in the deferred
        list even though all its dependencies are met.  The bug has existed
        for a long time, but new platform conversions to device tree have
        exposed it.  This patch is needed to get those platforms working.
      
        This was the pending bug fix I mentioned in my previous pull request.
        Normally this would go through Greg's tree seeing that it is a
        drivercore change, but devicetree exposes the problem.  I've discussed
        with Greg and he okayed me asking you to pull directly"
      
      * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux:
        drivercore: deferral race condition fix
      e981e795
    • R
      Merge branches 'acpi-ec' and 'acpi-processor' · de3afce5
      Rafael J. Wysocki 提交于
      * acpi-ec:
        ACPI / EC: Process rather than discard events in acpi_ec_clear
      
      * acpi-processor:
        ACPI / processor: Fix failure of loading acpi-cpufreq driver
      de3afce5
    • R
      Merge branch 'pnp' · 25d6db96
      Rafael J. Wysocki 提交于
      * pnp:
        PNP / ACPI: Do not return errors if _DIS or _SRS are not present
        PNP: Fix compile error in quirks.c
      25d6db96
    • R
      Merge branch 'pm-cpufreq' · d705116f
      Rafael J. Wysocki 提交于
      * pm-cpufreq:
        cpufreq: ppc-corenet-cpufreq: Fix __udivdi3 modpost error
        cpufreq: powernow-k7: Fix double invocation of cpufreq_freq_transition_begin/end
        cpufreq: powernow-k6: Fix double invocation of cpufreq_freq_transition_begin/end
        cpufreq: powernow-k6: Fix incorrect comparison with max_multipler
        cpufreq: longhaul: Fix double invocation of cpufreq_freq_transition_begin/end
      d705116f
    • L
      Merge tag 'dm-3.15-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 54366a7f
      Linus Torvalds 提交于
      Pull device mapper fixes from Mike Snitzer:
       "A few dm-thinp fixes for changes merged in 3.15-rc1.
      
        A dm-verity fix for an immutable biovec regression that affects 3.14+.
      
        A dm-cache fix to properly quiesce when using writethrough mode (3.14+)"
      
      * tag 'dm-3.15-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm cache: fix writethrough mode quiescing in cache_map
        dm thin: use INIT_WORK_ONSTACK in noflush_work to avoid ODEBUG warning
        dm verity: fix biovecs hash calculation regression
        dm thin: fix rcu_read_lock being held in code that can sleep
        dm thin: irqsave must always be used with the pool->lock spinlock
      54366a7f
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0845e11c
      Linus Torvalds 提交于
      Pull x86 fixes from Peter Anvin:
       "Two very small changes: one fix for the vSMP Foundation platform, and
        one to help LLVM not choke on options it doesn't understand (although
        it probably should)"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vsmp: Fix irq routing
        x86: LLVMLinux: Wrap -mno-80387 with cc-option
      0845e11c
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · e7e6d2a4
      Linus Torvalds 提交于
      Pull KVM fixes from Paolo Bonzini:
       - Fix for a Haswell regression in nested virtualization, introduced
         during the merge window.
       - A fix from Oleg to async page faults.
       - A bunch of small ARM changes.
       - A trivial patch to use the new MSI-X API introduced during the merge
         window.
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: ARM: vgic: Fix the overlap check action about setting the GICD & GICC base address.
        KVM: arm/arm64: vgic: fix GICD_ICFGR register accesses
        KVM: async_pf: mm->mm_users can not pin apf->mm
        KVM: ARM: vgic: Fix sgi dispatch problem
        MAINTAINERS: co-maintainance of KVM/{arm,arm64}
        arm: KVM: fix possible misalignment of PGDs and bounce page
        KVM: x86: Check for host supported fields in shadow vmcs
        kvm: Use pci_enable_msix_exact() instead of pci_enable_msix()
        ARM: KVM: disable KVM in Kconfig on big-endian systems
      e7e6d2a4
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · b28e4f08
      Linus Torvalds 提交于
      Pull s390 fixes from Martin Schwidefsky:
       "Two bug fixes, one to fix a potential information leak in the BPF jit
        and common-io-layer fix for old firmware levels"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/bpf,jit: initialize A register if 1st insn is BPF_S_LDX_B_MSH
        s390/chsc: fix SEI usage on old FW levels
      b28e4f08
  6. 02 5月, 2014 5 次提交