mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
scsi: bnx2fc: Pass tgt directly to several functions
Pass the tgt pointer directly to several functions. This patch prepares for enabling lock context annotation. No functionality has been changed. Signed-off-by: Bart Van Assche <bvanassche@acm.org> Link: https://patch.msgid.link/e0073d5095f58569c8c16217f9b2fabd44762ad9.1790360262.git.bvanassche@acm.org Signed-off-by: Martin K. Petersen (Oracle) <mkp@kernel.org>
This commit is contained in:
parent
d9a376f43c
commit
32f9cdb45b
|
|
@ -423,7 +423,8 @@ struct bnx2fc_cmd {
|
|||
struct scsi_cmnd *sc_cmd;
|
||||
struct bnx2fc_cmd_mgr *cmd_mgr;
|
||||
struct bnx2fc_mp_req mp_req;
|
||||
void (*cb_func)(struct bnx2fc_els_cb_arg *cb_arg);
|
||||
void (*cb_func)(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_els_cb_arg *cb_arg);
|
||||
struct bnx2fc_els_cb_arg *cb_arg;
|
||||
struct delayed_work timeout_work; /* timer for ULP timeouts */
|
||||
struct completion abts_done;
|
||||
|
|
@ -592,7 +593,8 @@ int bnx2fc_send_stat_req(struct bnx2fc_hba *hba);
|
|||
int bnx2fc_post_io_req(struct bnx2fc_rport *tgt, struct bnx2fc_cmd *io_req);
|
||||
int bnx2fc_send_rec(struct bnx2fc_cmd *orig_io_req);
|
||||
int bnx2fc_send_srr(struct bnx2fc_cmd *orig_io_req, u32 offset, u8 r_ctl);
|
||||
void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_cmd *seq_clnup_req,
|
||||
void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_cmd *seq_clnp_req,
|
||||
struct fcoe_task_ctx_entry *task,
|
||||
u8 rx_state);
|
||||
int bnx2fc_initiate_seq_cleanup(struct bnx2fc_cmd *orig_io_req, u32 offset,
|
||||
|
|
|
|||
|
|
@ -22,10 +22,12 @@ static void bnx2fc_flogi_resp(struct fc_seq *seq, struct fc_frame *fp,
|
|||
void *arg);
|
||||
static int bnx2fc_initiate_els(struct bnx2fc_rport *tgt, unsigned int op,
|
||||
void *data, u32 data_len,
|
||||
void (*cb_func)(struct bnx2fc_els_cb_arg *cb_arg),
|
||||
void (*cb_func)(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_els_cb_arg *cb_arg),
|
||||
struct bnx2fc_els_cb_arg *cb_arg, u32 timer_msec);
|
||||
|
||||
static void bnx2fc_rrq_compl(struct bnx2fc_els_cb_arg *cb_arg)
|
||||
static void bnx2fc_rrq_compl(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_els_cb_arg *cb_arg)
|
||||
{
|
||||
struct bnx2fc_cmd *orig_io_req;
|
||||
struct bnx2fc_cmd *rrq_req;
|
||||
|
|
@ -119,10 +121,10 @@ int bnx2fc_send_rrq(struct bnx2fc_cmd *aborted_io_req)
|
|||
return rc;
|
||||
}
|
||||
|
||||
static void bnx2fc_l2_els_compl(struct bnx2fc_els_cb_arg *cb_arg)
|
||||
static void bnx2fc_l2_els_compl(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_els_cb_arg *cb_arg)
|
||||
{
|
||||
struct bnx2fc_cmd *els_req;
|
||||
struct bnx2fc_rport *tgt;
|
||||
struct bnx2fc_mp_req *mp_req;
|
||||
struct fc_frame_header *fc_hdr;
|
||||
unsigned char *buf;
|
||||
|
|
@ -150,7 +152,6 @@ static void bnx2fc_l2_els_compl(struct bnx2fc_els_cb_arg *cb_arg)
|
|||
goto free_arg;
|
||||
}
|
||||
|
||||
tgt = els_req->tgt;
|
||||
mp_req = &(els_req->mp_req);
|
||||
fc_hdr = &(mp_req->resp_fc_hdr);
|
||||
resp_len = mp_req->resp_len;
|
||||
|
|
@ -262,7 +263,8 @@ int bnx2fc_send_rls(struct bnx2fc_rport *tgt, struct fc_frame *fp)
|
|||
return rc;
|
||||
}
|
||||
|
||||
static void bnx2fc_srr_compl(struct bnx2fc_els_cb_arg *cb_arg)
|
||||
static void bnx2fc_srr_compl(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_els_cb_arg *cb_arg)
|
||||
{
|
||||
struct bnx2fc_mp_req *mp_req;
|
||||
struct fc_frame_header *fc_hdr, *fh;
|
||||
|
|
@ -296,7 +298,6 @@ static void bnx2fc_srr_compl(struct bnx2fc_els_cb_arg *cb_arg)
|
|||
}
|
||||
orig_io_req->srr_retry++;
|
||||
if (orig_io_req->srr_retry <= SRR_RETRY_COUNT) {
|
||||
struct bnx2fc_rport *tgt = orig_io_req->tgt;
|
||||
spin_unlock_bh(&tgt->tgt_lock);
|
||||
rc = bnx2fc_send_srr(orig_io_req,
|
||||
orig_io_req->srr_offset,
|
||||
|
|
@ -372,7 +373,8 @@ static void bnx2fc_srr_compl(struct bnx2fc_els_cb_arg *cb_arg)
|
|||
kref_put(&orig_io_req->refcount, bnx2fc_cmd_release);
|
||||
}
|
||||
|
||||
static void bnx2fc_rec_compl(struct bnx2fc_els_cb_arg *cb_arg)
|
||||
static void bnx2fc_rec_compl(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_els_cb_arg *cb_arg)
|
||||
{
|
||||
struct bnx2fc_cmd *orig_io_req, *new_io_req;
|
||||
struct bnx2fc_cmd *rec_req;
|
||||
|
|
@ -380,7 +382,6 @@ static void bnx2fc_rec_compl(struct bnx2fc_els_cb_arg *cb_arg)
|
|||
struct fc_frame_header *fc_hdr, *fh;
|
||||
struct fc_els_ls_rjt *rjt;
|
||||
struct fc_els_rec_acc *acc;
|
||||
struct bnx2fc_rport *tgt;
|
||||
struct fcoe_err_report_entry *err_entry;
|
||||
struct scsi_cmnd *sc_cmd;
|
||||
enum fc_rctl r_ctl;
|
||||
|
|
@ -399,7 +400,6 @@ static void bnx2fc_rec_compl(struct bnx2fc_els_cb_arg *cb_arg)
|
|||
rec_req = cb_arg->io_req;
|
||||
orig_io_req = cb_arg->aborted_io_req;
|
||||
BNX2FC_IO_DBG(rec_req, "rec_compl: orig xid = 0x%x", orig_io_req->xid);
|
||||
tgt = orig_io_req->tgt;
|
||||
|
||||
/* Handle REC timeout case */
|
||||
if (test_and_clear_bit(BNX2FC_FLAG_ELS_TIMEOUT, &rec_req->req_flags)) {
|
||||
|
|
@ -669,7 +669,8 @@ int bnx2fc_send_srr(struct bnx2fc_cmd *orig_io_req, u32 offset, u8 r_ctl)
|
|||
|
||||
static int bnx2fc_initiate_els(struct bnx2fc_rport *tgt, unsigned int op,
|
||||
void *data, u32 data_len,
|
||||
void (*cb_func)(struct bnx2fc_els_cb_arg *cb_arg),
|
||||
void (*cb_func)(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_els_cb_arg *cb_arg),
|
||||
struct bnx2fc_els_cb_arg *cb_arg, u32 timer_msec)
|
||||
{
|
||||
struct fcoe_port *port = tgt->port;
|
||||
|
|
@ -847,7 +848,7 @@ void bnx2fc_process_els_compl(struct bnx2fc_cmd *els_req,
|
|||
|
||||
/* Parse ELS response */
|
||||
if ((els_req->cb_func) && (els_req->cb_arg)) {
|
||||
els_req->cb_func(els_req->cb_arg);
|
||||
els_req->cb_func(els_req->tgt, els_req->cb_arg);
|
||||
els_req->cb_arg = NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -943,7 +943,7 @@ void bnx2fc_process_cq_compl(struct bnx2fc_rport *tgt, u16 wqe,
|
|||
case BNX2FC_SEQ_CLEANUP:
|
||||
BNX2FC_IO_DBG(io_req, "cq_compl(0x%x) - seq cleanup resp\n",
|
||||
io_req->xid);
|
||||
bnx2fc_process_seq_cleanup_compl(io_req, task, rx_state);
|
||||
bnx2fc_process_seq_cleanup_compl(tgt, io_req, task, rx_state);
|
||||
kref_put(&io_req->refcount, bnx2fc_cmd_release);
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ static void bnx2fc_cmd_timeout(struct work_struct *work)
|
|||
set_bit(BNX2FC_FLAG_ELS_TIMEOUT, &io_req->req_flags);
|
||||
|
||||
if ((io_req->cb_func) && (io_req->cb_arg)) {
|
||||
io_req->cb_func(io_req->cb_arg);
|
||||
io_req->cb_func(tgt, io_req->cb_arg);
|
||||
io_req->cb_arg = NULL;
|
||||
}
|
||||
}
|
||||
|
|
@ -1079,10 +1079,10 @@ int bnx2fc_eh_device_reset(struct scsi_cmnd *sc_cmd)
|
|||
FCP_TMF_LUN_RESET);
|
||||
}
|
||||
|
||||
static int bnx2fc_abts_cleanup(struct bnx2fc_cmd *io_req)
|
||||
static int bnx2fc_abts_cleanup(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_cmd *io_req)
|
||||
__must_hold(&tgt->tgt_lock)
|
||||
{
|
||||
struct bnx2fc_rport *tgt = io_req->tgt;
|
||||
unsigned int time_left;
|
||||
|
||||
init_completion(&io_req->cleanup_done);
|
||||
|
|
@ -1212,7 +1212,7 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
|
|||
* cleanup the command and return that I/O was successfully
|
||||
* aborted.
|
||||
*/
|
||||
bnx2fc_abts_cleanup(io_req);
|
||||
bnx2fc_abts_cleanup(tgt, io_req);
|
||||
/* This only occurs when an task abort was requested while ABTS
|
||||
is in progress. Setting the IO_CLEANUP flag will skip the
|
||||
RRQ process in the case when the fw generated SCSI_CMD cmpl
|
||||
|
|
@ -1262,7 +1262,7 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
|
|||
* Cleanup firmware residuals before returning control back
|
||||
* to SCSI ML.
|
||||
*/
|
||||
rc = bnx2fc_abts_cleanup(io_req);
|
||||
rc = bnx2fc_abts_cleanup(tgt, io_req);
|
||||
goto done;
|
||||
} else {
|
||||
/*
|
||||
|
|
@ -1282,7 +1282,8 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd)
|
|||
return rc;
|
||||
}
|
||||
|
||||
void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_cmd *seq_clnp_req,
|
||||
void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_rport *tgt,
|
||||
struct bnx2fc_cmd *seq_clnp_req,
|
||||
struct fcoe_task_ctx_entry *task,
|
||||
u8 rx_state)
|
||||
{
|
||||
|
|
@ -1291,7 +1292,6 @@ void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_cmd *seq_clnp_req,
|
|||
u32 offset = cb_arg->offset;
|
||||
enum fc_rctl r_ctl = cb_arg->r_ctl;
|
||||
int rc = 0;
|
||||
struct bnx2fc_rport *tgt = orig_io_req->tgt;
|
||||
|
||||
BNX2FC_IO_DBG(orig_io_req, "Entered process_cleanup_compl xid = 0x%x"
|
||||
"cmd_type = %d\n",
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ void bnx2fc_flush_active_ios(struct bnx2fc_rport *tgt)
|
|||
bnx2fc_cmd_release); /* drop timer hold */
|
||||
|
||||
if ((io_req->cb_func) && (io_req->cb_arg)) {
|
||||
io_req->cb_func(io_req->cb_arg);
|
||||
io_req->cb_func(tgt, io_req->cb_arg);
|
||||
io_req->cb_arg = NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user