Commit 3151d069 authored by Nicholas Bellinger's avatar Nicholas Bellinger

target: Remove core TRANSPORT_FREE_CMD_INTR usage

This patch drops TRANSPORT_FREE_CMD_INTR usage from target core, which
includes the removal of transport_generic_free_cmd_intr() symbol,
TRANSPORT_FREE_CMD_INTR usage in transport_processing_thread(), and
special case LUN_RESET handling to skip TRANSPORT_FREE_CMD_INTR processing
in core_tmr_drain_cmd_list().  We now expect that fabric modules will
use an internal workqueue to provide process context when releasing
se_cmd descriptor resources via transport_generic_free_cmd().
Reported-by: default avatarChristoph Hellwig <hch@lst.de>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Roland Dreier <roland@purestorage.com>
Cc: Madhuranath Iyengar <mni@risingtidesystems.com>
Signed-off-by: default avatarNicholas Bellinger <nab@risingtidesystems.com>
parent 88dd9e26
...@@ -329,16 +329,6 @@ static void core_tmr_drain_cmd_list( ...@@ -329,16 +329,6 @@ static void core_tmr_drain_cmd_list(
*/ */
if (prout_cmd == cmd) if (prout_cmd == cmd)
continue; continue;
/*
* Skip direct processing of TRANSPORT_FREE_CMD_INTR for
* HW target mode fabrics.
*/
spin_lock(&cmd->t_state_lock);
if (cmd->t_state == TRANSPORT_FREE_CMD_INTR) {
spin_unlock(&cmd->t_state_lock);
continue;
}
spin_unlock(&cmd->t_state_lock);
atomic_set(&cmd->t_transport_queue_active, 0); atomic_set(&cmd->t_transport_queue_active, 0);
atomic_dec(&qobj->queue_cnt); atomic_dec(&qobj->queue_cnt);
......
...@@ -1718,13 +1718,6 @@ int transport_generic_handle_tmr( ...@@ -1718,13 +1718,6 @@ int transport_generic_handle_tmr(
} }
EXPORT_SYMBOL(transport_generic_handle_tmr); EXPORT_SYMBOL(transport_generic_handle_tmr);
void transport_generic_free_cmd_intr(
struct se_cmd *cmd)
{
transport_add_cmd_to_queue(cmd, TRANSPORT_FREE_CMD_INTR, false);
}
EXPORT_SYMBOL(transport_generic_free_cmd_intr);
/* /*
* If the task is active, request it to be stopped and sleep until it * If the task is active, request it to be stopped and sleep until it
* has completed. * has completed.
...@@ -4597,9 +4590,6 @@ static int transport_processing_thread(void *param) ...@@ -4597,9 +4590,6 @@ static int transport_processing_thread(void *param)
case TRANSPORT_PROCESS_WRITE: case TRANSPORT_PROCESS_WRITE:
transport_generic_process_write(cmd); transport_generic_process_write(cmd);
break; break;
case TRANSPORT_FREE_CMD_INTR:
transport_generic_free_cmd(cmd, 0);
break;
case TRANSPORT_PROCESS_TMR: case TRANSPORT_PROCESS_TMR:
transport_generic_do_tmr(cmd); transport_generic_do_tmr(cmd);
break; break;
......
...@@ -89,7 +89,6 @@ enum transport_state_table { ...@@ -89,7 +89,6 @@ enum transport_state_table {
TRANSPORT_PROCESS_TMR = 9, TRANSPORT_PROCESS_TMR = 9,
TRANSPORT_ISTATE_PROCESSING = 11, TRANSPORT_ISTATE_PROCESSING = 11,
TRANSPORT_NEW_CMD_MAP = 16, TRANSPORT_NEW_CMD_MAP = 16,
TRANSPORT_FREE_CMD_INTR = 17,
TRANSPORT_COMPLETE_QF_WP = 18, TRANSPORT_COMPLETE_QF_WP = 18,
TRANSPORT_COMPLETE_QF_OK = 19, TRANSPORT_COMPLETE_QF_OK = 19,
}; };
......
...@@ -160,7 +160,6 @@ extern int transport_generic_handle_cdb_map(struct se_cmd *); ...@@ -160,7 +160,6 @@ extern int transport_generic_handle_cdb_map(struct se_cmd *);
extern int transport_generic_handle_data(struct se_cmd *); extern int transport_generic_handle_data(struct se_cmd *);
extern void transport_new_cmd_failure(struct se_cmd *); extern void transport_new_cmd_failure(struct se_cmd *);
extern int transport_generic_handle_tmr(struct se_cmd *); extern int transport_generic_handle_tmr(struct se_cmd *);
extern void transport_generic_free_cmd_intr(struct se_cmd *);
extern bool target_stop_task(struct se_task *task, unsigned long *flags); extern bool target_stop_task(struct se_task *task, unsigned long *flags);
extern int transport_generic_map_mem_to_cmd(struct se_cmd *cmd, struct scatterlist *, u32, extern int transport_generic_map_mem_to_cmd(struct se_cmd *cmd, struct scatterlist *, u32,
struct scatterlist *, u32); struct scatterlist *, u32);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment