Commit 1f6ff364 authored by Abhijeet Joglekar's avatar Abhijeet Joglekar Committed by James Bottomley
Browse files

[SCSI] libfc: Pass lport in exch_mgr_reset



fc_exch_mgr structure is private to fc_exch.c. To export exch_mgr_reset to
transport, transport needs access to the exch manager. Change
exch_mgr_reset to use lport param which is the shared structure between
libFC and transport.

Alternatively, fc_exch_mgr definition can be moved to libfc.h so that lport
can be accessed from mp*.
Signed-off-by: default avatarAbhijeet Joglekar <abjoglek@cisco.com>
Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent 33dd6f92
...@@ -1480,10 +1480,11 @@ static void fc_exch_reset(struct fc_exch *ep) ...@@ -1480,10 +1480,11 @@ static void fc_exch_reset(struct fc_exch *ep)
* If sid is non-zero, reset only exchanges we source from that FID. * If sid is non-zero, reset only exchanges we source from that FID.
* If did is non-zero, reset only exchanges destined to that FID. * If did is non-zero, reset only exchanges destined to that FID.
*/ */
void fc_exch_mgr_reset(struct fc_exch_mgr *mp, u32 sid, u32 did) void fc_exch_mgr_reset(struct fc_lport *lp, u32 sid, u32 did)
{ {
struct fc_exch *ep; struct fc_exch *ep;
struct fc_exch *next; struct fc_exch *next;
struct fc_exch_mgr *mp = lp->emp;
spin_lock_bh(&mp->em_lock); spin_lock_bh(&mp->em_lock);
restart: restart:
......
...@@ -663,7 +663,7 @@ int fc_lport_destroy(struct fc_lport *lport) ...@@ -663,7 +663,7 @@ int fc_lport_destroy(struct fc_lport *lport)
{ {
lport->tt.frame_send = fc_frame_drop; lport->tt.frame_send = fc_frame_drop;
lport->tt.fcp_abort_io(lport); lport->tt.fcp_abort_io(lport);
lport->tt.exch_mgr_reset(lport->emp, 0, 0); lport->tt.exch_mgr_reset(lport, 0, 0);
return 0; return 0;
} }
EXPORT_SYMBOL(fc_lport_destroy); EXPORT_SYMBOL(fc_lport_destroy);
...@@ -973,7 +973,7 @@ static void fc_lport_enter_reset(struct fc_lport *lport) ...@@ -973,7 +973,7 @@ static void fc_lport_enter_reset(struct fc_lport *lport)
lport->tt.disc_stop(lport); lport->tt.disc_stop(lport);
lport->tt.exch_mgr_reset(lport->emp, 0, 0); lport->tt.exch_mgr_reset(lport, 0, 0);
fc_host_fabric_name(lport->host) = 0; fc_host_fabric_name(lport->host) = 0;
fc_host_port_id(lport->host) = 0; fc_host_port_id(lport->host) = 0;
......
...@@ -1285,7 +1285,7 @@ void fc_rport_terminate_io(struct fc_rport *rport) ...@@ -1285,7 +1285,7 @@ void fc_rport_terminate_io(struct fc_rport *rport)
struct fc_rport_libfc_priv *rdata = rport->dd_data; struct fc_rport_libfc_priv *rdata = rport->dd_data;
struct fc_lport *lport = rdata->local_port; struct fc_lport *lport = rdata->local_port;
lport->tt.exch_mgr_reset(lport->emp, 0, rport->port_id); lport->tt.exch_mgr_reset(lport, 0, rport->port_id);
lport->tt.exch_mgr_reset(lport->emp, rport->port_id, 0); lport->tt.exch_mgr_reset(lport, rport->port_id, 0);
} }
EXPORT_SYMBOL(fc_rport_terminate_io); EXPORT_SYMBOL(fc_rport_terminate_io);
...@@ -472,7 +472,7 @@ struct libfc_function_template { ...@@ -472,7 +472,7 @@ struct libfc_function_template {
* If s_id is non-zero, reset only exchanges originating from that FID. * If s_id is non-zero, reset only exchanges originating from that FID.
* If d_id is non-zero, reset only exchanges sending to that FID. * If d_id is non-zero, reset only exchanges sending to that FID.
*/ */
void (*exch_mgr_reset)(struct fc_exch_mgr *, void (*exch_mgr_reset)(struct fc_lport *,
u32 s_id, u32 d_id); u32 s_id, u32 d_id);
void (*rport_flush_queue)(void); void (*rport_flush_queue)(void);
...@@ -916,7 +916,7 @@ struct fc_seq *fc_seq_start_next(struct fc_seq *sp); ...@@ -916,7 +916,7 @@ struct fc_seq *fc_seq_start_next(struct fc_seq *sp);
* If s_id is non-zero, reset only exchanges originating from that FID. * If s_id is non-zero, reset only exchanges originating from that FID.
* If d_id is non-zero, reset only exchanges sending to that FID. * If d_id is non-zero, reset only exchanges sending to that FID.
*/ */
void fc_exch_mgr_reset(struct fc_exch_mgr *, u32 s_id, u32 d_id); void fc_exch_mgr_reset(struct fc_lport *, u32 s_id, u32 d_id);
/* /*
* Functions for fc_functions_template * Functions for fc_functions_template
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment