aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAbhijeet Joglekar <abjoglek@cisco.com>2009-02-27 13:54:35 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-06 16:35:47 -0500
commit1f6ff364ceda516f88351a8ab640e656beed0b26 (patch)
tree227a5f6e39372eaf3c898d1de8feb2b88df707b0
parent33dd6f92a1a7ad85c54d47fd9d73371a32c0bde4 (diff)
[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: Abhijeet Joglekar <abjoglek@cisco.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r--drivers/scsi/libfc/fc_exch.c3
-rw-r--r--drivers/scsi/libfc/fc_lport.c4
-rw-r--r--drivers/scsi/libfc/fc_rport.c4
-rw-r--r--include/scsi/libfc.h4
4 files changed, 8 insertions, 7 deletions
diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
index 66db08a5f27f..a09416fd843c 100644
--- a/drivers/scsi/libfc/fc_exch.c
+++ b/drivers/scsi/libfc/fc_exch.c
@@ -1480,10 +1480,11 @@ static void fc_exch_reset(struct fc_exch *ep)
1480 * If sid is non-zero, reset only exchanges we source from that FID. 1480 * If sid is non-zero, reset only exchanges we source from that FID.
1481 * If did is non-zero, reset only exchanges destined to that FID. 1481 * If did is non-zero, reset only exchanges destined to that FID.
1482 */ 1482 */
1483void fc_exch_mgr_reset(struct fc_exch_mgr *mp, u32 sid, u32 did) 1483void fc_exch_mgr_reset(struct fc_lport *lp, u32 sid, u32 did)
1484{ 1484{
1485 struct fc_exch *ep; 1485 struct fc_exch *ep;
1486 struct fc_exch *next; 1486 struct fc_exch *next;
1487 struct fc_exch_mgr *mp = lp->emp;
1487 1488
1488 spin_lock_bh(&mp->em_lock); 1489 spin_lock_bh(&mp->em_lock);
1489restart: 1490restart:
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index 0b9bdb1fb807..5db223ce3b25 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -663,7 +663,7 @@ int fc_lport_destroy(struct fc_lport *lport)
663{ 663{
664 lport->tt.frame_send = fc_frame_drop; 664 lport->tt.frame_send = fc_frame_drop;
665 lport->tt.fcp_abort_io(lport); 665 lport->tt.fcp_abort_io(lport);
666 lport->tt.exch_mgr_reset(lport->emp, 0, 0); 666 lport->tt.exch_mgr_reset(lport, 0, 0);
667 return 0; 667 return 0;
668} 668}
669EXPORT_SYMBOL(fc_lport_destroy); 669EXPORT_SYMBOL(fc_lport_destroy);
@@ -973,7 +973,7 @@ static void fc_lport_enter_reset(struct fc_lport *lport)
973 973
974 lport->tt.disc_stop(lport); 974 lport->tt.disc_stop(lport);
975 975
976 lport->tt.exch_mgr_reset(lport->emp, 0, 0); 976 lport->tt.exch_mgr_reset(lport, 0, 0);
977 fc_host_fabric_name(lport->host) = 0; 977 fc_host_fabric_name(lport->host) = 0;
978 fc_host_port_id(lport->host) = 0; 978 fc_host_port_id(lport->host) = 0;
979 979
diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c
index e780d8caf70e..dec7bae0e56d 100644
--- a/drivers/scsi/libfc/fc_rport.c
+++ b/drivers/scsi/libfc/fc_rport.c
@@ -1285,7 +1285,7 @@ void fc_rport_terminate_io(struct fc_rport *rport)
1285 struct fc_rport_libfc_priv *rdata = rport->dd_data; 1285 struct fc_rport_libfc_priv *rdata = rport->dd_data;
1286 struct fc_lport *lport = rdata->local_port; 1286 struct fc_lport *lport = rdata->local_port;
1287 1287
1288 lport->tt.exch_mgr_reset(lport->emp, 0, rport->port_id); 1288 lport->tt.exch_mgr_reset(lport, 0, rport->port_id);
1289 lport->tt.exch_mgr_reset(lport->emp, rport->port_id, 0); 1289 lport->tt.exch_mgr_reset(lport, rport->port_id, 0);
1290} 1290}
1291EXPORT_SYMBOL(fc_rport_terminate_io); 1291EXPORT_SYMBOL(fc_rport_terminate_io);
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
index 9f2876397dda..042f4ade73d7 100644
--- a/include/scsi/libfc.h
+++ b/include/scsi/libfc.h
@@ -472,7 +472,7 @@ struct libfc_function_template {
472 * If s_id is non-zero, reset only exchanges originating from that FID. 472 * If s_id is non-zero, reset only exchanges originating from that FID.
473 * If d_id is non-zero, reset only exchanges sending to that FID. 473 * If d_id is non-zero, reset only exchanges sending to that FID.
474 */ 474 */
475 void (*exch_mgr_reset)(struct fc_exch_mgr *, 475 void (*exch_mgr_reset)(struct fc_lport *,
476 u32 s_id, u32 d_id); 476 u32 s_id, u32 d_id);
477 477
478 void (*rport_flush_queue)(void); 478 void (*rport_flush_queue)(void);
@@ -916,7 +916,7 @@ struct fc_seq *fc_seq_start_next(struct fc_seq *sp);
916 * If s_id is non-zero, reset only exchanges originating from that FID. 916 * If s_id is non-zero, reset only exchanges originating from that FID.
917 * If d_id is non-zero, reset only exchanges sending to that FID. 917 * If d_id is non-zero, reset only exchanges sending to that FID.
918 */ 918 */
919void fc_exch_mgr_reset(struct fc_exch_mgr *, u32 s_id, u32 d_id); 919void fc_exch_mgr_reset(struct fc_lport *, u32 s_id, u32 d_id);
920 920
921/* 921/*
922 * Functions for fc_functions_template 922 * Functions for fc_functions_template