1. 11 Sep, 2009 2 commits
  2. 09 Sep, 2009 3 commits
  3. 08 Sep, 2009 1 commit
  4. 07 Sep, 2009 2 commits
    • Hal Rosenstock's avatar
      IB/mad: Allow tuning of QP0 and QP1 sizes · b76aabc3
      Hal Rosenstock authored
      MADs are UD and can be dropped if there are no receives posted, so
      allow receive queue size to be set with a module parameter in case the
      queue needs to be lengthened.  Send side tuning is done for symmetry
      with receive.
      Signed-off-by: default avatarHal Rosenstock <hal.rosenstock@gmail.com>
      Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
      b76aabc3
    • Roland Dreier's avatar
      IB/mad: Fix possible lock-lock-timer deadlock · 6b2eef8f
      Roland Dreier authored
      Lockdep reported a possible deadlock with cm_id_priv->lock,
      mad_agent_priv->lock and mad_agent_priv->timed_work.timer; this
      happens because the mad module does
      
      	cancel_delayed_work(&mad_agent_priv->timed_work);
      
      while holding mad_agent_priv->lock.  cancel_delayed_work() internally
      does del_timer_sync(&mad_agent_priv->timed_work.timer).
      
      This can turn into a deadlock because mad_agent_priv->lock is taken
      inside cm_id_priv->lock, so we can get the following set of contexts
      that deadlock each other:
      
       A: holding cm_id_priv->lock, waiting for mad_agent_priv->lock
       B: holding mad_agent_priv->lock, waiting for del_timer_sync()
       C: interrupt during mad_agent_priv->timed_work.timer that takes
          cm_id_priv->lock
      
      Fix this by using the new __cancel_delayed_work() interface (which
      internally does del_timer() instead of del_timer_sync()) in all the
      places where we are holding a lock.
      
      Addresses: http://bugzilla.kernel.org/show_bug.cgi?id=13757Reported-by: default avatarBart Van Assche <bart.vanassche@gmail.com>
      Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
      6b2eef8f
  5. 06 Sep, 2009 32 commits