1. 28 1月, 2013 9 次提交
  2. 25 1月, 2013 3 次提交
    • A
      AHCI: Support multiple MSIs · 5ca72c4f
      Alexander Gordeev 提交于
      Take advantage of multiple MSIs implementation on x86 - on
      systems with IRQ remapping AHCI ports not only get assigned
      separate MSI vectors - but also separate IRQs. As result,
      interrupts generated by different ports could be serviced on
      different CPUs rather than on a single one.
      
      In cases when number of allocated MSIs is less than requested
      the Sharing Last MSI mode does not get used, no matter
      implemented in hardware or not. Instead, the driver assumes the
      advantage of multiple MSIs is negated and falls back to the
      single MSI mode as if MRSM bit was set (some Intel chips
      implement this strategy anyway - MRSM bit gets set even if the
      number of allocated MSIs exceeds the number of implemented ports).
      Signed-off-by: NAlexander Gordeev <agordeev@redhat.com>
      Acked-by: NJeff Garzik <jgarzik@redhat.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Matthew Wilcox <willy@linux.intel.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/15bf7ee314dd55f21ec7d2a01c47613cd8190a7c.1353324359.git.agordeev@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      5ca72c4f
    • A
      PCI/MSI: Enable multiple MSIs with pci_enable_msi_block_auto() · 08261d87
      Alexander Gordeev 提交于
      The new function pci_enable_msi_block_auto() tries to allocate
      maximum possible number of MSIs up to the number the device
      supports. It generalizes a pattern when pci_enable_msi_block()
      is contiguously called until it succeeds or fails.
      
      Opposite to pci_enable_msi_block() which takes the number of
      MSIs to allocate as a input parameter,
      pci_enable_msi_block_auto() could be used by device drivers to
      obtain the number of assigned MSIs and the number of MSIs the
      device supports.
      Signed-off-by: NAlexander Gordeev <agordeev@redhat.com>
      Acked-by: NBjorn Helgaas <bhelgaas@google.com>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Matthew Wilcox <willy@linux.intel.com>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/c3de2419df94a0f95ca1a6f755afc421486455e6.1353324359.git.agordeev@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      08261d87
    • A
      x86/MSI: Support multiple MSIs in presense of IRQ remapping · 51906e77
      Alexander Gordeev 提交于
      The MSI specification has several constraints in comparison with
      MSI-X, most notable of them is the inability to configure MSIs
      independently. As a result, it is impossible to dispatch
      interrupts from different queues to different CPUs. This is
      largely devalues the support of multiple MSIs in SMP systems.
      
      Also, a necessity to allocate a contiguous block of vector
      numbers for devices capable of multiple MSIs might cause a
      considerable pressure on x86 interrupt vector allocator and
      could lead to fragmentation of the interrupt vectors space.
      
      This patch overcomes both drawbacks in presense of IRQ remapping
      and lets devices take advantage of multiple queues and per-IRQ
      affinity assignments.
      Signed-off-by: NAlexander Gordeev <agordeev@redhat.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Matthew Wilcox <willy@linux.intel.com>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/c8bd86ff56b5fc118257436768aaa04489ac0a4c.1353324359.git.agordeev@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      51906e77
  3. 24 1月, 2013 12 次提交
  4. 23 1月, 2013 16 次提交
    • T
      ALSA: hda - Fix inconsistent pin states after resume · 31614bb8
      Takashi Iwai 提交于
      The commit [26a6cb6c: ALSA: hda - Implement a poll loop for jacks as a
      module parameter] introduced the polling jack detection code, but it
      also moved the call of snd_hda_jack_set_dirty_all() in the resume path
      after resume/init ops call.  This caused a regression when the jack
      state has been changed during power-down (e.g. in the power save
      mode).  Since the driver doesn't probe the new jack state but keeps
      using the cached value due to no dirty flag, the pin state remains
      also as if the jack is still plugged.
      
      The fix is simply moving snd_hda_jack_set_dirty_all() to the original
      position.
      Reported-by: NManolo Díaz <diaz.manolo@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      31614bb8
    • L
      Revert "drivers/misc/ti-st: remove gpio handling" · a7e2ca17
      Luciano Coelho 提交于
      This reverts commit eccf2979.
      
      The reason is that it broke TI WiLink shared transport on Panda.
      Also, callback functions should not be added to board files anymore,
      so revert to implementing the power functions in the driver itself.
      
      Additionally, changed a variable name ('status' to 'err') so that this
      revert compiles properly.
      
      Cc: stable <stable@vger.kernel.org> [3.7]
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a7e2ca17
    • L
      Merge tag '3.8-pci-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 1d854908
      Linus Torvalds 提交于
      Pull PCI updates from Bjorn Helgaas:
       "The most important is a fix for a pciehp deadlock that occurs when
        unplugging a Thunderbolt adapter.  We also applied the same fix to
        shpchp, removed CONFIG_EXPERIMENTAL dependencies, fixed a
        pcie_aspm=force problem, and fixed a refcount leak.
      
        Details:
      
         - Hotplug
            PCI: pciehp: Use per-slot workqueues to avoid deadlock
            PCI: shpchp: Make shpchp_wq non-ordered
            PCI: shpchp: Handle push button event asynchronously
            PCI: shpchp: Use per-slot workqueues to avoid deadlock
      
         - Power management
            PCI: Allow pcie_aspm=force even when FADT indicates it is unsupported
      
         - Misc
            PCI/AER: pci_get_domain_bus_and_slot() call missing required pci_dev_put()
            PCI: remove depends on CONFIG_EXPERIMENTAL"
      
      * tag '3.8-pci-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: remove depends on CONFIG_EXPERIMENTAL
        PCI: Allow pcie_aspm=force even when FADT indicates it is unsupported
        PCI: shpchp: Use per-slot workqueues to avoid deadlock
        PCI: shpchp: Handle push button event asynchronously
        PCI: shpchp: Make shpchp_wq non-ordered
        PCI/AER: pci_get_domain_bus_and_slot() call missing required pci_dev_put()
        PCI: pciehp: Use per-slot workqueues to avoid deadlock
      1d854908
    • T
      async: fix __lowest_in_progress() · f56c3196
      Tejun Heo 提交于
      Commit 083b804c ("async: use workqueue for worker pool") made it
      possible that async jobs are moved from pending to running out-of-order.
      While pending async jobs will be queued and dispatched for execution in
      the same order, nothing guarantees they'll enter "1) move self to the
      running queue" of async_run_entry_fn() in the same order.
      
      Before the conversion, async implemented its own worker pool.  An async
      worker, upon being woken up, fetches the first item from the pending
      list, which kept the executing lists sorted.  The conversion to
      workqueue was done by adding work_struct to each async_entry and async
      just schedules the work item.  The queueing and dispatching of such work
      items are still in order but now each worker thread is associated with a
      specific async_entry and moves that specific async_entry to the
      executing list.  So, depending on which worker reaches that point
      earlier, which is non-deterministic, we may end up moving an async_entry
      with larger cookie before one with smaller one.
      
      This broke __lowest_in_progress().  running->domain may not be properly
      sorted and is not guaranteed to contain lower cookies than pending list
      when not empty.  Fix it by ensuring sort-inserting to the running list
      and always looking at both pending and running when trying to determine
      the lowest cookie.
      
      Over time, the async synchronization implementation became quite messy.
      We better restructure it such that each async_entry is linked to two
      lists - one global and one per domain - and not move it when execution
      starts.  There's no reason to distinguish pending and running.  They
      behave the same for synchronization purposes.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f56c3196
    • L
      Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux · ed06ef31
      Linus Torvalds 提交于
      Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
      
       . revert 20b279 - require exclude_guest to use PEBS - kernel side, now
         older binaries will continue working for things like cycles:pp
         without needing to pass extra modifiers, from David Ahern.
      
       . Fix building from 'make perf-*-src-pkg' tarballs, broken by UAPI,
         from Sebastian Andrzej Siewior
      
      [ Pulling directly, Ingo would normally pull but has been unresponsive ]
      
      * tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf tools: Fix building from 'make perf-*-src-pkg' tarballs
        perf x86: revert 20b279 - require exclude_guest to use PEBS - kernel side
      ed06ef31
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 343391b1
      Linus Torvalds 提交于
      Pull parisc fixes from Helge Deller:
       "Improve the stability of the linux kernel on the parisc architecture"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: sigaltstack doesn't round ss.ss_sp as required
        parisc: improve ptrace support for gdb single-step
        parisc: don't claim cpu irqs more than once
        parisc: avoid undefined shift in cnv_float.h
      343391b1
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 262060ea
      Linus Torvalds 提交于
      Pull fuse fixes from Miklos Szeredi:
       "This contain a bugfix for CUSE and miscellaneous small fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: remove unused variable in fuse_try_move_page()
        fuse: make fuse_file_fallocate() static
        fuse: Move CUSE Kconfig entry from fs/Kconfig into fs/fuse/Kconfig
        cuse: fix uninitialized variable warnings
        cuse: do not register multiple devices with identical names
        cuse: use mutex as registration lock instead of spinlocks
      262060ea
    • L
      Merge tag 'fixes-for-v3.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · b75b25b0
      Linus Torvalds 提交于
      Pull GPIO fixes from Linus Walleij:
       "Here are some GPIO fixes I stacked up in my GPIO tree:
      
         - Remove a bad #include from the Samsung driver
         - Some Kconfig hazzle for the Samsungs
         - Skip gpiolib registration on EXYNOS5440
         - Don't free the MVEBU label"
      
      * tag 'fixes-for-v3.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio: mvebu: Don't free chip label memory
        gpio: samsung: skip gpio lib registration for EXYNOS5440
        gpio: samsung: silent build warning for EXYNOS5 SoCs
        gpio: samsung: fix pinctrl condition for exynos and exynos5440
        gpio: samsung: remove inclusion <mach/regs-clock.h>
      b75b25b0
    • L
      Merge tag 'f2fs-for-3.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 05c2cf35
      Linus Torvalds 提交于
      Pull f2fs fixes from Jaegeuk Kim:
       o Support swap file and link generic_file_remap_pages
       o Enhance the bio streaming flow and free section control
       o Major bug fix on recovery routine
       o Minor bug/warning fixes and code cleanups
      
      * tag 'f2fs-for-3.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (22 commits)
        f2fs: use _safe() version of list_for_each
        f2fs: add comments of start_bidx_of_node
        f2fs: avoid issuing small bios due to several dirty node pages
        f2fs: support swapfile
        f2fs: add remap_pages as generic_file_remap_pages
        f2fs: add __init to functions in init_f2fs_fs
        f2fs: fix the debugfs entry creation path
        f2fs: add global mutex_lock to protect f2fs_stat_list
        f2fs: remove the blk_plug usage in f2fs_write_data_pages
        f2fs: avoid redundant time update for parent directory in f2fs_delete_entry
        f2fs: remove redundant call to set_blocksize in f2fs_fill_super
        f2fs: move f2fs_balance_fs to punch_hole
        f2fs: add f2fs_balance_fs in several interfaces
        f2fs: revisit the f2fs_gc flow
        f2fs: check return value during recovery
        f2fs: avoid null dereference in f2fs_acl_from_disk
        f2fs: initialize newly allocated dnode structure
        f2fs: update f2fs partition info about SIT/NAT layout
        f2fs: update f2fs document to reflect SIT/NAT layout correctly
        f2fs: remove unneeded INIT_LIST_HEAD at few places
        ...
      05c2cf35
    • L
      Merge tag 'vfio-for-v3.8-rc5' of git://github.com/awilliam/linux-vfio · 3c2a9f84
      Linus Torvalds 提交于
      Pull vfio fix from Alex Williamson.
       "vfio-pci: Fix buffer overfill"
      
      * tag 'vfio-for-v3.8-rc5' of git://github.com/awilliam/linux-vfio:
        vfio-pci: Fix buffer overfill
      3c2a9f84
    • L
      Merge tag 'trace-3.8-rc4-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · d26d4525
      Linus Torvalds 提交于
      Pull ftrace fix from Steven Rostedt:
       "Kprobes now uses the function tracer if it can.  That is, if a probe
        is placed on a function mcount/nop location, and the arch supports it,
        instead of adding a breakpoint, kprobes will register a function
        callback as that is much more efficient.
      
        The function tracer requires to update modules before they run, and
        uses the module notifier to do so.  But if something else in the
        module notifiers registers a kprobe at one of these locations, before
        ftrace can get to it, then the system could fail.
      
        The function tracer must be initialized early, otherwise module
        notifiers that probe will only work by chance."
      
      * tag 'trace-3.8-rc4-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ftrace: Be first to run code modification on modules
      d26d4525
    • L
      Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 0944c0a0
      Linus Torvalds 提交于
      Pull libata fixes from Jeff Garzik:
      
       1) ahci: Fix typo that caused erronenous error handling.
      
          Thought: I wonder if sparse could have caught this, somehow.
      
       2) ahci: support a slightly odd Enmotus variant
      
       3) core: fix a drive detection problem by correcting the logic by which
          the DevSlp timing variables are obtained and used.
      
      * tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        [libata] replace sata_settings with devslp_timing
        [libata] ahci: Add support for Enmotus Bobcat device.
        [libata] ahci: Fix lack of command retry after a success error handler.
      0944c0a0
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · a7ed6c43
      Linus Torvalds 提交于
      Pull security subsystem bugfixes from James Morris.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        security/device_cgroup: lock assert fails in dev_exception_clean()
        evm: checking if removexattr is not a NULL
      a7ed6c43
    • O
      wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED task · 9067ac85
      Oleg Nesterov 提交于
      wake_up_process() should never wakeup a TASK_STOPPED/TRACED task.
      Change it to use TASK_NORMAL and add the WARN_ON().
      
      TASK_ALL has no other users, probably can be killed.
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9067ac85
    • O
      ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL · 9899d11f
      Oleg Nesterov 提交于
      putreg() assumes that the tracee is not running and pt_regs_access() can
      safely play with its stack.  However a killed tracee can return from
      ptrace_stop() to the low-level asm code and do RESTORE_REST, this means
      that debugger can actually read/modify the kernel stack until the tracee
      does SAVE_REST again.
      
      set_task_blockstep() can race with SIGKILL too and in some sense this
      race is even worse, the very fact the tracee can be woken up breaks the
      logic.
      
      As Linus suggested we can clear TASK_WAKEKILL around the arch_ptrace()
      call, this ensures that nobody can ever wakeup the tracee while the
      debugger looks at it.  Not only this fixes the mentioned problems, we
      can do some cleanups/simplifications in arch_ptrace() paths.
      
      Probably ptrace_unfreeze_traced() needs more callers, for example it
      makes sense to make the tracee killable for oom-killer before
      access_process_vm().
      
      While at it, add the comment into may_ptrace_stop() to explain why
      ptrace_stop() still can't rely on SIGKILL and signal_pending_state().
      Reported-by: NSalman Qazi <sqazi@google.com>
      Reported-by: NSuleiman Souhlal <suleiman@google.com>
      Suggested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9899d11f
    • W
      arm64: makefile: fix uname munging when setting ARCH on native machine · f1b99392
      Will Deacon 提交于
      By popular demand, arch/aarch64 is now known as arch/arm64. However,
      uname -m (and indeed the GNU triplet) still use aarch64 as the machine
      string.
      
      This patch fixes native builds of both the kernel and perf tools by
      updating the relevant Makefiles to munge the output of uname -m and
      set the ARCH variable appropriately.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      f1b99392