aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bnx2fc/bnx2fc.h
diff options
context:
space:
mode:
authorBhanu Prakash Gollapudi <bprakash@broadcom.com>2011-07-27 14:32:06 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-07-28 03:45:19 -0400
commit744469542951d32979a8dcb1dbed560bfed1745e (patch)
treed6be8757d3804b19fcc7cd498e215d8a232d2904 /drivers/scsi/bnx2fc/bnx2fc.h
parent6c5a7ce4f176b641fd11e59be4df31ee3e6202dd (diff)
[SCSI] bnx2fc: REC/SRR link service request and response handling
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bnx2fc/bnx2fc.h')
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h
index 45d5391229e2..cd506c0ee2f6 100644
--- a/drivers/scsi/bnx2fc/bnx2fc.h
+++ b/drivers/scsi/bnx2fc/bnx2fc.h
@@ -141,6 +141,9 @@
141 141
142#define BNX2FC_RNID_HBA 0x7 142#define BNX2FC_RNID_HBA 0x7
143 143
144#define SRR_RETRY_COUNT 5
145#define REC_RETRY_COUNT 1
146
144/* bnx2fc driver uses only one instance of fcoe_percpu_s */ 147/* bnx2fc driver uses only one instance of fcoe_percpu_s */
145extern struct fcoe_percpu_s bnx2fc_global; 148extern struct fcoe_percpu_s bnx2fc_global;
146 149
@@ -386,6 +389,7 @@ struct bnx2fc_cmd {
386 struct completion tm_done; 389 struct completion tm_done;
387 int wait_for_comp; 390 int wait_for_comp;
388 u16 xid; 391 u16 xid;
392 struct fcoe_err_report_entry err_entry;
389 struct fcoe_task_ctx_entry *task; 393 struct fcoe_task_ctx_entry *task;
390 struct io_bdt *bd_tbl; 394 struct io_bdt *bd_tbl;
391 struct fcp_rsp *rsp; 395 struct fcp_rsp *rsp;
@@ -402,6 +406,12 @@ struct bnx2fc_cmd {
402#define BNX2FC_FLAG_IO_COMPL 0x9 406#define BNX2FC_FLAG_IO_COMPL 0x9
403#define BNX2FC_FLAG_ELS_DONE 0xa 407#define BNX2FC_FLAG_ELS_DONE 0xa
404#define BNX2FC_FLAG_ELS_TIMEOUT 0xb 408#define BNX2FC_FLAG_ELS_TIMEOUT 0xb
409#define BNX2FC_FLAG_CMD_LOST 0xc
410#define BNX2FC_FLAG_SRR_SENT 0xd
411 u8 rec_retry;
412 u8 srr_retry;
413 u32 srr_offset;
414 u8 srr_rctl;
405 u32 fcp_resid; 415 u32 fcp_resid;
406 u32 fcp_rsp_len; 416 u32 fcp_rsp_len;
407 u32 fcp_sns_len; 417 u32 fcp_sns_len;
@@ -432,6 +442,7 @@ struct bnx2fc_unsol_els {
432 442
433 443
434 444
445struct bnx2fc_cmd *bnx2fc_cmd_alloc(struct bnx2fc_rport *tgt);
435struct bnx2fc_cmd *bnx2fc_elstm_alloc(struct bnx2fc_rport *tgt, int type); 446struct bnx2fc_cmd *bnx2fc_elstm_alloc(struct bnx2fc_rport *tgt, int type);
436void bnx2fc_cmd_release(struct kref *ref); 447void bnx2fc_cmd_release(struct kref *ref);
437int bnx2fc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc_cmd); 448int bnx2fc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc_cmd);
@@ -522,6 +533,7 @@ void bnx2fc_process_l2_frame_compl(struct bnx2fc_rport *tgt,
522 unsigned char *buf, 533 unsigned char *buf,
523 u32 frame_len, u16 l2_oxid); 534 u32 frame_len, u16 l2_oxid);
524int bnx2fc_send_stat_req(struct bnx2fc_hba *hba); 535int bnx2fc_send_stat_req(struct bnx2fc_hba *hba);
536int bnx2fc_post_io_req(struct bnx2fc_rport *tgt, struct bnx2fc_cmd *io_req);
525int bnx2fc_send_rec(struct bnx2fc_cmd *orig_io_req); 537int bnx2fc_send_rec(struct bnx2fc_cmd *orig_io_req);
526int bnx2fc_send_srr(struct bnx2fc_cmd *orig_io_req, u32 offset, u8 r_ctl); 538int bnx2fc_send_srr(struct bnx2fc_cmd *orig_io_req, u32 offset, u8 r_ctl);
527void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_cmd *seq_clnup_req, 539void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_cmd *seq_clnup_req,