diff options
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r-- | drivers/s390/scsi/zfcp_aux.c | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_ccw.c | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_dbf.c | 78 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_def.h | 16 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_erp.c | 95 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_ext.h | 7 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.c | 82 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_qdio.c | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_scsi.c | 25 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_sysfs_adapter.c | 6 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_sysfs_driver.c | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_sysfs_port.c | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_sysfs_unit.c | 2 |
13 files changed, 131 insertions, 190 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c index 167fef39d8a7..95b92f317b6f 100644 --- a/drivers/s390/scsi/zfcp_aux.c +++ b/drivers/s390/scsi/zfcp_aux.c | |||
@@ -29,8 +29,6 @@ | |||
29 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 29 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
30 | */ | 30 | */ |
31 | 31 | ||
32 | #define ZFCP_AUX_REVISION "$Revision: 1.145 $" | ||
33 | |||
34 | #include "zfcp_ext.h" | 32 | #include "zfcp_ext.h" |
35 | 33 | ||
36 | /* accumulated log level (module parameter) */ | 34 | /* accumulated log level (module parameter) */ |
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c index 0fc46381fc22..241136d0c6eb 100644 --- a/drivers/s390/scsi/zfcp_ccw.c +++ b/drivers/s390/scsi/zfcp_ccw.c | |||
@@ -27,8 +27,6 @@ | |||
27 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 27 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #define ZFCP_CCW_C_REVISION "$Revision: 1.58 $" | ||
31 | |||
32 | #include "zfcp_ext.h" | 30 | #include "zfcp_ext.h" |
33 | 31 | ||
34 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG | 32 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG |
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c index 95599719f8ab..a5f2ba9a8fdb 100644 --- a/drivers/s390/scsi/zfcp_dbf.c +++ b/drivers/s390/scsi/zfcp_dbf.c | |||
@@ -23,8 +23,6 @@ | |||
23 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 23 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #define ZFCP_DBF_REVISION "$Revision$" | ||
27 | |||
28 | #include <asm/debug.h> | 26 | #include <asm/debug.h> |
29 | #include <linux/ctype.h> | 27 | #include <linux/ctype.h> |
30 | #include "zfcp_ext.h" | 28 | #include "zfcp_ext.h" |
@@ -712,10 +710,9 @@ static inline void | |||
712 | _zfcp_scsi_dbf_event_common(const char *tag, const char *tag2, int level, | 710 | _zfcp_scsi_dbf_event_common(const char *tag, const char *tag2, int level, |
713 | struct zfcp_adapter *adapter, | 711 | struct zfcp_adapter *adapter, |
714 | struct scsi_cmnd *scsi_cmnd, | 712 | struct scsi_cmnd *scsi_cmnd, |
715 | struct zfcp_fsf_req *new_fsf_req) | 713 | struct zfcp_fsf_req *fsf_req, |
714 | struct zfcp_fsf_req *old_fsf_req) | ||
716 | { | 715 | { |
717 | struct zfcp_fsf_req *fsf_req = | ||
718 | (struct zfcp_fsf_req *)scsi_cmnd->host_scribble; | ||
719 | struct zfcp_scsi_dbf_record *rec = &adapter->scsi_dbf_buf; | 716 | struct zfcp_scsi_dbf_record *rec = &adapter->scsi_dbf_buf; |
720 | struct zfcp_dbf_dump *dump = (struct zfcp_dbf_dump *)rec; | 717 | struct zfcp_dbf_dump *dump = (struct zfcp_dbf_dump *)rec; |
721 | unsigned long flags; | 718 | unsigned long flags; |
@@ -729,19 +726,20 @@ _zfcp_scsi_dbf_event_common(const char *tag, const char *tag2, int level, | |||
729 | if (offset == 0) { | 726 | if (offset == 0) { |
730 | strncpy(rec->tag, tag, ZFCP_DBF_TAG_SIZE); | 727 | strncpy(rec->tag, tag, ZFCP_DBF_TAG_SIZE); |
731 | strncpy(rec->tag2, tag2, ZFCP_DBF_TAG_SIZE); | 728 | strncpy(rec->tag2, tag2, ZFCP_DBF_TAG_SIZE); |
732 | if (scsi_cmnd->device) { | 729 | if (scsi_cmnd != NULL) { |
733 | rec->scsi_id = scsi_cmnd->device->id; | 730 | if (scsi_cmnd->device) { |
734 | rec->scsi_lun = scsi_cmnd->device->lun; | 731 | rec->scsi_id = scsi_cmnd->device->id; |
732 | rec->scsi_lun = scsi_cmnd->device->lun; | ||
733 | } | ||
734 | rec->scsi_result = scsi_cmnd->result; | ||
735 | rec->scsi_cmnd = (unsigned long)scsi_cmnd; | ||
736 | rec->scsi_serial = scsi_cmnd->serial_number; | ||
737 | memcpy(rec->scsi_opcode, &scsi_cmnd->cmnd, | ||
738 | min((int)scsi_cmnd->cmd_len, | ||
739 | ZFCP_DBF_SCSI_OPCODE)); | ||
740 | rec->scsi_retries = scsi_cmnd->retries; | ||
741 | rec->scsi_allowed = scsi_cmnd->allowed; | ||
735 | } | 742 | } |
736 | rec->scsi_result = scsi_cmnd->result; | ||
737 | rec->scsi_cmnd = (unsigned long)scsi_cmnd; | ||
738 | rec->scsi_serial = scsi_cmnd->serial_number; | ||
739 | memcpy(rec->scsi_opcode, | ||
740 | &scsi_cmnd->cmnd, | ||
741 | min((int)scsi_cmnd->cmd_len, | ||
742 | ZFCP_DBF_SCSI_OPCODE)); | ||
743 | rec->scsi_retries = scsi_cmnd->retries; | ||
744 | rec->scsi_allowed = scsi_cmnd->allowed; | ||
745 | if (fsf_req != NULL) { | 743 | if (fsf_req != NULL) { |
746 | fcp_rsp = (struct fcp_rsp_iu *) | 744 | fcp_rsp = (struct fcp_rsp_iu *) |
747 | &(fsf_req->qtcb->bottom.io.fcp_rsp); | 745 | &(fsf_req->qtcb->bottom.io.fcp_rsp); |
@@ -774,15 +772,8 @@ _zfcp_scsi_dbf_event_common(const char *tag, const char *tag2, int level, | |||
774 | rec->fsf_seqno = fsf_req->seq_no; | 772 | rec->fsf_seqno = fsf_req->seq_no; |
775 | rec->fsf_issued = fsf_req->issued; | 773 | rec->fsf_issued = fsf_req->issued; |
776 | } | 774 | } |
777 | if (new_fsf_req != NULL) { | 775 | rec->type.old_fsf_reqid = |
778 | rec->type.new_fsf_req.fsf_reqid = | 776 | (unsigned long) old_fsf_req; |
779 | (unsigned long) | ||
780 | new_fsf_req; | ||
781 | rec->type.new_fsf_req.fsf_seqno = | ||
782 | new_fsf_req->seq_no; | ||
783 | rec->type.new_fsf_req.fsf_issued = | ||
784 | new_fsf_req->issued; | ||
785 | } | ||
786 | } else { | 777 | } else { |
787 | strncpy(dump->tag, "dump", ZFCP_DBF_TAG_SIZE); | 778 | strncpy(dump->tag, "dump", ZFCP_DBF_TAG_SIZE); |
788 | dump->total_size = buflen; | 779 | dump->total_size = buflen; |
@@ -803,19 +794,21 @@ _zfcp_scsi_dbf_event_common(const char *tag, const char *tag2, int level, | |||
803 | inline void | 794 | inline void |
804 | zfcp_scsi_dbf_event_result(const char *tag, int level, | 795 | zfcp_scsi_dbf_event_result(const char *tag, int level, |
805 | struct zfcp_adapter *adapter, | 796 | struct zfcp_adapter *adapter, |
806 | struct scsi_cmnd *scsi_cmnd) | 797 | struct scsi_cmnd *scsi_cmnd, |
798 | struct zfcp_fsf_req *fsf_req) | ||
807 | { | 799 | { |
808 | _zfcp_scsi_dbf_event_common("rslt", | 800 | _zfcp_scsi_dbf_event_common("rslt", tag, level, |
809 | tag, level, adapter, scsi_cmnd, NULL); | 801 | adapter, scsi_cmnd, fsf_req, NULL); |
810 | } | 802 | } |
811 | 803 | ||
812 | inline void | 804 | inline void |
813 | zfcp_scsi_dbf_event_abort(const char *tag, struct zfcp_adapter *adapter, | 805 | zfcp_scsi_dbf_event_abort(const char *tag, struct zfcp_adapter *adapter, |
814 | struct scsi_cmnd *scsi_cmnd, | 806 | struct scsi_cmnd *scsi_cmnd, |
815 | struct zfcp_fsf_req *new_fsf_req) | 807 | struct zfcp_fsf_req *new_fsf_req, |
808 | struct zfcp_fsf_req *old_fsf_req) | ||
816 | { | 809 | { |
817 | _zfcp_scsi_dbf_event_common("abrt", | 810 | _zfcp_scsi_dbf_event_common("abrt", tag, 1, |
818 | tag, 1, adapter, scsi_cmnd, new_fsf_req); | 811 | adapter, scsi_cmnd, new_fsf_req, old_fsf_req); |
819 | } | 812 | } |
820 | 813 | ||
821 | inline void | 814 | inline void |
@@ -825,7 +818,7 @@ zfcp_scsi_dbf_event_devreset(const char *tag, u8 flag, struct zfcp_unit *unit, | |||
825 | struct zfcp_adapter *adapter = unit->port->adapter; | 818 | struct zfcp_adapter *adapter = unit->port->adapter; |
826 | 819 | ||
827 | _zfcp_scsi_dbf_event_common(flag == FCP_TARGET_RESET ? "trst" : "lrst", | 820 | _zfcp_scsi_dbf_event_common(flag == FCP_TARGET_RESET ? "trst" : "lrst", |
828 | tag, 1, adapter, scsi_cmnd, NULL); | 821 | tag, 1, adapter, scsi_cmnd, NULL, NULL); |
829 | } | 822 | } |
830 | 823 | ||
831 | static int | 824 | static int |
@@ -858,6 +851,10 @@ zfcp_scsi_dbf_view_format(debug_info_t * id, struct debug_view *view, | |||
858 | rec->scsi_retries); | 851 | rec->scsi_retries); |
859 | len += zfcp_dbf_view(out_buf + len, "scsi_allowed", "0x%02x", | 852 | len += zfcp_dbf_view(out_buf + len, "scsi_allowed", "0x%02x", |
860 | rec->scsi_allowed); | 853 | rec->scsi_allowed); |
854 | if (strncmp(rec->tag, "abrt", ZFCP_DBF_TAG_SIZE) == 0) { | ||
855 | len += zfcp_dbf_view(out_buf + len, "old_fsf_reqid", "0x%0Lx", | ||
856 | rec->type.old_fsf_reqid); | ||
857 | } | ||
861 | len += zfcp_dbf_view(out_buf + len, "fsf_reqid", "0x%0Lx", | 858 | len += zfcp_dbf_view(out_buf + len, "fsf_reqid", "0x%0Lx", |
862 | rec->fsf_reqid); | 859 | rec->fsf_reqid); |
863 | len += zfcp_dbf_view(out_buf + len, "fsf_seqno", "0x%08x", | 860 | len += zfcp_dbf_view(out_buf + len, "fsf_seqno", "0x%08x", |
@@ -885,21 +882,6 @@ zfcp_scsi_dbf_view_format(debug_info_t * id, struct debug_view *view, | |||
885 | min((int)rec->type.fcp.sns_info_len, | 882 | min((int)rec->type.fcp.sns_info_len, |
886 | ZFCP_DBF_SCSI_FCP_SNS_INFO), 0, | 883 | ZFCP_DBF_SCSI_FCP_SNS_INFO), 0, |
887 | rec->type.fcp.sns_info_len); | 884 | rec->type.fcp.sns_info_len); |
888 | } else if (strncmp(rec->tag, "abrt", ZFCP_DBF_TAG_SIZE) == 0) { | ||
889 | len += zfcp_dbf_view(out_buf + len, "fsf_reqid_abort", "0x%0Lx", | ||
890 | rec->type.new_fsf_req.fsf_reqid); | ||
891 | len += zfcp_dbf_view(out_buf + len, "fsf_seqno_abort", "0x%08x", | ||
892 | rec->type.new_fsf_req.fsf_seqno); | ||
893 | len += zfcp_dbf_stck(out_buf + len, "fsf_issued", | ||
894 | rec->type.new_fsf_req.fsf_issued); | ||
895 | } else if ((strncmp(rec->tag, "trst", ZFCP_DBF_TAG_SIZE) == 0) || | ||
896 | (strncmp(rec->tag, "lrst", ZFCP_DBF_TAG_SIZE) == 0)) { | ||
897 | len += zfcp_dbf_view(out_buf + len, "fsf_reqid_reset", "0x%0Lx", | ||
898 | rec->type.new_fsf_req.fsf_reqid); | ||
899 | len += zfcp_dbf_view(out_buf + len, "fsf_seqno_reset", "0x%08x", | ||
900 | rec->type.new_fsf_req.fsf_seqno); | ||
901 | len += zfcp_dbf_stck(out_buf + len, "fsf_issued", | ||
902 | rec->type.new_fsf_req.fsf_issued); | ||
903 | } | 885 | } |
904 | 886 | ||
905 | len += sprintf(out_buf + len, "\n"); | 887 | len += sprintf(out_buf + len, "\n"); |
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h index 9bb511083a26..6eba56cd89ba 100644 --- a/drivers/s390/scsi/zfcp_def.h +++ b/drivers/s390/scsi/zfcp_def.h | |||
@@ -34,8 +34,6 @@ | |||
34 | #ifndef ZFCP_DEF_H | 34 | #ifndef ZFCP_DEF_H |
35 | #define ZFCP_DEF_H | 35 | #define ZFCP_DEF_H |
36 | 36 | ||
37 | #define ZFCP_DEF_REVISION "$Revision: 1.111 $" | ||
38 | |||
39 | /*************************** INCLUDES *****************************************/ | 37 | /*************************** INCLUDES *****************************************/ |
40 | 38 | ||
41 | #include <linux/init.h> | 39 | #include <linux/init.h> |
@@ -154,11 +152,6 @@ typedef u32 scsi_lun_t; | |||
154 | #define ZFCP_EXCHANGE_CONFIG_DATA_FIRST_SLEEP 100 | 152 | #define ZFCP_EXCHANGE_CONFIG_DATA_FIRST_SLEEP 100 |
155 | #define ZFCP_EXCHANGE_CONFIG_DATA_RETRIES 7 | 153 | #define ZFCP_EXCHANGE_CONFIG_DATA_RETRIES 7 |
156 | 154 | ||
157 | /* Retry 5 times every 2 second, then every minute */ | ||
158 | #define ZFCP_EXCHANGE_PORT_DATA_SHORT_RETRIES 5 | ||
159 | #define ZFCP_EXCHANGE_PORT_DATA_SHORT_SLEEP 200 | ||
160 | #define ZFCP_EXCHANGE_PORT_DATA_LONG_SLEEP 6000 | ||
161 | |||
162 | /* timeout value for "default timer" for fsf requests */ | 155 | /* timeout value for "default timer" for fsf requests */ |
163 | #define ZFCP_FSF_REQUEST_TIMEOUT (60*HZ); | 156 | #define ZFCP_FSF_REQUEST_TIMEOUT (60*HZ); |
164 | 157 | ||
@@ -431,11 +424,7 @@ struct zfcp_scsi_dbf_record { | |||
431 | u32 fsf_seqno; | 424 | u32 fsf_seqno; |
432 | u64 fsf_issued; | 425 | u64 fsf_issued; |
433 | union { | 426 | union { |
434 | struct { | 427 | u64 old_fsf_reqid; |
435 | u64 fsf_reqid; | ||
436 | u32 fsf_seqno; | ||
437 | u64 fsf_issued; | ||
438 | } new_fsf_req; | ||
439 | struct { | 428 | struct { |
440 | u8 rsp_validity; | 429 | u8 rsp_validity; |
441 | u8 rsp_scsi_status; | 430 | u8 rsp_scsi_status; |
@@ -675,6 +664,7 @@ do { \ | |||
675 | #define ZFCP_STATUS_UNIT_TEMPORARY 0x00000002 | 664 | #define ZFCP_STATUS_UNIT_TEMPORARY 0x00000002 |
676 | #define ZFCP_STATUS_UNIT_SHARED 0x00000004 | 665 | #define ZFCP_STATUS_UNIT_SHARED 0x00000004 |
677 | #define ZFCP_STATUS_UNIT_READONLY 0x00000008 | 666 | #define ZFCP_STATUS_UNIT_READONLY 0x00000008 |
667 | #define ZFCP_STATUS_UNIT_REGISTERED 0x00000010 | ||
678 | 668 | ||
679 | /* FSF request status (this does not have a common part) */ | 669 | /* FSF request status (this does not have a common part) */ |
680 | #define ZFCP_STATUS_FSFREQ_NOT_INIT 0x00000000 | 670 | #define ZFCP_STATUS_FSFREQ_NOT_INIT 0x00000000 |
@@ -917,8 +907,6 @@ struct zfcp_adapter { | |||
917 | wwn_t peer_wwnn; /* P2P peer WWNN */ | 907 | wwn_t peer_wwnn; /* P2P peer WWNN */ |
918 | wwn_t peer_wwpn; /* P2P peer WWPN */ | 908 | wwn_t peer_wwpn; /* P2P peer WWPN */ |
919 | u32 peer_d_id; /* P2P peer D_ID */ | 909 | u32 peer_d_id; /* P2P peer D_ID */ |
920 | wwn_t physical_wwpn; /* WWPN of physical port */ | ||
921 | u32 physical_s_id; /* local FC port ID */ | ||
922 | struct ccw_device *ccw_device; /* S/390 ccw device */ | 910 | struct ccw_device *ccw_device; /* S/390 ccw device */ |
923 | u8 fc_service_class; | 911 | u8 fc_service_class; |
924 | u32 hydra_version; /* Hydra version */ | 912 | u32 hydra_version; /* Hydra version */ |
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index c065cb836c97..57cb628a05aa 100644 --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c | |||
@@ -31,8 +31,6 @@ | |||
31 | 31 | ||
32 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_ERP | 32 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_ERP |
33 | 33 | ||
34 | #define ZFCP_ERP_REVISION "$Revision: 1.86 $" | ||
35 | |||
36 | #include "zfcp_ext.h" | 34 | #include "zfcp_ext.h" |
37 | 35 | ||
38 | static int zfcp_erp_adisc(struct zfcp_port *); | 36 | static int zfcp_erp_adisc(struct zfcp_port *); |
@@ -2248,15 +2246,6 @@ zfcp_erp_adapter_strategy_open_fsf(struct zfcp_erp_action *erp_action) | |||
2248 | { | 2246 | { |
2249 | int retval; | 2247 | int retval; |
2250 | 2248 | ||
2251 | if ((atomic_test_mask(ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED, | ||
2252 | &erp_action->adapter->status)) && | ||
2253 | (erp_action->adapter->adapter_features & | ||
2254 | FSF_FEATURE_HBAAPI_MANAGEMENT)) { | ||
2255 | zfcp_erp_adapter_strategy_open_fsf_xport(erp_action); | ||
2256 | atomic_set(&erp_action->adapter->erp_counter, 0); | ||
2257 | return ZFCP_ERP_FAILED; | ||
2258 | } | ||
2259 | |||
2260 | retval = zfcp_erp_adapter_strategy_open_fsf_xconfig(erp_action); | 2249 | retval = zfcp_erp_adapter_strategy_open_fsf_xconfig(erp_action); |
2261 | if (retval == ZFCP_ERP_FAILED) | 2250 | if (retval == ZFCP_ERP_FAILED) |
2262 | return ZFCP_ERP_FAILED; | 2251 | return ZFCP_ERP_FAILED; |
@@ -2268,13 +2257,6 @@ zfcp_erp_adapter_strategy_open_fsf(struct zfcp_erp_action *erp_action) | |||
2268 | return zfcp_erp_adapter_strategy_open_fsf_statusread(erp_action); | 2257 | return zfcp_erp_adapter_strategy_open_fsf_statusread(erp_action); |
2269 | } | 2258 | } |
2270 | 2259 | ||
2271 | /* | ||
2272 | * function: | ||
2273 | * | ||
2274 | * purpose: | ||
2275 | * | ||
2276 | * returns: | ||
2277 | */ | ||
2278 | static int | 2260 | static int |
2279 | zfcp_erp_adapter_strategy_open_fsf_xconfig(struct zfcp_erp_action *erp_action) | 2261 | zfcp_erp_adapter_strategy_open_fsf_xconfig(struct zfcp_erp_action *erp_action) |
2280 | { | 2262 | { |
@@ -2352,48 +2334,40 @@ static int | |||
2352 | zfcp_erp_adapter_strategy_open_fsf_xport(struct zfcp_erp_action *erp_action) | 2334 | zfcp_erp_adapter_strategy_open_fsf_xport(struct zfcp_erp_action *erp_action) |
2353 | { | 2335 | { |
2354 | int ret; | 2336 | int ret; |
2355 | int retries; | 2337 | struct zfcp_adapter *adapter; |
2356 | int sleep; | ||
2357 | struct zfcp_adapter *adapter = erp_action->adapter; | ||
2358 | 2338 | ||
2339 | adapter = erp_action->adapter; | ||
2359 | atomic_clear_mask(ZFCP_STATUS_ADAPTER_XPORT_OK, &adapter->status); | 2340 | atomic_clear_mask(ZFCP_STATUS_ADAPTER_XPORT_OK, &adapter->status); |
2360 | 2341 | ||
2361 | retries = 0; | 2342 | write_lock(&adapter->erp_lock); |
2362 | do { | 2343 | zfcp_erp_action_to_running(erp_action); |
2363 | write_lock(&adapter->erp_lock); | 2344 | write_unlock(&adapter->erp_lock); |
2364 | zfcp_erp_action_to_running(erp_action); | ||
2365 | write_unlock(&adapter->erp_lock); | ||
2366 | zfcp_erp_timeout_init(erp_action); | ||
2367 | ret = zfcp_fsf_exchange_port_data(erp_action, adapter, NULL); | ||
2368 | if (ret == -EOPNOTSUPP) { | ||
2369 | debug_text_event(adapter->erp_dbf, 3, "a_xport_notsupp"); | ||
2370 | return ZFCP_ERP_SUCCEEDED; | ||
2371 | } else if (ret) { | ||
2372 | debug_text_event(adapter->erp_dbf, 3, "a_xport_failed"); | ||
2373 | return ZFCP_ERP_FAILED; | ||
2374 | } | ||
2375 | debug_text_event(adapter->erp_dbf, 6, "a_xport_ok"); | ||
2376 | 2345 | ||
2377 | down(&adapter->erp_ready_sem); | 2346 | zfcp_erp_timeout_init(erp_action); |
2378 | if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT) { | 2347 | ret = zfcp_fsf_exchange_port_data(erp_action, adapter, NULL); |
2379 | ZFCP_LOG_INFO("error: exchange of port data " | 2348 | if (ret == -EOPNOTSUPP) { |
2380 | "for adapter %s timed out\n", | 2349 | debug_text_event(adapter->erp_dbf, 3, "a_xport_notsupp"); |
2381 | zfcp_get_busid_by_adapter(adapter)); | 2350 | return ZFCP_ERP_SUCCEEDED; |
2382 | break; | 2351 | } else if (ret) { |
2383 | } | 2352 | debug_text_event(adapter->erp_dbf, 3, "a_xport_failed"); |
2384 | if (!atomic_test_mask(ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED, | 2353 | return ZFCP_ERP_FAILED; |
2385 | &adapter->status)) | 2354 | } |
2386 | break; | 2355 | debug_text_event(adapter->erp_dbf, 6, "a_xport_ok"); |
2387 | 2356 | ||
2388 | if (retries < ZFCP_EXCHANGE_PORT_DATA_SHORT_RETRIES) { | 2357 | ret = ZFCP_ERP_SUCCEEDED; |
2389 | sleep = ZFCP_EXCHANGE_PORT_DATA_SHORT_SLEEP; | 2358 | down(&adapter->erp_ready_sem); |
2390 | retries++; | 2359 | if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT) { |
2391 | } else | 2360 | ZFCP_LOG_INFO("error: exchange port data timed out (adapter " |
2392 | sleep = ZFCP_EXCHANGE_PORT_DATA_LONG_SLEEP; | 2361 | "%s)\n", zfcp_get_busid_by_adapter(adapter)); |
2393 | schedule_timeout(sleep); | 2362 | ret = ZFCP_ERP_FAILED; |
2394 | } while (1); | 2363 | } |
2364 | if (!atomic_test_mask(ZFCP_STATUS_ADAPTER_XPORT_OK, &adapter->status)) { | ||
2365 | ZFCP_LOG_INFO("error: exchange port data failed (adapter " | ||
2366 | "%s\n", zfcp_get_busid_by_adapter(adapter)); | ||
2367 | ret = ZFCP_ERP_FAILED; | ||
2368 | } | ||
2395 | 2369 | ||
2396 | return ZFCP_ERP_SUCCEEDED; | 2370 | return ret; |
2397 | } | 2371 | } |
2398 | 2372 | ||
2399 | /* | 2373 | /* |
@@ -3417,10 +3391,13 @@ zfcp_erp_action_cleanup(int action, struct zfcp_adapter *adapter, | |||
3417 | && (!atomic_test_mask(ZFCP_STATUS_UNIT_TEMPORARY, | 3391 | && (!atomic_test_mask(ZFCP_STATUS_UNIT_TEMPORARY, |
3418 | &unit->status)) | 3392 | &unit->status)) |
3419 | && !unit->device | 3393 | && !unit->device |
3420 | && port->rport) | 3394 | && port->rport) { |
3421 | scsi_add_device(port->adapter->scsi_host, 0, | 3395 | atomic_set_mask(ZFCP_STATUS_UNIT_REGISTERED, |
3422 | port->rport->scsi_target_id, | 3396 | &unit->status); |
3423 | unit->scsi_lun); | 3397 | scsi_scan_target(&port->rport->dev, 0, |
3398 | port->rport->scsi_target_id, | ||
3399 | unit->scsi_lun, 0); | ||
3400 | } | ||
3424 | zfcp_unit_put(unit); | 3401 | zfcp_unit_put(unit); |
3425 | break; | 3402 | break; |
3426 | case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED: | 3403 | case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED: |
@@ -3441,6 +3418,8 @@ zfcp_erp_action_cleanup(int action, struct zfcp_adapter *adapter, | |||
3441 | "(adapter %s, wwpn=0x%016Lx)\n", | 3418 | "(adapter %s, wwpn=0x%016Lx)\n", |
3442 | zfcp_get_busid_by_port(port), | 3419 | zfcp_get_busid_by_port(port), |
3443 | port->wwpn); | 3420 | port->wwpn); |
3421 | else | ||
3422 | scsi_flush_work(adapter->scsi_host); | ||
3444 | } | 3423 | } |
3445 | zfcp_port_put(port); | 3424 | zfcp_port_put(port); |
3446 | break; | 3425 | break; |
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h index c3782261cb5c..700f5402a978 100644 --- a/drivers/s390/scsi/zfcp_ext.h +++ b/drivers/s390/scsi/zfcp_ext.h | |||
@@ -32,8 +32,6 @@ | |||
32 | #ifndef ZFCP_EXT_H | 32 | #ifndef ZFCP_EXT_H |
33 | #define ZFCP_EXT_H | 33 | #define ZFCP_EXT_H |
34 | 34 | ||
35 | #define ZFCP_EXT_REVISION "$Revision: 1.62 $" | ||
36 | |||
37 | #include "zfcp_def.h" | 35 | #include "zfcp_def.h" |
38 | 36 | ||
39 | extern struct zfcp_data zfcp_data; | 37 | extern struct zfcp_data zfcp_data; |
@@ -196,9 +194,10 @@ extern void zfcp_san_dbf_event_els_response(struct zfcp_fsf_req *); | |||
196 | extern void zfcp_san_dbf_event_incoming_els(struct zfcp_fsf_req *); | 194 | extern void zfcp_san_dbf_event_incoming_els(struct zfcp_fsf_req *); |
197 | 195 | ||
198 | extern void zfcp_scsi_dbf_event_result(const char *, int, struct zfcp_adapter *, | 196 | extern void zfcp_scsi_dbf_event_result(const char *, int, struct zfcp_adapter *, |
199 | struct scsi_cmnd *); | 197 | struct scsi_cmnd *, |
198 | struct zfcp_fsf_req *); | ||
200 | extern void zfcp_scsi_dbf_event_abort(const char *, struct zfcp_adapter *, | 199 | extern void zfcp_scsi_dbf_event_abort(const char *, struct zfcp_adapter *, |
201 | struct scsi_cmnd *, | 200 | struct scsi_cmnd *, struct zfcp_fsf_req *, |
202 | struct zfcp_fsf_req *); | 201 | struct zfcp_fsf_req *); |
203 | extern void zfcp_scsi_dbf_event_devreset(const char *, u8, struct zfcp_unit *, | 202 | extern void zfcp_scsi_dbf_event_devreset(const char *, u8, struct zfcp_unit *, |
204 | struct scsi_cmnd *); | 203 | struct scsi_cmnd *); |
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index cbfab09899c8..662ec571d73b 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -30,8 +30,6 @@ | |||
30 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 30 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
31 | */ | 31 | */ |
32 | 32 | ||
33 | #define ZFCP_FSF_C_REVISION "$Revision: 1.92 $" | ||
34 | |||
35 | #include "zfcp_ext.h" | 33 | #include "zfcp_ext.h" |
36 | 34 | ||
37 | static int zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *); | 35 | static int zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *); |
@@ -390,6 +388,7 @@ zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *fsf_req) | |||
390 | case FSF_PROT_LINK_DOWN: | 388 | case FSF_PROT_LINK_DOWN: |
391 | zfcp_fsf_link_down_info_eval(adapter, | 389 | zfcp_fsf_link_down_info_eval(adapter, |
392 | &prot_status_qual->link_down_info); | 390 | &prot_status_qual->link_down_info); |
391 | zfcp_erp_adapter_reopen(adapter, 0); | ||
393 | fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; | 392 | fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; |
394 | break; | 393 | break; |
395 | 394 | ||
@@ -560,10 +559,8 @@ zfcp_fsf_link_down_info_eval(struct zfcp_adapter *adapter, | |||
560 | 559 | ||
561 | atomic_set_mask(ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED, &adapter->status); | 560 | atomic_set_mask(ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED, &adapter->status); |
562 | 561 | ||
563 | if (link_down == NULL) { | 562 | if (link_down == NULL) |
564 | zfcp_erp_adapter_reopen(adapter, 0); | 563 | goto out; |
565 | return; | ||
566 | } | ||
567 | 564 | ||
568 | switch (link_down->error_code) { | 565 | switch (link_down->error_code) { |
569 | case FSF_PSQ_LINK_NO_LIGHT: | 566 | case FSF_PSQ_LINK_NO_LIGHT: |
@@ -645,16 +642,8 @@ zfcp_fsf_link_down_info_eval(struct zfcp_adapter *adapter, | |||
645 | link_down->explanation_code, | 642 | link_down->explanation_code, |
646 | link_down->vendor_specific_code); | 643 | link_down->vendor_specific_code); |
647 | 644 | ||
648 | switch (link_down->error_code) { | 645 | out: |
649 | case FSF_PSQ_LINK_NO_LIGHT: | 646 | zfcp_erp_adapter_failed(adapter); |
650 | case FSF_PSQ_LINK_WRAP_PLUG: | ||
651 | case FSF_PSQ_LINK_NO_FCP: | ||
652 | case FSF_PSQ_LINK_FIRMWARE_UPDATE: | ||
653 | zfcp_erp_adapter_reopen(adapter, 0); | ||
654 | break; | ||
655 | default: | ||
656 | zfcp_erp_adapter_failed(adapter); | ||
657 | } | ||
658 | } | 647 | } |
659 | 648 | ||
660 | /* | 649 | /* |
@@ -2306,6 +2295,35 @@ zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action, | |||
2306 | return retval; | 2295 | return retval; |
2307 | } | 2296 | } |
2308 | 2297 | ||
2298 | /** | ||
2299 | * zfcp_fsf_exchange_port_evaluate | ||
2300 | * @fsf_req: fsf_req which belongs to xchg port data request | ||
2301 | * @xchg_ok: specifies if xchg port data was incomplete or complete (0/1) | ||
2302 | */ | ||
2303 | static void | ||
2304 | zfcp_fsf_exchange_port_evaluate(struct zfcp_fsf_req *fsf_req, int xchg_ok) | ||
2305 | { | ||
2306 | struct zfcp_adapter *adapter; | ||
2307 | struct fsf_qtcb *qtcb; | ||
2308 | struct fsf_qtcb_bottom_port *bottom, *data; | ||
2309 | struct Scsi_Host *shost; | ||
2310 | |||
2311 | adapter = fsf_req->adapter; | ||
2312 | qtcb = fsf_req->qtcb; | ||
2313 | bottom = &qtcb->bottom.port; | ||
2314 | shost = adapter->scsi_host; | ||
2315 | |||
2316 | data = (struct fsf_qtcb_bottom_port*) fsf_req->data; | ||
2317 | if (data) | ||
2318 | memcpy(data, bottom, sizeof(struct fsf_qtcb_bottom_port)); | ||
2319 | |||
2320 | if (adapter->connection_features & FSF_FEATURE_NPIV_MODE) | ||
2321 | fc_host_permanent_port_name(shost) = bottom->wwpn; | ||
2322 | else | ||
2323 | fc_host_permanent_port_name(shost) = fc_host_port_name(shost); | ||
2324 | fc_host_maxframe_size(shost) = bottom->maximum_frame_size; | ||
2325 | fc_host_supported_speeds(shost) = bottom->supported_speed; | ||
2326 | } | ||
2309 | 2327 | ||
2310 | /** | 2328 | /** |
2311 | * zfcp_fsf_exchange_port_data_handler - handler for exchange_port_data request | 2329 | * zfcp_fsf_exchange_port_data_handler - handler for exchange_port_data request |
@@ -2314,38 +2332,26 @@ zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action, | |||
2314 | static void | 2332 | static void |
2315 | zfcp_fsf_exchange_port_data_handler(struct zfcp_fsf_req *fsf_req) | 2333 | zfcp_fsf_exchange_port_data_handler(struct zfcp_fsf_req *fsf_req) |
2316 | { | 2334 | { |
2317 | struct zfcp_adapter *adapter = fsf_req->adapter; | 2335 | struct zfcp_adapter *adapter; |
2318 | struct Scsi_Host *shost = adapter->scsi_host; | 2336 | struct fsf_qtcb *qtcb; |
2319 | struct fsf_qtcb *qtcb = fsf_req->qtcb; | 2337 | |
2320 | struct fsf_qtcb_bottom_port *bottom, *data; | 2338 | adapter = fsf_req->adapter; |
2339 | qtcb = fsf_req->qtcb; | ||
2321 | 2340 | ||
2322 | if (fsf_req->status & ZFCP_STATUS_FSFREQ_ERROR) | 2341 | if (fsf_req->status & ZFCP_STATUS_FSFREQ_ERROR) |
2323 | return; | 2342 | return; |
2324 | 2343 | ||
2325 | switch (qtcb->header.fsf_status) { | 2344 | switch (qtcb->header.fsf_status) { |
2326 | case FSF_GOOD: | 2345 | case FSF_GOOD: |
2346 | zfcp_fsf_exchange_port_evaluate(fsf_req, 1); | ||
2327 | atomic_set_mask(ZFCP_STATUS_ADAPTER_XPORT_OK, &adapter->status); | 2347 | atomic_set_mask(ZFCP_STATUS_ADAPTER_XPORT_OK, &adapter->status); |
2328 | |||
2329 | bottom = &qtcb->bottom.port; | ||
2330 | data = (struct fsf_qtcb_bottom_port*) fsf_req->data; | ||
2331 | if (data) | ||
2332 | memcpy(data, bottom, sizeof(struct fsf_qtcb_bottom_port)); | ||
2333 | if (adapter->connection_features & FSF_FEATURE_NPIV_MODE) | ||
2334 | fc_host_permanent_port_name(shost) = bottom->wwpn; | ||
2335 | else | ||
2336 | fc_host_permanent_port_name(shost) = | ||
2337 | fc_host_port_name(shost); | ||
2338 | fc_host_maxframe_size(shost) = bottom->maximum_frame_size; | ||
2339 | fc_host_supported_speeds(shost) = bottom->supported_speed; | ||
2340 | break; | 2348 | break; |
2341 | |||
2342 | case FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE: | 2349 | case FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE: |
2350 | zfcp_fsf_exchange_port_evaluate(fsf_req, 0); | ||
2343 | atomic_set_mask(ZFCP_STATUS_ADAPTER_XPORT_OK, &adapter->status); | 2351 | atomic_set_mask(ZFCP_STATUS_ADAPTER_XPORT_OK, &adapter->status); |
2344 | |||
2345 | zfcp_fsf_link_down_info_eval(adapter, | 2352 | zfcp_fsf_link_down_info_eval(adapter, |
2346 | &qtcb->header.fsf_status_qual.link_down_info); | 2353 | &qtcb->header.fsf_status_qual.link_down_info); |
2347 | break; | 2354 | break; |
2348 | |||
2349 | default: | 2355 | default: |
2350 | debug_text_event(adapter->erp_dbf, 0, "xchg-port-ng"); | 2356 | debug_text_event(adapter->erp_dbf, 0, "xchg-port-ng"); |
2351 | debug_event(adapter->erp_dbf, 0, | 2357 | debug_event(adapter->erp_dbf, 0, |
@@ -4205,11 +4211,11 @@ zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *fsf_req) | |||
4205 | ZFCP_LOG_DEBUG("scpnt->result =0x%x\n", scpnt->result); | 4211 | ZFCP_LOG_DEBUG("scpnt->result =0x%x\n", scpnt->result); |
4206 | 4212 | ||
4207 | if (scpnt->result != 0) | 4213 | if (scpnt->result != 0) |
4208 | zfcp_scsi_dbf_event_result("erro", 3, fsf_req->adapter, scpnt); | 4214 | zfcp_scsi_dbf_event_result("erro", 3, fsf_req->adapter, scpnt, fsf_req); |
4209 | else if (scpnt->retries > 0) | 4215 | else if (scpnt->retries > 0) |
4210 | zfcp_scsi_dbf_event_result("retr", 4, fsf_req->adapter, scpnt); | 4216 | zfcp_scsi_dbf_event_result("retr", 4, fsf_req->adapter, scpnt, fsf_req); |
4211 | else | 4217 | else |
4212 | zfcp_scsi_dbf_event_result("norm", 6, fsf_req->adapter, scpnt); | 4218 | zfcp_scsi_dbf_event_result("norm", 6, fsf_req->adapter, scpnt, fsf_req); |
4213 | 4219 | ||
4214 | /* cleanup pointer (need this especially for abort) */ | 4220 | /* cleanup pointer (need this especially for abort) */ |
4215 | scpnt->host_scribble = NULL; | 4221 | scpnt->host_scribble = NULL; |
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c index d719f66a29a4..1c3275163c91 100644 --- a/drivers/s390/scsi/zfcp_qdio.c +++ b/drivers/s390/scsi/zfcp_qdio.c | |||
@@ -29,8 +29,6 @@ | |||
29 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 29 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
30 | */ | 30 | */ |
31 | 31 | ||
32 | #define ZFCP_QDIO_C_REVISION "$Revision: 1.20 $" | ||
33 | |||
34 | #include "zfcp_ext.h" | 32 | #include "zfcp_ext.h" |
35 | 33 | ||
36 | static inline void zfcp_qdio_sbal_limit(struct zfcp_fsf_req *, int); | 34 | static inline void zfcp_qdio_sbal_limit(struct zfcp_fsf_req *, int); |
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c index 3c2cbcccbf54..9e6d07d7b3c8 100644 --- a/drivers/s390/scsi/zfcp_scsi.c +++ b/drivers/s390/scsi/zfcp_scsi.c | |||
@@ -31,8 +31,6 @@ | |||
31 | 31 | ||
32 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_SCSI | 32 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_SCSI |
33 | 33 | ||
34 | #define ZFCP_SCSI_REVISION "$Revision: 1.74 $" | ||
35 | |||
36 | #include "zfcp_ext.h" | 34 | #include "zfcp_ext.h" |
37 | 35 | ||
38 | static void zfcp_scsi_slave_destroy(struct scsi_device *sdp); | 36 | static void zfcp_scsi_slave_destroy(struct scsi_device *sdp); |
@@ -70,7 +68,7 @@ struct zfcp_data zfcp_data = { | |||
70 | eh_host_reset_handler: zfcp_scsi_eh_host_reset_handler, | 68 | eh_host_reset_handler: zfcp_scsi_eh_host_reset_handler, |
71 | /* FIXME(openfcp): Tune */ | 69 | /* FIXME(openfcp): Tune */ |
72 | can_queue: 4096, | 70 | can_queue: 4096, |
73 | this_id: 0, | 71 | this_id: -1, |
74 | /* | 72 | /* |
75 | * FIXME: | 73 | * FIXME: |
76 | * one less? can zfcp_create_sbale cope with it? | 74 | * one less? can zfcp_create_sbale cope with it? |
@@ -185,7 +183,8 @@ zfcp_scsi_slave_alloc(struct scsi_device *sdp) | |||
185 | 183 | ||
186 | read_lock_irqsave(&zfcp_data.config_lock, flags); | 184 | read_lock_irqsave(&zfcp_data.config_lock, flags); |
187 | unit = zfcp_unit_lookup(adapter, sdp->channel, sdp->id, sdp->lun); | 185 | unit = zfcp_unit_lookup(adapter, sdp->channel, sdp->id, sdp->lun); |
188 | if (unit) { | 186 | if (unit && atomic_test_mask(ZFCP_STATUS_UNIT_REGISTERED, |
187 | &unit->status)) { | ||
189 | sdp->hostdata = unit; | 188 | sdp->hostdata = unit; |
190 | unit->device = sdp; | 189 | unit->device = sdp; |
191 | zfcp_unit_get(unit); | 190 | zfcp_unit_get(unit); |
@@ -210,6 +209,7 @@ zfcp_scsi_slave_destroy(struct scsi_device *sdpnt) | |||
210 | struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata; | 209 | struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata; |
211 | 210 | ||
212 | if (unit) { | 211 | if (unit) { |
212 | atomic_clear_mask(ZFCP_STATUS_UNIT_REGISTERED, &unit->status); | ||
213 | sdpnt->hostdata = NULL; | 213 | sdpnt->hostdata = NULL; |
214 | unit->device = NULL; | 214 | unit->device = NULL; |
215 | zfcp_unit_put(unit); | 215 | zfcp_unit_put(unit); |
@@ -244,7 +244,7 @@ zfcp_scsi_command_fail(struct scsi_cmnd *scpnt, int result) | |||
244 | if ((scpnt->device != NULL) && (scpnt->device->host != NULL)) | 244 | if ((scpnt->device != NULL) && (scpnt->device->host != NULL)) |
245 | zfcp_scsi_dbf_event_result("fail", 4, | 245 | zfcp_scsi_dbf_event_result("fail", 4, |
246 | (struct zfcp_adapter*) scpnt->device->host->hostdata[0], | 246 | (struct zfcp_adapter*) scpnt->device->host->hostdata[0], |
247 | scpnt); | 247 | scpnt, NULL); |
248 | /* return directly */ | 248 | /* return directly */ |
249 | scpnt->scsi_done(scpnt); | 249 | scpnt->scsi_done(scpnt); |
250 | } | 250 | } |
@@ -293,7 +293,7 @@ zfcp_scsi_command_async(struct zfcp_adapter *adapter, struct zfcp_unit *unit, | |||
293 | "on port 0x%016Lx in recovery\n", | 293 | "on port 0x%016Lx in recovery\n", |
294 | zfcp_get_busid_by_unit(unit), | 294 | zfcp_get_busid_by_unit(unit), |
295 | unit->fcp_lun, unit->port->wwpn); | 295 | unit->fcp_lun, unit->port->wwpn); |
296 | retval = SCSI_MLQUEUE_DEVICE_BUSY; | 296 | zfcp_scsi_command_fail(scpnt, DID_NO_CONNECT); |
297 | goto out; | 297 | goto out; |
298 | } | 298 | } |
299 | 299 | ||
@@ -448,7 +448,7 @@ zfcp_scsi_eh_abort_handler(struct scsi_cmnd *scpnt) | |||
448 | old_fsf_req = (struct zfcp_fsf_req *) scpnt->host_scribble; | 448 | old_fsf_req = (struct zfcp_fsf_req *) scpnt->host_scribble; |
449 | if (!old_fsf_req) { | 449 | if (!old_fsf_req) { |
450 | write_unlock_irqrestore(&adapter->abort_lock, flags); | 450 | write_unlock_irqrestore(&adapter->abort_lock, flags); |
451 | zfcp_scsi_dbf_event_abort("lte1", adapter, scpnt, new_fsf_req); | 451 | zfcp_scsi_dbf_event_abort("lte1", adapter, scpnt, NULL, NULL); |
452 | retval = SUCCESS; | 452 | retval = SUCCESS; |
453 | goto out; | 453 | goto out; |
454 | } | 454 | } |
@@ -462,6 +462,8 @@ zfcp_scsi_eh_abort_handler(struct scsi_cmnd *scpnt) | |||
462 | adapter, unit, 0); | 462 | adapter, unit, 0); |
463 | if (!new_fsf_req) { | 463 | if (!new_fsf_req) { |
464 | ZFCP_LOG_INFO("error: initiation of Abort FCP Cmnd failed\n"); | 464 | ZFCP_LOG_INFO("error: initiation of Abort FCP Cmnd failed\n"); |
465 | zfcp_scsi_dbf_event_abort("nres", adapter, scpnt, NULL, | ||
466 | old_fsf_req); | ||
465 | retval = FAILED; | 467 | retval = FAILED; |
466 | goto out; | 468 | goto out; |
467 | } | 469 | } |
@@ -472,13 +474,16 @@ zfcp_scsi_eh_abort_handler(struct scsi_cmnd *scpnt) | |||
472 | 474 | ||
473 | /* status should be valid since signals were not permitted */ | 475 | /* status should be valid since signals were not permitted */ |
474 | if (new_fsf_req->status & ZFCP_STATUS_FSFREQ_ABORTSUCCEEDED) { | 476 | if (new_fsf_req->status & ZFCP_STATUS_FSFREQ_ABORTSUCCEEDED) { |
475 | zfcp_scsi_dbf_event_abort("okay", adapter, scpnt, new_fsf_req); | 477 | zfcp_scsi_dbf_event_abort("okay", adapter, scpnt, new_fsf_req, |
478 | NULL); | ||
476 | retval = SUCCESS; | 479 | retval = SUCCESS; |
477 | } else if (new_fsf_req->status & ZFCP_STATUS_FSFREQ_ABORTNOTNEEDED) { | 480 | } else if (new_fsf_req->status & ZFCP_STATUS_FSFREQ_ABORTNOTNEEDED) { |
478 | zfcp_scsi_dbf_event_abort("lte2", adapter, scpnt, new_fsf_req); | 481 | zfcp_scsi_dbf_event_abort("lte2", adapter, scpnt, new_fsf_req, |
482 | NULL); | ||
479 | retval = SUCCESS; | 483 | retval = SUCCESS; |
480 | } else { | 484 | } else { |
481 | zfcp_scsi_dbf_event_abort("fail", adapter, scpnt, new_fsf_req); | 485 | zfcp_scsi_dbf_event_abort("fail", adapter, scpnt, new_fsf_req, |
486 | NULL); | ||
482 | retval = FAILED; | 487 | retval = FAILED; |
483 | } | 488 | } |
484 | zfcp_fsf_req_free(new_fsf_req); | 489 | zfcp_fsf_req_free(new_fsf_req); |
diff --git a/drivers/s390/scsi/zfcp_sysfs_adapter.c b/drivers/s390/scsi/zfcp_sysfs_adapter.c index 9f262250043a..b29ac25e07f3 100644 --- a/drivers/s390/scsi/zfcp_sysfs_adapter.c +++ b/drivers/s390/scsi/zfcp_sysfs_adapter.c | |||
@@ -27,8 +27,6 @@ | |||
27 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 27 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #define ZFCP_SYSFS_ADAPTER_C_REVISION "$Revision: 1.38 $" | ||
31 | |||
32 | #include "zfcp_ext.h" | 30 | #include "zfcp_ext.h" |
33 | 31 | ||
34 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG | 32 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG |
@@ -57,8 +55,6 @@ ZFCP_DEFINE_ADAPTER_ATTR(status, "0x%08x\n", atomic_read(&adapter->status)); | |||
57 | ZFCP_DEFINE_ADAPTER_ATTR(peer_wwnn, "0x%016llx\n", adapter->peer_wwnn); | 55 | ZFCP_DEFINE_ADAPTER_ATTR(peer_wwnn, "0x%016llx\n", adapter->peer_wwnn); |
58 | ZFCP_DEFINE_ADAPTER_ATTR(peer_wwpn, "0x%016llx\n", adapter->peer_wwpn); | 56 | ZFCP_DEFINE_ADAPTER_ATTR(peer_wwpn, "0x%016llx\n", adapter->peer_wwpn); |
59 | ZFCP_DEFINE_ADAPTER_ATTR(peer_d_id, "0x%06x\n", adapter->peer_d_id); | 57 | ZFCP_DEFINE_ADAPTER_ATTR(peer_d_id, "0x%06x\n", adapter->peer_d_id); |
60 | ZFCP_DEFINE_ADAPTER_ATTR(physical_wwpn, "0x%016llx\n", adapter->physical_wwpn); | ||
61 | ZFCP_DEFINE_ADAPTER_ATTR(physical_s_id, "0x%06x\n", adapter->physical_s_id); | ||
62 | ZFCP_DEFINE_ADAPTER_ATTR(card_version, "0x%04x\n", adapter->hydra_version); | 58 | ZFCP_DEFINE_ADAPTER_ATTR(card_version, "0x%04x\n", adapter->hydra_version); |
63 | ZFCP_DEFINE_ADAPTER_ATTR(lic_version, "0x%08x\n", adapter->fsf_lic_version); | 59 | ZFCP_DEFINE_ADAPTER_ATTR(lic_version, "0x%08x\n", adapter->fsf_lic_version); |
64 | ZFCP_DEFINE_ADAPTER_ATTR(hardware_version, "0x%08x\n", | 60 | ZFCP_DEFINE_ADAPTER_ATTR(hardware_version, "0x%08x\n", |
@@ -243,8 +239,6 @@ static struct attribute *zfcp_adapter_attrs[] = { | |||
243 | &dev_attr_peer_wwnn.attr, | 239 | &dev_attr_peer_wwnn.attr, |
244 | &dev_attr_peer_wwpn.attr, | 240 | &dev_attr_peer_wwpn.attr, |
245 | &dev_attr_peer_d_id.attr, | 241 | &dev_attr_peer_d_id.attr, |
246 | &dev_attr_physical_wwpn.attr, | ||
247 | &dev_attr_physical_s_id.attr, | ||
248 | &dev_attr_card_version.attr, | 242 | &dev_attr_card_version.attr, |
249 | &dev_attr_lic_version.attr, | 243 | &dev_attr_lic_version.attr, |
250 | &dev_attr_status.attr, | 244 | &dev_attr_status.attr, |
diff --git a/drivers/s390/scsi/zfcp_sysfs_driver.c b/drivers/s390/scsi/zfcp_sysfs_driver.c index 77a5e2dcc0ff..6622d55e0a45 100644 --- a/drivers/s390/scsi/zfcp_sysfs_driver.c +++ b/drivers/s390/scsi/zfcp_sysfs_driver.c | |||
@@ -27,8 +27,6 @@ | |||
27 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 27 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #define ZFCP_SYSFS_DRIVER_C_REVISION "$Revision: 1.17 $" | ||
31 | |||
32 | #include "zfcp_ext.h" | 30 | #include "zfcp_ext.h" |
33 | 31 | ||
34 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG | 32 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG |
diff --git a/drivers/s390/scsi/zfcp_sysfs_port.c b/drivers/s390/scsi/zfcp_sysfs_port.c index 3924eb38805c..f401d42db21c 100644 --- a/drivers/s390/scsi/zfcp_sysfs_port.c +++ b/drivers/s390/scsi/zfcp_sysfs_port.c | |||
@@ -28,8 +28,6 @@ | |||
28 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #define ZFCP_SYSFS_PORT_C_REVISION "$Revision: 1.47 $" | ||
32 | |||
33 | #include "zfcp_ext.h" | 31 | #include "zfcp_ext.h" |
34 | 32 | ||
35 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG | 33 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG |
diff --git a/drivers/s390/scsi/zfcp_sysfs_unit.c b/drivers/s390/scsi/zfcp_sysfs_unit.c index 2f50815f65c7..ad5dfb889bee 100644 --- a/drivers/s390/scsi/zfcp_sysfs_unit.c +++ b/drivers/s390/scsi/zfcp_sysfs_unit.c | |||
@@ -28,8 +28,6 @@ | |||
28 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #define ZFCP_SYSFS_UNIT_C_REVISION "$Revision: 1.30 $" | ||
32 | |||
33 | #include "zfcp_ext.h" | 31 | #include "zfcp_ext.h" |
34 | 32 | ||
35 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG | 33 | #define ZFCP_LOG_AREA ZFCP_LOG_AREA_CONFIG |