From: Tejun Heo Date: Mon, 24 Jan 2011 13:57:29 +0000 (+0100) Subject: [SCSI] pm8001: simplify workqueue usage X-Git-Tag: v2.6.39-rc1~440^2~132 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=429305e4650c5d3395c21ca183455a3f3e3568af;p=pandora-kernel.git [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 Acked-by: Jack Wang Signed-off-by: James Bottomley --- Reading git-diff-tree failed