[PATCH] add scsi_execute_in_process_context() API
commitfaead26d7a06605add627f29aee73ba654ce11f9
authorJames Bottomley <James.Bottomley@steeleye.com>
Tue, 14 Feb 2006 16:42:07 +0000 (14 10:42 -0600)
committer <jejb@mulgrave.il.steeleye.com> <>
Tue, 14 Feb 2006 17:14:26 +0000 (14 11:14 -0600)
treecd809c6e5601caefb66e614ee1f06417819d2151
parente2230eac17486e2ee07091d54d898eb40bcd0fdd
[PATCH] add scsi_execute_in_process_context() API

We have several points in the SCSI stack (primarily for our device
functions) where we need to guarantee process context, but (given the
place where the last reference was released) we cannot guarantee this.

This API gets around the issue by executing the function directly if
the caller has process context, but scheduling a workqueue to execute
in process context if the caller doesn't have it.  Unfortunately, it
requires memory allocation in interrupt context, but it's better than
what we have previously.  The true solution will require a bit of
re-engineering, so isn't appropriate for 2.6.16.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/scsi_lib.c
include/scsi/scsi.h