linux/include
Nicholas Bellinger f436677262 [SCSI] target: Fix bug with task_sg chained transport_free_dev_tasks release
This patch addresses a bug in the target core release path for HW
operation where transport_free_dev_tasks() was incorrectly being called
from transport_lun_remove_cmd() while releasing a se_cmd reference and
calling struct target_core_fabric_ops->queue_data_in().

This would result in a OOPs with HW target mode when the release of
se_task->task_sg[] would happen before pci_unmap_sg() can be called in
HW target mode fabric module code.  This patch addresses the issue by
moving transport_free_dev_tasks() from transport_lun_remove_cmd() into
transport_generic_free_cmd(), and adding TRANSPORT_FREE_CMD_INTR and
transport_generic_free_cmd_intr() to allow se_cmd descriptor release
to happen fromfrom within transport_processing_thread() process context
when release of se_cmd is not possible from HW interrupt context.

Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Cc: stable@kernel.org
Signed-off-by: James Bottomley <jbottomley@parallels.com>
2011-05-24 13:00:10 -04:00
..
acpi Fix common misspellings 2011-03-31 11:26:23 -03:00
asm-generic sanitize <linux/prefetch.h> usage 2011-05-20 12:50:29 -07:00
crypto
drm drm: Take lock around probes for drm_fb_helper_hotplug_event 2011-05-16 12:01:43 +10:00
keys libceph: Create a new key type "ceph". 2011-03-29 12:11:24 -07:00
linux Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2011-05-23 21:12:49 -07:00
math-emu
media [media] rc: add locking to fix register/show race 2011-05-20 16:21:22 -03:00
mtd
net Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-05-23 09:12:26 -07:00
pcmcia
rdma Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
rxrpc Fix common misspellings 2011-03-31 11:26:23 -03:00
scsi scsi: remove performance regression due to async queue run 2011-05-17 11:04:44 +02:00
sound Merge branch 'topic/asoc' into for-linus 2011-05-22 10:01:33 +02:00
staging [media] Altera FPGA firmware download module 2011-03-21 20:32:16 -03:00
target [SCSI] target: Fix bug with task_sg chained transport_free_dev_tasks release 2011-05-24 13:00:10 -04:00
trace Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 18:14:34 -07:00
video Merge branch 'master' into for-next 2011-04-26 10:22:59 +02:00
xen xen/irq: Export 'xen_pirq_from_irq' function. 2011-04-14 11:17:55 -04:00
Kbuild