1. 14 Feb, 2006 2 commits
    • James Bottomley's avatar
      [SCSI] fix wrong context bugs in SCSI · 65110b21
      James Bottomley authored
      
      
      There's a bug in releasing scsi_device where the release function
      actually frees the block queue.  However, the block queue release
      calls flush_work(), which requires process context (the scsi_device
      structure may release from irq context).  Update the release function
      to invoke via the execute_in_process_context() API.
      
      Also clean up the scsi_target structure releasing via this API.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      65110b21
    • James Bottomley's avatar
      [PATCH] add scsi_execute_in_process_context() API · faead26d
      James Bottomley authored
      
      
      We have several points in the SCSI stack (primarily for our device
      functions) where we need to guarantee process context, but (given the
      place where the last reference was released) we cannot guarantee this.
      
      This API gets around the issue by executing the function directly if
      the caller has process context, but scheduling a workqueue to execute
      in process context if the caller doesn't have it.  Unfortunately, it
      requires memory allocation in interrupt context, but it's better than
      what we have previously.  The true solution will require a bit of
      re-engineering, so isn't appropriate for 2.6.16.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      faead26d
  2. 12 Feb, 2006 7 commits
  3. 07 Feb, 2006 4 commits
  4. 05 Feb, 2006 2 commits
  5. 04 Feb, 2006 25 commits