aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libfc
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 /drivers/scsi/libfc
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>
Diffstat (limited to 'drivers/scsi/libfc')
-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
3 files changed, 6 insertions, 5 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);