1. 12 Feb, 2011 2 commits
    • Tejun Heo's avatar
      [SCSI] pm8001: simplify workqueue usage · 429305e4
      Tejun Heo authored
      pm8001 manages its own list of pending works and cancel them on device
      free.  It is unnecessarily complex and has a race condition - the
      works are canceled but not synced, so the work could still be running
      during and after the data structures are freed.
      
      This patch simplifies workqueue usage.
      
      * A driver specific workqueue pm8001_wq is created to serve these
        work items.
      
      * To avoid confusion, the "queue" suffixes are dropped from work items
        and functions.
      
      * Delayed queueing was never used.  pm8001_work now uses work_struct
        instead.
      
      * The driver no longer keeps track of pending works.  All pm8001_works
        are queued to pm8001_wq and the workqueue is flushed as necessary.
      
      flush_scheduled_work() usage is removed during conversion.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarJack Wang <jack_wang@usish.com>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
      429305e4
    • Tejun Heo's avatar
      [SCSI] remove flush_scheduled_work() usages · a684b8da
      Tejun Heo authored
      Simple conversions to drop flush_scheduled_work() usages in
      drivers/scsi.  More involved ones will be done in separate patches.
      
      * NCR5380, megaraid_sas: cancel_delayed_work() +
        flush_scheduled_work() -> cancel_delayed_work_sync().
      
      * mpt2sas_scsih: drop unnecessary flush_scheduled_work().
      
      * arcmsr_hba, ipr, pmcraid: flush the used work explicitly instead of
        using flush_scheduled_work().
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
      a684b8da
  2. 24 Jan, 2011 38 commits