diff options
author | Bhanu Prakash Gollapudi <bprakash@broadcom.com> | 2011-07-27 14:32:06 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-07-28 03:45:19 -0400 |
commit | 744469542951d32979a8dcb1dbed560bfed1745e (patch) | |
tree | d6be8757d3804b19fcc7cd498e215d8a232d2904 /drivers/scsi/bnx2fc/bnx2fc.h | |
parent | 6c5a7ce4f176b641fd11e59be4df31ee3e6202dd (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.h | 12 |
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 */ |
145 | extern struct fcoe_percpu_s bnx2fc_global; | 148 | extern 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 | ||
445 | struct bnx2fc_cmd *bnx2fc_cmd_alloc(struct bnx2fc_rport *tgt); | ||
435 | struct bnx2fc_cmd *bnx2fc_elstm_alloc(struct bnx2fc_rport *tgt, int type); | 446 | struct bnx2fc_cmd *bnx2fc_elstm_alloc(struct bnx2fc_rport *tgt, int type); |
436 | void bnx2fc_cmd_release(struct kref *ref); | 447 | void bnx2fc_cmd_release(struct kref *ref); |
437 | int bnx2fc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc_cmd); | 448 | int 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); |
524 | int bnx2fc_send_stat_req(struct bnx2fc_hba *hba); | 535 | int bnx2fc_send_stat_req(struct bnx2fc_hba *hba); |
536 | int bnx2fc_post_io_req(struct bnx2fc_rport *tgt, struct bnx2fc_cmd *io_req); | ||
525 | int bnx2fc_send_rec(struct bnx2fc_cmd *orig_io_req); | 537 | int bnx2fc_send_rec(struct bnx2fc_cmd *orig_io_req); |
526 | int bnx2fc_send_srr(struct bnx2fc_cmd *orig_io_req, u32 offset, u8 r_ctl); | 538 | int bnx2fc_send_srr(struct bnx2fc_cmd *orig_io_req, u32 offset, u8 r_ctl); |
527 | void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_cmd *seq_clnup_req, | 539 | void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_cmd *seq_clnup_req, |