Skip to content
  1. Mar 14, 2011
  2. Feb 17, 2011
    • Mike Marciniszyn's avatar
      IB/qib: Prevent double completions after a timeout or RNR error · c0af2c05
      Mike Marciniszyn authored
      
      
      There is a double completion associated with error handling for RC QPs.
      
      The sequence is:
      
       - The do_rc_ack() routine fields an RNR nack and there are 0
         rnr_retries configured on the QP.
       - qib_error_qp() stops the pending timer
       - qib_rc_send_complete() is called from sdma_complete()
       - qib_rc_send_complete() starts the timer because the msb of the psn
         just completed says an ack is needed.
       - a bunch of flushes occur as ipoib posts WQEs to an error'ed QP
       - rc_timeout() calls qib_restart_rc()
       - qib_restart_rc() calls qib_send_complete() with a
         IB_WC_RETRY_EXC_ERR on a wqe that has already been completed in the
         past
      
      The fix avoids starting the timer since another packet will never
      arrive.
      
      Signed-off-by: default avatarMike Marciniszyn <mike.marciniszyn@qlogic.com>
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      c0af2c05
  3. Feb 10, 2011
    • Mike Marciniszyn's avatar
      IB/qib: Fix double add_timer() · 414ed90c
      Mike Marciniszyn authored
      
      
      The following panic BUG_ON occurs during qib testing:
      
          Kernel BUG at include/linux/timer.h:82
      
          RIP  [<ffffffff881f7109>] :ib_qib:start_timer+0x73/0x89
           RSP <ffffffff80425bd0>
           <0>Kernel panic - not syncing: Fatal exception
           <0>Dumping qib trace buffer from panic
          qib_set_lid INFO: IB0:1 got a lid: 0xf8
          Done dumping qib trace buffer
          BUG: warning at kernel/panic.c:137/panic() (Tainted: G
      
      The flaw is due to a missing state test when processing responses that
      results in an add_timer() call when the same timer is already queued.
      This code was executing in parallel with a QP destroy on another CPU
      that had changed the state to reset, but the missing test caused to
      response handling code to run on into the panic.
      
      Signed-off-by: default avatarMike Marciniszyn <mike.marciniszyn@qlogic.com>
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      414ed90c
  4. Feb 03, 2011
  5. Jan 28, 2011
  6. Jan 21, 2011
    • David Rientjes's avatar
      kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT · 6a108a14
      David Rientjes authored
      
      
      The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
      is used to configure any non-standard kernel with a much larger scope than
      only small devices.
      
      This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
      references to the option throughout the kernel.  A new CONFIG_EMBEDDED
      option is added that automatically selects CONFIG_EXPERT when enabled and
      can be used in the future to isolate options that should only be
      considered for embedded systems (RISC architectures, SLOB, etc).
      
      Calling the option "EXPERT" more accurately represents its intention: only
      expert users who understand the impact of the configuration changes they
      are making should enable it.
      
      Reviewed-by: default avatarIngo Molnar <mingo@elte.hu>
      Acked-by: default avatarDavid Woodhouse <david.woodhouse@intel.com>
      Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
      Cc: Greg KH <gregkh@suse.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Robin Holt <holt@sgi.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6a108a14
  7. Jan 17, 2011
    • Tejun Heo's avatar
      RDMA: Update workqueue usage · f0626710
      Tejun Heo authored
      
      
      * ib_wq is added, which is used as the common workqueue for infiniband
        instead of the system workqueue.  All system workqueue usages
        including flush_scheduled_work() callers are converted to use and
        flush ib_wq.
      
      * cancel_delayed_work() + flush_scheduled_work() converted to
        cancel_delayed_work_sync().
      
      * qib_wq is removed and ib_wq is used instead.
      
      This is to prepare for deprecation of flush_scheduled_work().
      
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
      f0626710
  8. Jan 16, 2011
  9. Jan 12, 2011
  10. Jan 11, 2011
Loading