diff options
author | Abhijeet Joglekar <abjoglek@cisco.com> | 2009-02-27 13:54:35 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-03-06 16:35:47 -0500 |
commit | 1f6ff364ceda516f88351a8ab640e656beed0b26 (patch) | |
tree | 227a5f6e39372eaf3c898d1de8feb2b88df707b0 | |
parent | 33dd6f92a1a7ad85c54d47fd9d73371a32c0bde4 (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.c | 3 | ||||
-rw-r--r-- | drivers/scsi/libfc/fc_lport.c | 4 | ||||
-rw-r--r-- | drivers/scsi/libfc/fc_rport.c | 4 | ||||
-rw-r--r-- | include/scsi/libfc.h | 4 |
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 | */ |
1483 | void fc_exch_mgr_reset(struct fc_exch_mgr *mp, u32 sid, u32 did) | 1483 | void 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); |
1489 | restart: | 1490 | restart: |
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 | } |
669 | EXPORT_SYMBOL(fc_lport_destroy); | 669 | EXPORT_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 | } |
1291 | EXPORT_SYMBOL(fc_rport_terminate_io); | 1291 | EXPORT_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 | */ |
919 | void fc_exch_mgr_reset(struct fc_exch_mgr *, u32 s_id, u32 d_id); | 919 | void 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 |