forked from luck/tmp_suning_uos_patched
f436677262
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> |
||
---|---|---|
.. | ||
configfs_macros.h | ||
target_core_base.h | ||
target_core_configfs.h | ||
target_core_device.h | ||
target_core_fabric_configfs.h | ||
target_core_fabric_lib.h | ||
target_core_fabric_ops.h | ||
target_core_tmr.h | ||
target_core_tpg.h | ||
target_core_transport.h |