summaryrefslogtreecommitdiffstats
path: root/Kconfig
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2011-05-20 05:19:11 +0200
committerJames Bottomley <jbottomley@parallels.com>2011-05-24 19:00:10 +0200
commitf436677262a5b524ac87675014c6d4e8ee153029 (patch)
treec3ab2fb111163ac52eb4999b83d3063ca4fca718 /Kconfig
parent[SCSI] target: Fix interrupt context bug with stats_lock and core_tmr_alloc_req (diff)
downloadlinux-f436677262a5b524ac87675014c6d4e8ee153029.tar.xz
linux-f436677262a5b524ac87675014c6d4e8ee153029.zip
[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>
Diffstat (limited to 'Kconfig')
0 files changed, 0 insertions, 0 deletions