linux/drivers/scsi/pm8001
Tejun Heo 429305e465 [SCSI] pm8001: simplify workqueue usage
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: Tejun Heo <tj@kernel.org>
Acked-by: Jack Wang <jack_wang@usish.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2011-02-12 10:31:03 -06:00
..
Makefile [SCSI] pm8001: add SAS/SATA HBA driver 2009-12-04 12:00:40 -06:00
pm8001_chips.h [SCSI] pm8001: add SAS/SATA HBA driver 2009-12-04 12:00:40 -06:00
pm8001_ctl.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pm8001_ctl.h [SCSI] pm8001: enable read HBA SAS address from VPD 2009-12-10 10:09:23 -06:00
pm8001_defs.h [SCSI] pm8001: add SAS/SATA HBA driver 2009-12-04 12:00:40 -06:00
pm8001_hwi.c [SCSI] pm8001: simplify workqueue usage 2011-02-12 10:31:03 -06:00
pm8001_hwi.h [SCSI] pm8001: fix endian issues with SAS address 2009-12-10 10:02:22 -06:00
pm8001_init.c [SCSI] pm8001: simplify workqueue usage 2011-02-12 10:31:03 -06:00
pm8001_sas.c [SCSI] Unify SAM_ and SAM_STAT_ macros 2010-07-28 09:07:49 -05:00
pm8001_sas.h [SCSI] pm8001: simplify workqueue usage 2011-02-12 10:31:03 -06:00