aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/libfc/fc_exch.c2
-rw-r--r--include/scsi/fc_frame.h3
-rw-r--r--include/scsi/libfc.h2
3 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
index 104e0fba7c43..61eabd3ce436 100644
--- a/drivers/scsi/libfc/fc_exch.c
+++ b/drivers/scsi/libfc/fc_exch.c
@@ -464,6 +464,7 @@ static int fc_seq_send(struct fc_lport *lport, struct fc_seq *sp,
464 464
465 f_ctl = ntoh24(fh->fh_f_ctl); 465 f_ctl = ntoh24(fh->fh_f_ctl);
466 fc_exch_setup_hdr(ep, fp, f_ctl); 466 fc_exch_setup_hdr(ep, fp, f_ctl);
467 fr_encaps(fp) = ep->encaps;
467 468
468 /* 469 /*
469 * update sequence count if this frame is carrying 470 * update sequence count if this frame is carrying
@@ -1259,6 +1260,7 @@ static void fc_exch_recv_req(struct fc_lport *lport, struct fc_exch_mgr *mp,
1259 sp = fr_seq(fp); /* sequence will be held */ 1260 sp = fr_seq(fp); /* sequence will be held */
1260 ep = fc_seq_exch(sp); 1261 ep = fc_seq_exch(sp);
1261 fc_seq_send_ack(sp, fp); 1262 fc_seq_send_ack(sp, fp);
1263 ep->encaps = fr_encaps(fp);
1262 1264
1263 /* 1265 /*
1264 * Call the receive function. 1266 * Call the receive function.
diff --git a/include/scsi/fc_frame.h b/include/scsi/fc_frame.h
index 15427fab8a57..29dd97d5b53a 100644
--- a/include/scsi/fc_frame.h
+++ b/include/scsi/fc_frame.h
@@ -51,6 +51,7 @@
51#define fr_sof(fp) (fr_cb(fp)->fr_sof) 51#define fr_sof(fp) (fr_cb(fp)->fr_sof)
52#define fr_eof(fp) (fr_cb(fp)->fr_eof) 52#define fr_eof(fp) (fr_cb(fp)->fr_eof)
53#define fr_flags(fp) (fr_cb(fp)->fr_flags) 53#define fr_flags(fp) (fr_cb(fp)->fr_flags)
54#define fr_encaps(fp) (fr_cb(fp)->fr_encaps)
54#define fr_max_payload(fp) (fr_cb(fp)->fr_max_payload) 55#define fr_max_payload(fp) (fr_cb(fp)->fr_max_payload)
55#define fr_fsp(fp) (fr_cb(fp)->fr_fsp) 56#define fr_fsp(fp) (fr_cb(fp)->fr_fsp)
56#define fr_crc(fp) (fr_cb(fp)->fr_crc) 57#define fr_crc(fp) (fr_cb(fp)->fr_crc)
@@ -69,6 +70,7 @@ struct fcoe_rcv_info {
69 u8 fr_sof; /* start of frame delimiter */ 70 u8 fr_sof; /* start of frame delimiter */
70 u8 fr_eof; /* end of frame delimiter */ 71 u8 fr_eof; /* end of frame delimiter */
71 u8 fr_flags; /* flags - see below */ 72 u8 fr_flags; /* flags - see below */
73 u8 fr_encaps; /* LLD encapsulation info (e.g. FIP) */
72 u8 granted_mac[ETH_ALEN]; /* FCoE MAC address */ 74 u8 granted_mac[ETH_ALEN]; /* FCoE MAC address */
73}; 75};
74 76
@@ -97,6 +99,7 @@ static inline void fc_frame_init(struct fc_frame *fp)
97 fr_dev(fp) = NULL; 99 fr_dev(fp) = NULL;
98 fr_seq(fp) = NULL; 100 fr_seq(fp) = NULL;
99 fr_flags(fp) = 0; 101 fr_flags(fp) = 0;
102 fr_encaps(fp) = 0;
100} 103}
101 104
102struct fc_frame *fc_frame_alloc_fill(struct fc_lport *, size_t payload_len); 105struct fc_frame *fc_frame_alloc_fill(struct fc_lport *, size_t payload_len);
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
index 24b91c922055..8d297f9a0a47 100644
--- a/include/scsi/libfc.h
+++ b/include/scsi/libfc.h
@@ -412,6 +412,7 @@ struct fc_seq {
412 * @esb_stat: ESB exchange status 412 * @esb_stat: ESB exchange status
413 * @r_a_tov: Resouce allocation time out value (in msecs) 413 * @r_a_tov: Resouce allocation time out value (in msecs)
414 * @seq_id: The next sequence ID to use 414 * @seq_id: The next sequence ID to use
415 * @encaps: encapsulation information for lower-level driver
415 * @f_ctl: F_CTL flags for the sequence 416 * @f_ctl: F_CTL flags for the sequence
416 * @fh_type: The frame type 417 * @fh_type: The frame type
417 * @class: The class of service 418 * @class: The class of service
@@ -443,6 +444,7 @@ struct fc_exch {
443 u32 esb_stat; 444 u32 esb_stat;
444 u32 r_a_tov; 445 u32 r_a_tov;
445 u8 seq_id; 446 u8 seq_id;
447 u8 encaps;
446 u32 f_ctl; 448 u32 f_ctl;
447 u8 fh_type; 449 u8 fh_type;
448 enum fc_class class; 450 enum fc_class class;