1. 22 May, 2012 36 commits
    • Al Viro's avatar
      2a3fdc11
    • Al Viro's avatar
    • Matt Fleming's avatar
      m68k: use set_current_blocked() and block_sigmask() · 43a35995
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      43a35995
    • Oleg Nesterov's avatar
      hexagon: do_notify_resume() needs tracehook_notify_resume() · 3334bf12
      Oleg Nesterov authored
      arch/hexagon/kernel/signal.c:do_notify_resume() forgets to call
      tracehook_notify_resume() if TIF_NOTIFY_RESUME is set.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarRichard Kuo <rkuo@codeaurora.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Alexander Gordeev <agordeev@redhat.com>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: David Smith <dsmith@redhat.com>
      Cc: "Frank Ch. Eigler" <fche@redhat.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Larry Woodman <lwoodman@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      3334bf12
    • Matt Fleming's avatar
      avr32: use block_sigmask() · 54bbf3e3
      Matt Fleming authored
      Use the new helper function introduced in commit 5e6292c0 ("signal:
      add block_sigmask() for adding sigmask to current->blocked") which
      centralises the code for updating current->blocked after successfully
      delivering a signal and reduces the amount of duplicate code across
      architectures.
      
      In the past some architectures got this code wrong, so using this helper
      function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Cc: Havard Skinnemoen <hskinnemoen@gmail.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      54bbf3e3
    • Oleg Nesterov's avatar
      avr32: use set_current_blocked() in handle_signal/sys_rt_sigreturn · 49209590
      Oleg Nesterov authored
      It is wrong to change ->blocked directly, see e6fa16ab.  Change
      handle_signal() and sys_rt_sigreturn() to use the right helper,
      set_current_blocked().
      
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Acked-by: default avatarHavard Skinnemoen <hskinnemoen@gmail.com>
      Reviewed-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      49209590
    • Matt Fleming's avatar
      avr32: don't mask signals in the error path · e1b1fd79
      Matt Fleming authored
      The current handle_signal() implementation is broken - it will mask
      signals if we fail to setup the signal stack frame, which isn't the
      desired behaviour, we should only be masking signals if we succeed in
      setting up the stack frame.  It looks like this code was copied from the
      old (broken) arm implementation but wasn't updated when the arm code was
      fixed in commit a6c61e9d ("[ARM] 3168/1: Update ARM signal delivery
      and masking").
      
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Acked-by: default avatarHavard Skinnemoen <hskinnemoen@gmail.com>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      e1b1fd79
    • Matt Fleming's avatar
      m32r: use set_current_blocked() and block_sigmask() · 3883e301
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Kyle McMartin <kyle@redhat.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      3883e301
    • Matt Fleming's avatar
      mn10300: use set_current_blocked() and block_sigmask() · 00f35785
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      00f35785
    • Matt Fleming's avatar
      cris: use set_current_blocked() and block_sigmask() · f3b5e822
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Acked-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      f3b5e822
    • Matt Fleming's avatar
      ia64: use set_current_blocked() and block_sigmask() · 7a076e4f
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7a076e4f
    • Matt Fleming's avatar
      microblaze: use set_current_blocked() and block_sigmask() · 60c59751
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarMichal Simek <monstr@monstr.eu>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      60c59751
    • Matt Fleming's avatar
      microblaze: fix signal masking · bcb8c8d0
      Matt Fleming authored
      There are a couple of problems with the current signal code,
      
      1. If we failed to setup the signal stack frame then we should not be
         masking any signals.
      
      2. ka->sa.sa_mask is only added to the current blocked signals list if
         SA_NODEFER is set in ka->sa.sa_flags.  If we successfully setup the
         signal frame and are going to run the handler then we must honour
         sa_mask.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarMichal Simek <monstr@monstr.eu>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      bcb8c8d0
    • Matt Fleming's avatar
      microblaze: no need to reset handler if SA_ONESHOT · a12c3694
      Matt Fleming authored
      get_signal_to_deliver() already resets the signal handler if SA_ONESHOT is
      set in ka->sa.sa_flags, there's no need to do it again in handle_signal().
       Furthermore, because we were modifying ka->sa.sa_handler (which is a copy
      of sighand->action[]) instead of sighand->action[] the original code
      actually had no effect on signal delivery.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarMichal Simek <monstr@monstr.eu>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      a12c3694
    • Matt Fleming's avatar
      microblaze: don't reimplement force_sigsegv() · de8f2ddd
      Matt Fleming authored
      Instead of open coding the sequence from force_sigsegv() just call it.
      This also fixes a bug because we were modifying ka->sa.sa_handler (which
      is a copy of sighand->action[]), whereas the intention of the code was to
      modify sighand->action[] directly.
      
      As the original code was working with a copy it had no effect on signal
      delivery.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarMichal Simek <monstr@monstr.eu>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      de8f2ddd
    • Matt Fleming's avatar
      score: use set_current_blocked() and block_sigmask() · 4c3181bd
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Chen Liqin <liqin.chen@sunplusct.com>
      Cc: Lennox Wu <lennox.wu@gmail.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      4c3181bd
    • Matt Fleming's avatar
      score: don't mask signals if we fail to setup signal stack · 80c1dfa9
      Matt Fleming authored
      If setup_rt_frame() returns -EFAULT then we must not block any signals
      in the current process.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Chen Liqin <liqin.chen@sunplusct.com>
      Cc: Lennox Wu <lennox.wu@gmail.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      80c1dfa9
    • Matt Fleming's avatar
      h8300: use set_current_blocked() and block_sigmask() · 97c47bb7
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      97c47bb7
    • Matt Fleming's avatar
      unicore32: use block_sigmask() · 9ae36796
      Matt Fleming authored
      Use the new helper function introduced in commit 5e6292c0 ("signal:
      add block_sigmask() for adding sigmask to current->blocked") which
      centralises the code for updating current->blocked after successfully
      delivering a signal and reduces the amount of duplicate code across
      architectures.  In the past some architectures got this code wrong, so
      using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarGuan Xuetao <gxt@mprc.pku.edu.cn>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      9ae36796
    • Matt Fleming's avatar
      blackfin: use set_current_blocked() and block_sigmask() · 8e3f9f65
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Acked-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      8e3f9f65
    • Matt Fleming's avatar
      frv: use set_current_blocked() and block_sigmask() · 7ebe0c5d
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7ebe0c5d
    • Matt Fleming's avatar
      parisc: use set_current_blocked() and block_sigmask() · ade7728b
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate code
      across architectures.  In the past some architectures got this code wrong,
      so using this helper function should stop that from happening again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarKyle McMartin <kyle@mcmartin.ca>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      ade7728b
    • Al Viro's avatar
      new helper: sigsuspend() · 68f3f16d
      Al Viro authored
      guts of saved_sigmask-based sigsuspend/rt_sigsuspend.  Takes
      kernel sigset_t *.
      
      Open-coded instances replaced with calling it.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      68f3f16d
    • Linus Torvalds's avatar
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bf67f3a5
      Linus Torvalds authored
      Pull smp hotplug cleanups from Thomas Gleixner:
       "This series is merily a cleanup of code copied around in arch/* and
        not changing any of the real cpu hotplug horrors yet.  I wish I'd had
        something more substantial for 3.5, but I underestimated the lurking
        horror..."
      
      Fix up trivial conflicts in arch/{arm,sparc,x86}/Kconfig and
      arch/sparc/include/asm/thread_info_32.h
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits)
        um: Remove leftover declaration of alloc_task_struct_node()
        task_allocator: Use config switches instead of magic defines
        sparc: Use common threadinfo allocator
        score: Use common threadinfo allocator
        sh-use-common-threadinfo-allocator
        mn10300: Use common threadinfo allocator
        powerpc: Use common threadinfo allocator
        mips: Use common threadinfo allocator
        hexagon: Use common threadinfo allocator
        m32r: Use common threadinfo allocator
        frv: Use common threadinfo allocator
        cris: Use common threadinfo allocator
        x86: Use common threadinfo allocator
        c6x: Use common threadinfo allocator
        fork: Provide kmemcache based thread_info allocator
        tile: Use common threadinfo allocator
        fork: Provide weak arch_release_[task_struct|thread_info] functions
        fork: Move thread info gfp flags to header
        fork: Remove the weak insanity
        sh: Remove cpu_idle_wait()
        ...
      bf67f3a5
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 226da0db
      Linus Torvalds authored
      Pull RCU changes from Ingo Molnar:
       "This is the v3.5 RCU tree from Paul E.  McKenney:
      
       1) A set of improvements and fixes to the RCU_FAST_NO_HZ feature (with
          more on the way for 3.6).  Posted to LKML:
             https://lkml.org/lkml/2012/4/23/324 (commits 1-3 and 5),
             https://lkml.org/lkml/2012/4/16/611 (commit 4),
             https://lkml.org/lkml/2012/4/30/390 (commit 6), and
             https://lkml.org/lkml/2012/5/4/410 (commit 7, combined with
             the other commits for the convenience of the tester).
      
       2) Changes to make rcu_barrier() avoid disrupting execution of CPUs
          that have no RCU callbacks.  Posted to LKML:
             https://lkml.org/lkml/2012/4/23/322.
      
       3) A couple of commits that improve the efficiency of the interaction
          between preemptible RCU and the scheduler, these two being all that
          survived an abortive attempt to allow preemptible RCU's
          __rcu_read_lock() to be inlined.  The full set was posted to LKML at
          https://lkml.org/lkml/2012/4/14/143, and the first and third patches
          of that set remain.
      
       4) Lai Jiangshan's algorithmic implementation of SRCU, which includes
          call_srcu() and srcu_barrier().  A major feature of this new
          implementation is that synchronize_srcu() no longer disturbs the
          execution of other CPUs.  This work is based on earlier
          implementations by Peter Zijlstra and Paul E.  McKenney.  Posted to
          LKML: https://lkml.org/lkml/2012/2/22/82.
      
       5) A number of miscellaneous bug fixes and improvements which were
          posted to LKML at: https://lkml.org/lkml/2012/4/23/353 with
          subsequent updates posted to LKML."
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        rcu: Make rcu_barrier() less disruptive
        rcu: Explicitly initialize RCU_FAST_NO_HZ per-CPU variables
        rcu: Make RCU_FAST_NO_HZ handle timer migration
        rcu: Update RCU maintainership
        rcu: Make exit_rcu() more precise and consolidate
        rcu: Move PREEMPT_RCU preemption to switch_to() invocation
        rcu: Ensure that RCU_FAST_NO_HZ timers expire on correct CPU
        rcu: Add rcutorture test for call_srcu()
        rcu: Implement per-domain single-threaded call_srcu() state machine
        rcu: Use single value to handle expedited SRCU grace periods
        rcu: Improve srcu_readers_active_idx()'s cache locality
        rcu: Remove unused srcu_barrier()
        rcu: Implement a variant of Peter's SRCU algorithm
        rcu: Improve SRCU's wait_idx() comments
        rcu: Flip ->completed only once per SRCU grace period
        rcu: Increment upper bit only for srcu_read_lock()
        rcu: Remove fast check path from __synchronize_srcu()
        rcu: Direct algorithmic SRCU implementation
        rcu: Introduce rcutorture testing for rcu_barrier()
        timer: Fix mod_timer_pinned() header comment
        ...
      226da0db
    • Linus Torvalds's avatar
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5ec29e31
      Linus Torvalds authored
      Pull core locking updates from Ingo Molnar:
       "This update:
      
         - extends and simplifies x86 NMI callback handling code to enhance
           and fix the HP hw-watchdog driver
      
         - simplifies the x86 NMI callback handling code to fix a kmemcheck
           bug.
      
         - enhances the hung-task debugger"
      
      * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/nmi: Fix the type of the nmiaction.flags field
        x86/nmi: Fix page faults by nmiaction if kmemcheck is enabled
        x86/nmi: Add new NMI queues to deal with IO_CHK and SERR
        watchdog, hpwdt: Remove priority option for NMI callback
        hung task debugging: Inject NMI when hung and going to panic
      5ec29e31
    • Linus Torvalds's avatar
      Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · abd209b7
      Linus Torvalds authored
      Pull iommu core changes from Ingo Molnar:
       "The IOMMU changes in this cycle are mostly about factoring out
        Intel-VT-d specific IRQ remapping details and introducing struct
        irq_remap_ops, in preparation for AMD specific hardware."
      
      * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        iommu: Fix off by one in dmar_get_fault_reason()
        irq_remap: Fix the 'sub_handle' uninitialized warning
        irq_remap: Fix UP build failure
        irq_remap: Fix compiler warning with CONFIG_IRQ_REMAP=y
        iommu: rename intr_remapping.[ch] to irq_remapping.[ch]
        iommu: rename intr_remapping references to irq_remapping
        x86, iommu/vt-d: Clean up interfaces for interrupt remapping
        iommu/vt-d: Convert MSI remapping setup to remap_ops
        iommu/vt-d: Convert free_irte into a remap_ops callback
        iommu/vt-d: Convert IR set_affinity function to remap_ops
        iommu/vt-d: Convert IR ioapic-setup to use remap_ops
        iommu/vt-d: Convert missing apic.c intr-remapping call to remap_ops
        iommu/vt-d: Make intr-remapping initialization generic
        iommu: Rename intr_remapping files to intel_intr_remapping
      abd209b7
    • Linus Torvalds's avatar
      Merge branch 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 513de477
      Linus Torvalds authored
      Pull core/debugobjects changes from Ingo Molnar:
       "Not much happened: it includes a cleanup and an irq latency reduction
        fixlet."
      
      * 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobjects: Fill_pool() returns void now
        debugobjects: printk with irqs enabled
        debugobjects: Remove unused return value from fill_pool()
      513de477
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 62c8d922
      Linus Torvalds authored
      Pull GFS2 changes from Steven Whitehouse.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw: (24 commits)
        GFS2: Fix quota adjustment return code
        GFS2: Add rgrp information to block_alloc trace point
        GFS2: Eliminate unused "new" parameter to gfs2_meta_indirect_buffer
        GFS2: Update glock doc to add new stats info
        GFS2: Update main gfs2 doc
        GFS2: Remove redundant metadata block type check
        GFS2: Fix sgid propagation when using ACLs
        GFS2: eliminate log elements and simplify
        GFS2: Eliminate vestigial sd_log_le_rg
        GFS2: Eliminate needless parameter from function gfs2_setbit
        GFS2: Log code fixes
        GFS2: Remove unused argument from gfs2_internal_read
        GFS2: Remove bd_list_tr
        GFS2: Remove duplicate log code
        GFS2: Clean up log write code path
        GFS2: Use variable rather than qa to determine if unstuff necessary
        GFS2: Change variable blk to biblk
        GFS2: Fix function parameter comments in rgrp.c
        GFS2: Eliminate offset parameter to gfs2_setbit
        GFS2: Use slab for block reservation memory
        ...
      62c8d922
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 06930b94
      Linus Torvalds authored
      Pull m68knommu tree from Greg Ungerer:
       "More merge and clean up of MMU and non-MMU common files, namely
        signal.c and dma.c.  There is also a simplification of the ColdFire
        GPIO setup tables.  Using a couple of simple macros we make the init
        tables really small and easy to read, and save a couple of thousand
        lines of code.  Also a move of all the ColdFire subarch support files
        into the existing coldfire directory.  The sub-directories just ended
        up duplicating Makefiles and now only contain really simple pieces of
        code.  This saves quite a few lines of code too.
      
        As always a couple of bugs fixes thrown in too.  Oh and a new
        defconfig for the ColdFire platforms that support having the MMU
        enabled."
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (39 commits)
        m68k: add a defconfig for the M5475EVB ColdFire with MMU board
        m68knommu: unaligned.h fix for M68000 core
        m68k: merge the MMU and non-MMU versions of the arch dma code
        m68knommu: reorganize the no-MMU cache flushing to match m68k
        m68knommu: move the 54xx platform code into the common ColdFire code directory
        m68knommu: move the 532x platform code into the common ColdFire code directory
        m68knommu: move the 5407 platform code into the common ColdFire code directory
        m68knommu: move the 5307 platform code into the common ColdFire code directory
        m68knommu: move the 528x platform code into the common ColdFire code directory
        m68knommu: move the 527x platform code into the common ColdFire code directory
        m68knommu: move the 5272 platform code into the common ColdFire code directory
        m68knommu: move the 5249 platform code into the common ColdFire code directory
        m68knommu: move the 523x platform code into the common ColdFire code directory
        m68knommu: move the 520x platform code into the common ColdFire code directory
        m68knommu: move the 5206 platform code into the common ColdFire code directory
        m68knommu: simplify the ColdFire 5407 GPIO struct setup
        m68knommu: simplify the ColdFire 532x GPIO struct setup
        m68knommu: simplify the ColdFire 5307 GPIO struct setup
        m68knommu: simplify the ColdFire 528x GPIO struct setup
        m68knommu: simplify the ColdFire 527x GPIO struct setup
        ...
      06930b94
    • Linus Torvalds's avatar
      Revert "vfs: remove unnecessary d_unhashed() check from __d_lookup_rcu" · 2e321806
      Linus Torvalds authored
      This reverts commit 8c01a529.
      
      It turns out the d_unhashed() check isn't unnecessary after all: while
      it's true that unhashing will increment the sequence numbers, that does
      not necessarily invalidate the RCU lookup, because it might have seen
      the dentry pointer (before it got unhashed), but by the time it loaded
      the sequence number, it could have seen the *new* sequence number (after
      it got unhashed).
      
      End result: we might look up an unhashed dentry that is about to be
      freed, with the sequence number never indicating anything bad about it.
      So checking that the dentry is still hashed (*after* reading the sequence
      number) is indeed the proper fix, and was never unnecessary.
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2e321806
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · c23ddf78
      Linus Torvalds authored
      Pull InfiniBand/RDMA changes from Roland Dreier:
       - Add ocrdma hardware driver for Emulex IB-over-Ethernet adapters
       - Add generic and mlx4 support for "raw" QPs: allow suitably privileged
         applications to send and receive arbitrary packets directly to/from
         the hardware
       - Add "doorbell drop" handling to the cxgb4 driver
       - A fairly large batch of qib hardware driver changes
       - A few fixes for lockdep-detected issues
       - A few other miscellaneous fixes and cleanups
      
      Fix up trivial conflict in drivers/net/ethernet/emulex/benet/be.h.
      
      * tag 'rdma-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (53 commits)
        RDMA/cxgb4: Include vmalloc.h for vmalloc and vfree
        IB/mlx4: Fix mlx4_ib_add() error flow
        IB/core: Fix IB_SA_COMP_MASK macro
        IB/iser: Fix error flow in iser ep connection establishment
        IB/mlx4: Increase the number of vectors (EQs) available for ULPs
        RDMA/cxgb4: Add query_qp support
        RDMA/cxgb4: Remove kfifo usage
        RDMA/cxgb4: Use vmalloc() for debugfs QP dump
        RDMA/cxgb4: DB Drop Recovery for RDMA and LLD queues
        RDMA/cxgb4: Disable interrupts in c4iw_ev_dispatch()
        RDMA/cxgb4: Add DB Overflow Avoidance
        RDMA/cxgb4: Add debugfs RDMA memory stats
        cxgb4: DB Drop Recovery for RDMA and LLD queues
        cxgb4: Common platform specific changes for DB Drop Recovery
        cxgb4: Detect DB FULL events and notify RDMA ULD
        RDMA/cxgb4: Drop peer_abort when no endpoint found
        RDMA/cxgb4: Always wake up waiters in c4iw_peer_abort_intr()
        mlx4_core: Change bitmap allocator to work in round-robin fashion
        RDMA/nes: Don't call event handler if pointer is NULL
        RDMA/nes: Fix for the ORD value of the connecting peer
        ...
      c23ddf78
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · da4f58ff
      Linus Torvalds authored
      Pull SCSI misc update from James Bottomley:
       "The patch contains the usual assortment of driver updates (be2iscsi,
        bfa, bnx2i, fcoe, hpsa, isci, lpfc, megaraid, mpt2sas, pm8001, sg)
        plus an assortment of other changes and fixes.  Also new is the fact
        that the isci update is delivered as a git merge (with signed tag)."
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (158 commits)
        isci: End the RNC resumption wait when the RNC is destroyed.
        isci: Fixed RNC bug that lost the suspension or resumption during destroy
        isci: Fix RNC AWAIT_SUSPENSION->INVALIDATING transition.
        isci: Manage the IREQ_NO_AUTO_FREE_TAG under scic_lock.
        isci: Remove obviated host callback list.
        isci: Check IDEV_GONE before performing abort path operations.
        isci: Restore the ATAPI device RNC management code.
        isci: Don't wait for an RNC suspend if it's being destroyed.
        isci: Change the phy control and link reset interface for HW reasons.
        isci: Added timeouts to RNC suspensions in the abort path.
        isci: Add protocol indicator for TMF requests.
        isci: Directly control IREQ_ABORT_PATH_ACTIVE when completing TMFs.
        isci: Wait for RNC resumption before leaving the abort path.
        isci: Fix RNC suspend call for SCI_RESUMING state.
        isci: Manage tag releases differently when aborting tasks.
        isci: Callbacks to libsas occur under scic_lock and are synchronized.
        isci: When in the abort path, defeat other resume calls until done.
        isci: Implement waiting for suspend in the abort path.
        isci: Make sure all TCs are terminated and cleaned in LUN reset.
        isci: Manage the LLHANG timer enable/disable per-device.
        ...
      da4f58ff
    • Linus Torvalds's avatar
      Merge branch 'usb-target-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · ba01a87e
      Linus Torvalds authored
      Pull usb-gadget scsi-target merge from Nicholas Bellinger:
       "As promised, here is the pull request for Sebastian's usb-gadget
        target UASP / BOT driver for v3.5-rc1.  This code has been in
        linux-next for a number of weeks, and is now ready for an initial
        merge.
      
        This fabric uses the target framework to provide a usb gadget device.
        This gadget supports the USB Attached SCSI Protocol (UASP) and Bulk
        Only Transfers (BOT or BBB).  BOT is the primary interface, UAS is the
        alternative interface.
      
        Note this series is dependent upon a single target core patch for
        adding se_cmd->unknown_data_length in target-pending/for-next, that
        got merged in the parent.
      
        Kudos to Sebastian for making this driver happen so easily, and for
        his patches to improve usb-core and target core along the way to his
        goal.  Also thanks to Felipe + Greg-KH for their help in getting this
        driver ready for mainline."
      
      * 'usb-target-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        usb-gadget: Initial merge of target module for UASP + BOT
      ba01a87e
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · c9bfa7d7
      Linus Torvalds authored
      Pull scsi-target changes from Nicholas Bellinger:
       "There has been lots of work in existing code in a number of areas this
        past cycle.  The major highlights have been:
      
         * Removal of transport_do_task_sg_chain() from core + fabrics
           (Roland)
         * target-core: Removal of se_task abstraction from target-core and
           enforce hw_max_sectors for pSCSI backends (hch)
         * Re-factoring of iscsi-target tx immediate/response queues (agrover)
         * Conversion of iscsi-target back to using target core memory
           allocation logic (agrover)
      
        We've had one last minute iscsi-target patch go into for-next to
        address a nasty regression bug related to the target core allocation
        logic conversion from agrover that is not included in friday's
        linux-next build, but has been included in this series.
      
        On the new fabric module code front for-3.5, here is a brief status
        update for the three currently in flight this round:
      
         * usb-gadget target driver:
      
        Sebastian Siewior's driver for supporting usb-gadget target mode
        operation.  This will be going out as a separate PULL request from
        target-pending/usb-target-merge with subsystem maintainer ACKs.  There
        is one minor target-core patch in this series required to function.
      
         * sbp ieee-1394/firewire target driver:
      
        Chris Boot's driver for supportting the Serial Block Protocol (SBP)
        across IEEE-1394 Firewire hardware.  This will be going out as a
        separate PULL request from target-pending/sbp-target-merge with two
        additional drivers/firewire/ patches w/ subsystem maintainer ACKs.
      
         * qla2xxx LLD target mode infrastructure changes + tcm_qla2xxx:
      
        The Qlogic >= 24xx series HW target mode LLD infrastructure patch-set
        and tcm_qla2xxx fabric driver.  Support for FC target mode using
        qla2xxx LLD code has been officially submitted by Qlogic to James
        below, and is currently outstanding but not yet merged into
        scsi.git/for-next..
      
          [PATCH 00/22] qla2xxx: Updates for scsi "misc" branch
          http://www.spinics.net/lists/linux-scsi/msg59350.html
      
        Note there are *zero* direct dependencies upon this for-next series
        for the qla2xxx LLD target + tcm_qla2xxx patches submitted above, and
        over the last days the target mode team has been tracking down an
        tcm_qla2xxx specific active I/O shutdown bug that appears to now be
        almost squashed for 3.5-rc-fixes."
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (47 commits)
        iscsi-target: Fix iov_count calculation bug in iscsit_allocate_iovecs
        iscsi-target: remove dead code in iscsi_check_valuelist_for_support
        target: Handle ATA_16 passthrough for pSCSI backend devices
        target: Add MI_REPORT_TARGET_PGS ext. header + implict_trans_secs attribute
        target: Fix MAINTENANCE_IN service action CDB checks to use lower 5 bits
        target: add support for the WRITE_VERIFY command
        target: make target_put_session void
        target: cleanup transport_execute_tasks()
        target: Remove max_sectors device attribute for modern se_task less code
        target: lock => unlock typo in transport_lun_wait_for_tasks
        target: Enforce hw_max_sectors for SCF_SCSI_DATA_SG_IO_CDB
        target: remove the t_se_count field in struct se_cmd
        target: remove the t_task_cdbs_ex_left field in struct se_cmd
        target: remove the t_task_cdbs_left field in struct se_cmd
        target: remove struct se_task
        target: move the state and execute lists to the command
        target: simplify command to task linkage
        target: always allocate a single task
        target: replace ->execute_task with ->execute_cmd
        target: remove the task_sectors field in struct se_task
        ...
      c9bfa7d7
    • Linus Torvalds's avatar
      Merge tag 'for-3.5' of git://openrisc.net/jonas/linux · f4c16c58
      Linus Torvalds authored
      Pull OpenRISC updates from Jonas Bonn:
       "A couple of cleanups for the OpenRISC architecture:
      
         - Implement IRQ domains
         - Use DMA mapping framework completely and catch up with recent
           changes to dma_map_ops
         - One bug fix to the "or1k_atomic" syscall to not clobber call-saved
           registers
         - OOM killer patches to the pagefault handler ported from the X86
           arch
         - ...and a couple of header file cleanups"
      
      * tag 'for-3.5' of git://openrisc.net/jonas/linux:
        openrisc: use scratch regs in atomic syscall
        openrisc: provide dma_map_ops
        openrisc: header file cleanups
        openrisc/mm/fault.c: Port OOM changes to do_page_fault
        openrisc: remove unnecessary includes
        openrisc: implement irqdomains
      f4c16c58
  2. 21 May, 2012 4 commits
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 3d1482fe
      Linus Torvalds authored
      Pull pin control subsystem changes from Linus Walleij:
      
       - Generic Device Tree bindings and hooks for drivers so we can move
         over modern drivers to using this.
      
       - Device Tree bindings for Tegra SoCs.
      
       - Funneling some devicetree helper code for the drivers/of subsystem.
      
       - New pin control drivers for:
         * Freescale MXS
         * Freescale i.MX51
         * Freescale i.MX53
           All of these use Device Tree bindings.
      
       - Dummy pinctrl handles for stepwise migration to pinctrl, akin to
         dummy regulators.
       - Minor non-urgent fixes and improvments.
      
      Fix up trivial conflicts in Documentation/driver-model/devres.txt and
      drivers/pinctrl/core.c,
      
      * tag 'pinctrl-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (46 commits)
        pinctrl: pinctrl-imx: add imx51 pinctrl driver
        pinctrl: pinctrl-imx: add imx53 pinctrl driver
        pinctrl: pinctrl-pxa3xx: remove empty pinmux disable function
        pinctrl: pinctrl-mxs: remove empty pinmux disable function
        pinctrl: pinctrl-imx: remove empty pinmux disable function
        pinctrl: make pinmux disable function optional
        pinctrl: a minor error checking improvement for pinconf
        pinctrl: mxs: skip gpio nodes for group creation
        pinctrl: mxs: create group for pin config node
        pinctrl: (cosmetic) fix two entries in DocBook comments
        pinctrl: add more info to error msgs in pin_request
        pinctrl: add pinctrl-mxs support
        pinctrl: pinctrl-imx: add imx6q pinctrl driver
        pinctrl: pinctrl-imx: add imx pinctrl core driver
        dt: add of_get_child_count helper function
        pinctrl: support gpio request deferred probing
        pinctrl: add pinctrl_provide_dummies interface for platforms to use
        pinctrl: enhance reporting of errors when loading from DT
        pinctrl: add kerneldoc for pinctrl_ops device tree functions
        pinctrl: propagate map validation errors
        ...
      3d1482fe
    • Linus Torvalds's avatar
      Merge tag 'regulator-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · ac180657
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "The major thing here is the addition of some helpers to factor code
        out of drivers, making a fair proportion of regulators much more just
        data rather than code which is nice.
      
        - Helpers in the core for regulators using regmap, providing generic
          implementations of the enable and voltage selection operations which
          just need data to describe them in the drivers.
        - Split out voltage mapping and voltage setting, allowing many more
          drivers to take advantage of the infrastructure for selectors.
        - Loads and loads of cleanups from Axel Lin once again, including many
          changes to take advantage of the above new framework features
        - New drivers for Ricoh RC5T583, TI TPS62362, TI TPS62363, TI
          TPS65913, TI TWL6035 and TI TWL6037.
      
        Some of the registration changes to support the core refactoring
        caused so many conflicts that eventually topic branches were abandoned
        for this release."
      
      * tag 'regulator-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (227 commits)
        regulator: tps65910: use of_node of matched regulator being register
        regulator: tps65910: dt: support when "regulators" node found
        regulator: tps65910: add error message in case of failure
        regulator: tps62360: dt: initialize of_node param for regulator register.
        regulator: tps65910: use devm_* for memory allocation
        regulator: tps65910: use small letter for regulator names
        mfd: tpx6586x:  Depend on regulator
        regulator: regulator for Palmas Kconfig
        regulator: regulator driver for Palmas series chips
        regulator: Enable Device Tree for the db8500-prcmu regulator driver
        regulator: db8500-prcmu: Separate regulator registration from probe
        regulator: ab3100: Use regulator_map_voltage_iterate()
        regulator: tps65217: Convert to set_voltage_sel and map_voltage
        regulator: Enable the ab8500 for Device Tree
        regulator: ab8500: Split up probe() into manageable pieces
        regulator: max8925: Remove check_range function and max_uV from struct rc5t583_regulator_info
        regulator: max8649: Remove unused check_range() function
        regulator: rc5t583: Remove max_uV from struct rc5t583_regulator_info
        regulator: da9052: Convert to set_voltage_sel and map_voltage
        regulator: max8952: Use devm_kzalloc
        ...
      ac180657
    • Linus Torvalds's avatar
      Merge tag 'regmap-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · ae82a828
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "A surprisingly large series of updates for regmap this time, mostly
        due to all the work Stephen Warren has done to add support for MMIO
        buses.  This wasn't really the target for the framework but it turns
        out that there's a reasonable number of cases where it's very helpful
        to use the register cache support to allow the register map to remain
        available while the device is suspended.
      
        - A MMIO bus implementation, contributed by Stephen Warren.  Currently
          this is limited to 32 bit systems and native endian registers.
        - Support for naming register maps, mainly intended for MMIO devices
          with multiple register banks.  This was also contributed by Stephen
          Warren.
        - Support for register striding, again contributed by Stephen Warren
          and mainly intended for use with MMIO as typically the registers
          will be a fixed size but byte addressed.
        - irqdomain support for the generic regmap irq_chip, including support
          for dynamically allocate interrupt numbers.
        - A function dev_get_regmap() which allows frameworks using regmap to
          obtain the regmap for a device from the struct device, making life a
          little simpler for them.
        - Updates to regmap-irq to support more chips (contributed by Graeme
          Gregory) and to use irqdomains.
        - Support for devices with 24 bit register addresses.
      
        The striding support collided with all the topic branches so the
        branches look a bit messy and eventually I just gave up.  There's also
        the TI Palmas driver and a couple of other isolated MFD patches that
        all depend on new regmap features so are being merged here."
      
      * tag 'regmap-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (24 commits)
        mfd: palmas PMIC device support Kconfig
        mfd: palmas PMIC device support
        regmap: Fix typo in IRQ register striding
        mfd: wm8994: Update to fully use irq_domain
        regmap: add support for non contiguous status to regmap-irq
        regmap: Convert regmap_irq to use irq_domain
        regmap: Pass back the allocated regmap IRQ controller data
        mfd: da9052: Fix genirq abuse
        regmap: Implement dev_get_regmap()
        regmap: Devices using format_write don't support bulk operations
        regmap: Converts group operation into single read write operations
        regmap: Cache single values read from the chip
        regmap: fix compile errors in regmap-irq.c due to stride changes
        regmap: implement register striding
        regmap: fix compilation when !CONFIG_DEBUG_FS
        regmap: allow regmap instances to be named
        regmap: validate regmap_raw_read/write val_len
        regmap: mmio: remove some error checks now in the core
        regmap: mmio: convert some error returns to BUG()
        regmap: add MMIO bus support
        ...
      ae82a828
    • Linus Torvalds's avatar
      Merge tag 'pci-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 3bb07f1b
      Linus Torvalds authored
      Pull PCI changes from Bjorn Helgaas:
       - Host bridge cleanups from Yinghai
       - Disable Bus Master bit on PCI device shutdown (kexec-related)
       - Stratus ftServer fix
       - pci_dev_reset() locking fix
       - IvyBridge graphics erratum workaround
      
      * tag 'pci-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (21 commits)
        microblaze/PCI: fix "io_offset undeclared" error
        x86/PCI: only check for spinlock being held in SMP kernels
        resources: add resource_overlaps()
        PCI: fix uninitialized variable 'cap_mask'
        MAINTAINERS: update PCI git tree and patchwork
        PCI: disable Bus Master on PCI device shutdown
        PCI: work around IvyBridge internal graphics FLR erratum
        x86/PCI: fix unused variable warning in amd_bus.c
        PCI: move mutex locking out of pci_dev_reset function
        PCI: work around Stratus ftServer broken PCIe hierarchy
        x86/PCI: merge pcibios_scan_root() and pci_scan_bus_on_node()
        x86/PCI: dynamically allocate pci_root_info for native host bridge drivers
        x86/PCI: embed pci_sysdata into pci_root_info on ACPI path
        x86/PCI: embed name into pci_root_info struct
        x86/PCI: add host bridge resource release for _CRS path
        x86/PCI: refactor get_current_resources()
        PCI: add host bridge release support
        PCI: add generic device into pci_host_bridge struct
        PCI: rename pci_host_bridge() to find_pci_root_bridge()
        x86/PCI: fix memleak with get_current_resources()
        ...
      3bb07f1b