aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi/aacraid/commctrl.c
diff options
context:
space:
mode:
authorMark Haverkamp <markh@linux-foundation.org>2007-03-15 12:55:07 -0700
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-03-20 10:54:49 -0500
commitfe76df4235986cfacc2d3b71cef7c42bc1a6dd6c (patch)
treea8b31caeae0d4a60b0271c5e83a0c219de0fde72 /drivers/scsi/aacraid/commctrl.c
parenta8166a52968216ae079a5530ac3269147de2ef31 (diff)
[SCSI] aacraid: Fix blocking issue with container probing function (cast update)
Received from Mark Salyzyn, The aac_probe_container call blocks. This is an issue because it is called on occasion in the context of the queuecommand handler. Once in a blue moon this has resulted in a kernel panic sleeping during interrupt; or problems with some embedded system versions of the kernel that depend on queuecommand to not block. This ugly patch rewrites the aac_probe_container call into a new routine _aac_probe_container that is an asynchronous state machine to complete the series of operations. The legacy blocking aac_probe_container call used in other areas of the driver (during initialization scanning for all targets and in the separate hot-add/remove [aacraid] thread) merely issues _aac_probe_container and then simple spins calling schedule() waiting for completion. Signed-off-by: Mark Haverkamp <markh@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/aacraid/commctrl.c')
0 files changed, 0 insertions, 0 deletions