]> git.baikalelectronics.ru Git - kernel.git/commit
[PATCH] add scsi_execute_in_process_context() API
authorJames Bottomley <James.Bottomley@steeleye.com>
Tue, 14 Feb 2006 16:42:07 +0000 (10:42 -0600)
committer <jejb@mulgrave.il.steeleye.com> <>
Tue, 14 Feb 2006 17:14:26 +0000 (11:14 -0600)
commit3791fb0361300f275cf8a05437f8e9c69ad3d3e7
treecd809c6e5601caefb66e614ee1f06417819d2151
parent91d0b785d6ac9c24a0d872f7f5568aed2e1261ef
[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