hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/scsi/bnx2fc/bnx2fc.h
....@@ -66,7 +66,7 @@
6666 #include "bnx2fc_constants.h"
6767
6868 #define BNX2FC_NAME "bnx2fc"
69
-#define BNX2FC_VERSION "2.11.8"
69
+#define BNX2FC_VERSION "2.12.13"
7070
7171 #define PFX "bnx2fc: "
7272
....@@ -75,8 +75,9 @@
7575 #define BNX2X_DOORBELL_PCI_BAR 2
7676
7777 #define BNX2FC_MAX_BD_LEN 0xffff
78
-#define BNX2FC_BD_SPLIT_SZ 0x8000
79
-#define BNX2FC_MAX_BDS_PER_CMD 256
78
+#define BNX2FC_BD_SPLIT_SZ 0xffff
79
+#define BNX2FC_MAX_BDS_PER_CMD 255
80
+#define BNX2FC_FW_MAX_BDS_PER_CMD 255
8081
8182 #define BNX2FC_SQ_WQES_MAX 256
8283
....@@ -433,8 +434,10 @@
433434 void (*cb_func)(struct bnx2fc_els_cb_arg *cb_arg);
434435 struct bnx2fc_els_cb_arg *cb_arg;
435436 struct delayed_work timeout_work; /* timer for ULP timeouts */
436
- struct completion tm_done;
437
- int wait_for_comp;
437
+ struct completion abts_done;
438
+ struct completion cleanup_done;
439
+ int wait_for_abts_comp;
440
+ int wait_for_cleanup_comp;
438441 u16 xid;
439442 struct fcoe_err_report_entry err_entry;
440443 struct fcoe_task_ctx_entry *task;
....@@ -455,6 +458,7 @@
455458 #define BNX2FC_FLAG_ELS_TIMEOUT 0xb
456459 #define BNX2FC_FLAG_CMD_LOST 0xc
457460 #define BNX2FC_FLAG_SRR_SENT 0xd
461
+#define BNX2FC_FLAG_ISSUE_CLEANUP_REQ 0xe
458462 u8 rec_retry;
459463 u8 srr_retry;
460464 u32 srr_offset;
....@@ -478,7 +482,10 @@
478482 struct bnx2fc_work {
479483 struct list_head list;
480484 struct bnx2fc_rport *tgt;
485
+ struct fcoe_task_ctx_entry *task;
486
+ unsigned char rq_data[BNX2FC_RQ_BUF_SZ];
481487 u16 wqe;
488
+ u8 num_rq;
482489 };
483490 struct bnx2fc_unsol_els {
484491 struct fc_lport *lport;
....@@ -546,7 +553,7 @@
546553 enum fc_rport_event event);
547554 void bnx2fc_process_scsi_cmd_compl(struct bnx2fc_cmd *io_req,
548555 struct fcoe_task_ctx_entry *task,
549
- u8 num_rq);
556
+ u8 num_rq, unsigned char *rq_data);
550557 void bnx2fc_process_cleanup_compl(struct bnx2fc_cmd *io_req,
551558 struct fcoe_task_ctx_entry *task,
552559 u8 num_rq);
....@@ -555,7 +562,7 @@
555562 u8 num_rq);
556563 void bnx2fc_process_tm_compl(struct bnx2fc_cmd *io_req,
557564 struct fcoe_task_ctx_entry *task,
558
- u8 num_rq);
565
+ u8 num_rq, unsigned char *rq_data);
559566 void bnx2fc_process_els_compl(struct bnx2fc_cmd *els_req,
560567 struct fcoe_task_ctx_entry *task,
561568 u8 num_rq);
....@@ -573,7 +580,9 @@
573580 void *arg, u32 timeout);
574581 void bnx2fc_arm_cq(struct bnx2fc_rport *tgt);
575582 int bnx2fc_process_new_cqes(struct bnx2fc_rport *tgt);
576
-void bnx2fc_process_cq_compl(struct bnx2fc_rport *tgt, u16 wqe);
583
+void bnx2fc_process_cq_compl(struct bnx2fc_rport *tgt, u16 wqe,
584
+ unsigned char *rq_data, u8 num_rq,
585
+ struct fcoe_task_ctx_entry *task);
577586 struct bnx2fc_rport *bnx2fc_tgt_lookup(struct fcoe_port *port,
578587 u32 port_id);
579588 void bnx2fc_process_l2_frame_compl(struct bnx2fc_rport *tgt,