1
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
pm8001_chips.h
pm8001_ctl.c
pm8001_ctl.h
pm8001_defs.h
pm8001_hwi.c [SCSI] pm8001: simplify workqueue usage 2011-02-12 10:31:03 -06:00
pm8001_hwi.h
pm8001_init.c [SCSI] pm8001: simplify workqueue usage 2011-02-12 10:31:03 -06:00
pm8001_sas.c
pm8001_sas.h [SCSI] pm8001: simplify workqueue usage 2011-02-12 10:31:03 -06:00