aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/scsi/libfc.h29
1 files changed, 16 insertions, 13 deletions
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
index 2473167464c2..a94d216d2207 100644
--- a/include/scsi/libfc.h
+++ b/include/scsi/libfc.h
@@ -76,11 +76,7 @@ do { \
76 (port_id), ##args)) 76 (port_id), ##args))
77 77
78#define FC_RPORT_DBG(rdata, fmt, args...) \ 78#define FC_RPORT_DBG(rdata, fmt, args...) \
79do { \ 79 FC_RPORT_ID_DBG((rdata)->local_port, (rdata)->ids.port_id, fmt, ##args)
80 struct fc_lport *lport = rdata->local_port; \
81 struct fc_rport *rport = PRIV_TO_RPORT(rdata); \
82 FC_RPORT_ID_DBG(lport, rport->port_id, fmt, ##args); \
83} while (0)
84 80
85#define FC_FCP_DBG(pkt, fmt, args...) \ 81#define FC_FCP_DBG(pkt, fmt, args...) \
86 FC_CHECK_LOGGING(FC_FCP_LOGGING, \ 82 FC_CHECK_LOGGING(FC_FCP_LOGGING, \
@@ -195,9 +191,13 @@ struct fc_rport_operations {
195/** 191/**
196 * struct fc_rport_libfc_priv - libfc internal information about a remote port 192 * struct fc_rport_libfc_priv - libfc internal information about a remote port
197 * @local_port: Fibre Channel host port instance 193 * @local_port: Fibre Channel host port instance
194 * @rport: transport remote port
195 * @kref: reference counter
198 * @rp_state: state tracks progress of PLOGI, PRLI, and RTV exchanges 196 * @rp_state: state tracks progress of PLOGI, PRLI, and RTV exchanges
197 * @ids: remote port identifiers and roles
199 * @flags: REC and RETRY supported flags 198 * @flags: REC and RETRY supported flags
200 * @max_seq: maximum number of concurrent sequences 199 * @max_seq: maximum number of concurrent sequences
200 * @maxframe_size: maximum frame size
201 * @retries: retry count in current state 201 * @retries: retry count in current state
202 * @e_d_tov: error detect timeout value (in msec) 202 * @e_d_tov: error detect timeout value (in msec)
203 * @r_a_tov: resource allocation timeout value (in msec) 203 * @r_a_tov: resource allocation timeout value (in msec)
@@ -207,11 +207,15 @@ struct fc_rport_operations {
207 */ 207 */
208struct fc_rport_libfc_priv { 208struct fc_rport_libfc_priv {
209 struct fc_lport *local_port; 209 struct fc_lport *local_port;
210 struct fc_rport *rport;
211 struct kref kref;
210 enum fc_rport_state rp_state; 212 enum fc_rport_state rp_state;
213 struct fc_rport_identifiers ids;
211 u16 flags; 214 u16 flags;
212 #define FC_RP_FLAGS_REC_SUPPORTED (1 << 0) 215 #define FC_RP_FLAGS_REC_SUPPORTED (1 << 0)
213 #define FC_RP_FLAGS_RETRY (1 << 1) 216 #define FC_RP_FLAGS_RETRY (1 << 1)
214 u16 max_seq; 217 u16 max_seq;
218 u16 maxframe_size;
215 unsigned int retries; 219 unsigned int retries;
216 unsigned int e_d_tov; 220 unsigned int e_d_tov;
217 unsigned int r_a_tov; 221 unsigned int r_a_tov;
@@ -222,19 +226,12 @@ struct fc_rport_libfc_priv {
222 struct fc_rport_operations *ops; 226 struct fc_rport_operations *ops;
223 struct list_head peers; 227 struct list_head peers;
224 struct work_struct event_work; 228 struct work_struct event_work;
229 u32 supported_classes;
225}; 230};
226 231
227#define PRIV_TO_RPORT(x) \
228 ((struct fc_rport *)((void *)(x) - sizeof(struct fc_rport)))
229#define RPORT_TO_PRIV(x) \ 232#define RPORT_TO_PRIV(x) \
230 ((struct fc_rport_libfc_priv *)((void *)(x) + sizeof(struct fc_rport))) 233 ((struct fc_rport_libfc_priv *)((void *)(x) + sizeof(struct fc_rport)))
231 234
232static inline void fc_rport_set_name(struct fc_rport *rport, u64 wwpn, u64 wwnn)
233{
234 rport->node_name = wwnn;
235 rport->port_name = wwpn;
236}
237
238/* 235/*
239 * fcoe stats structure 236 * fcoe stats structure
240 */ 237 */
@@ -609,6 +606,12 @@ struct libfc_function_template {
609 struct fc_rport_priv *(*rport_lookup)(const struct fc_lport *, u32); 606 struct fc_rport_priv *(*rport_lookup)(const struct fc_lport *, u32);
610 607
611 /* 608 /*
609 * Destroy an rport after final kref_put().
610 * The argument is a pointer to the kref inside the fc_rport_priv.
611 */
612 void (*rport_destroy)(struct kref *);
613
614 /*
612 * Send a fcp cmd from fsp pkt. 615 * Send a fcp cmd from fsp pkt.
613 * Called with the SCSI host lock unlocked and irqs disabled. 616 * Called with the SCSI host lock unlocked and irqs disabled.
614 * 617 *