1
linux/drivers/target
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
..
loopback [SCSI] tcm_loop: Add multi-fabric Linux/SCSI LLD fabric module 2011-03-23 13:10:33 -05:00
tcm_fc [SCSI] tcm_fc: Adding FC_FC4 provider (tcm_fc) for FCoE target (TCM - target core) support 2011-05-17 10:52:46 +04:00
Kconfig [SCSI] tcm_fc: Adding FC_FC4 provider (tcm_fc) for FCoE target (TCM - target core) support 2011-05-17 10:52:46 +04:00
Makefile [SCSI] tcm_fc: Adding FC_FC4 provider (tcm_fc) for FCoE target (TCM - target core) support 2011-05-17 10:52:46 +04:00
target_core_alua.c Merge branch 'master' into for-next 2011-04-26 10:22:59 +02:00
target_core_alua.h
target_core_cdb.c
target_core_configfs.c [SCSI] target: add initial statistics 2011-03-23 11:36:50 -05:00
target_core_device.c [SCSI] target: Fix interrupt context bug with stats_lock and core_tmr_alloc_req 2011-05-24 12:58:17 -04:00
target_core_fabric_configfs.c [SCSI] target: add initial statistics 2011-03-23 11:36:50 -05:00
target_core_fabric_lib.c Fix common misspellings 2011-03-31 11:26:23 -03:00
target_core_file.c Fix common misspellings 2011-03-31 11:26:23 -03:00
target_core_file.h
target_core_hba.c [SCSI] target: Remove unnecessary hba_dev_list walk and se_clear_dev_ports legacy code 2011-03-23 11:36:27 -05:00
target_core_hba.h
target_core_iblock.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2011-03-25 21:06:13 -07:00
target_core_iblock.h
target_core_pr.c Fix common misspellings 2011-03-31 11:26:23 -03:00
target_core_pr.h
target_core_pscsi.c [SCSI] target: Minor sparse warning fixes and annotations 2011-03-23 11:36:29 -05:00
target_core_pscsi.h
target_core_rd.c [SCSI] target: Convert rd_build_device_space() to use errno 2011-03-23 11:36:32 -05:00
target_core_rd.h [SCSI] target: Minor sparse warning fixes and annotations 2011-03-23 11:36:29 -05:00
target_core_scdb.c
target_core_scdb.h
target_core_stat.c [SCSI] target: add initial statistics 2011-03-23 11:36:50 -05:00
target_core_stat.h [SCSI] target: add initial statistics 2011-03-23 11:36:50 -05:00
target_core_tmr.c [SCSI] target: Fix interrupt context bug with stats_lock and core_tmr_alloc_req 2011-05-24 12:58:17 -04:00
target_core_tpg.c
target_core_transport.c [SCSI] target: Fix bug with task_sg chained transport_free_dev_tasks release 2011-05-24 13:00:10 -04:00
target_core_ua.c Fix common misspellings 2011-03-31 11:26:23 -03:00
target_core_ua.h