scsi: libfc: Replace ->seq_set_resp callback with direct function call
The ->seq_set_resp callback only ever had one implementation, so call it directly and drop the callback. Signed-off-by: Hannes Reinecke <hare@suse.com> Acked-by: Johannes Thumshirn <jth@kernel.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
c6865b30be
commit
f1d61e6e68
|
@ -602,10 +602,9 @@ EXPORT_SYMBOL(fc_seq_start_next);
|
||||||
*
|
*
|
||||||
* Note: May sleep if invoked from outside a response handler.
|
* Note: May sleep if invoked from outside a response handler.
|
||||||
*/
|
*/
|
||||||
static void fc_seq_set_resp(struct fc_seq *sp,
|
void fc_seq_set_resp(struct fc_seq *sp,
|
||||||
void (*resp)(struct fc_seq *, struct fc_frame *,
|
void (*resp)(struct fc_seq *, struct fc_frame *, void *),
|
||||||
void *),
|
void *arg)
|
||||||
void *arg)
|
|
||||||
{
|
{
|
||||||
struct fc_exch *ep = fc_seq_exch(sp);
|
struct fc_exch *ep = fc_seq_exch(sp);
|
||||||
DEFINE_WAIT(wait);
|
DEFINE_WAIT(wait);
|
||||||
|
@ -624,6 +623,7 @@ static void fc_seq_set_resp(struct fc_seq *sp,
|
||||||
ep->arg = arg;
|
ep->arg = arg;
|
||||||
spin_unlock_bh(&ep->ex_lock);
|
spin_unlock_bh(&ep->ex_lock);
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(fc_seq_set_resp);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fc_exch_abort_locked() - Abort an exchange
|
* fc_exch_abort_locked() - Abort an exchange
|
||||||
|
@ -2650,9 +2650,6 @@ EXPORT_SYMBOL(fc_exch_recv);
|
||||||
*/
|
*/
|
||||||
int fc_exch_init(struct fc_lport *lport)
|
int fc_exch_init(struct fc_lport *lport)
|
||||||
{
|
{
|
||||||
if (!lport->tt.seq_set_resp)
|
|
||||||
lport->tt.seq_set_resp = fc_seq_set_resp;
|
|
||||||
|
|
||||||
if (!lport->tt.exch_mgr_reset)
|
if (!lport->tt.exch_mgr_reset)
|
||||||
lport->tt.exch_mgr_reset = fc_exch_mgr_reset;
|
lport->tt.exch_mgr_reset = fc_exch_mgr_reset;
|
||||||
|
|
||||||
|
|
|
@ -563,7 +563,7 @@ static void ft_send_work(struct work_struct *work)
|
||||||
task_attr = TCM_SIMPLE_TAG;
|
task_attr = TCM_SIMPLE_TAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
fc_seq_exch(cmd->seq)->lp->tt.seq_set_resp(cmd->seq, ft_recv_seq, cmd);
|
fc_seq_set_resp(cmd->seq, ft_recv_seq, cmd);
|
||||||
cmd->se_cmd.tag = fc_seq_exch(cmd->seq)->rxid;
|
cmd->se_cmd.tag = fc_seq_exch(cmd->seq)->rxid;
|
||||||
/*
|
/*
|
||||||
* Use a single se_cmd->cmd_kref as we expect to release se_cmd
|
* Use a single se_cmd->cmd_kref as we expect to release se_cmd
|
||||||
|
|
|
@ -514,16 +514,6 @@ struct libfc_function_template {
|
||||||
*/
|
*/
|
||||||
void (*get_lesb)(struct fc_lport *, struct fc_els_lesb *lesb);
|
void (*get_lesb)(struct fc_lport *, struct fc_els_lesb *lesb);
|
||||||
|
|
||||||
/*
|
|
||||||
* Set a response handler for the exchange of the sequence.
|
|
||||||
*
|
|
||||||
* STATUS: OPTIONAL
|
|
||||||
*/
|
|
||||||
void (*seq_set_resp)(struct fc_seq *sp,
|
|
||||||
void (*resp)(struct fc_seq *, struct fc_frame *,
|
|
||||||
void *),
|
|
||||||
void *arg);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Assign a sequence for an incoming request frame.
|
* Assign a sequence for an incoming request frame.
|
||||||
*
|
*
|
||||||
|
@ -1013,6 +1003,9 @@ struct fc_seq *fc_exch_seq_send(struct fc_lport *lport,
|
||||||
void fc_seq_els_rsp_send(struct fc_frame *, enum fc_els_cmd,
|
void fc_seq_els_rsp_send(struct fc_frame *, enum fc_els_cmd,
|
||||||
struct fc_seq_els_data *);
|
struct fc_seq_els_data *);
|
||||||
struct fc_seq *fc_seq_start_next(struct fc_seq *sp);
|
struct fc_seq *fc_seq_start_next(struct fc_seq *sp);
|
||||||
|
void fc_seq_set_resp(struct fc_seq *sp,
|
||||||
|
void (*resp)(struct fc_seq *, struct fc_frame *, void *),
|
||||||
|
void *arg);
|
||||||
struct fc_exch_mgr_anchor *fc_exch_mgr_add(struct fc_lport *,
|
struct fc_exch_mgr_anchor *fc_exch_mgr_add(struct fc_lport *,
|
||||||
struct fc_exch_mgr *,
|
struct fc_exch_mgr *,
|
||||||
bool (*match)(struct fc_frame *));
|
bool (*match)(struct fc_frame *));
|
||||||
|
|
Loading…
Reference in New Issue