From: Dan Williams Date: Fri, 9 Mar 2012 19:00:06 +0000 (-0800) Subject: [SCSI] libsas: introduce sas_work to fix sas_drain_work vs sas_queue_work X-Git-Tag: v3.4-rc6~31^2~8 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=22b9153faa2263aa89625de25e71c7d44c8dbd16;p=pandora-kernel.git [SCSI] libsas: introduce sas_work to fix sas_drain_work vs sas_queue_work When requeuing work to a draining workqueue the last work instance may not be idle, so sas_queue_work() must not touch work->entry. Introduce sas_work with a drain_node list_head to have a private list for collecting work deferred due to drain collision. Fixes reports like: BUG: unable to handle kernel NULL pointer dereference at (null) IP: [] process_one_work+0x2e/0x338 Signed-off-by: Dan Williams Signed-off-by: James Bottomley --- Reading git-diff-tree failed