[SCSI] zfcp: fix spinlock initialization

Move initialization of locks and lists to adapter allocation function.
Otherwise we might end up with some uninitialized locks, like e.g. the
erp locks which only will be inititialized if an error recovery thread
for an adapter will be started.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

authored by Heiko Carstens and committed by James Bottomley c48a29d0 8bdf810f

+14 -9
+14
drivers/s390/scsi/zfcp_aux.c
··· 996 996 spin_lock_init(&adapter->fsf_req_list_lock); 997 997 INIT_LIST_HEAD(&adapter->fsf_req_list_head); 998 998 999 + /* initialize debug locks */ 1000 + 1001 + spin_lock_init(&adapter->erp_dbf_lock); 1002 + spin_lock_init(&adapter->hba_dbf_lock); 1003 + spin_lock_init(&adapter->san_dbf_lock); 1004 + spin_lock_init(&adapter->scsi_dbf_lock); 1005 + 1006 + /* initialize error recovery stuff */ 1007 + 1008 + rwlock_init(&adapter->erp_lock); 1009 + sema_init(&adapter->erp_ready_sem, 0); 1010 + INIT_LIST_HEAD(&adapter->erp_ready_head); 1011 + INIT_LIST_HEAD(&adapter->erp_running_head); 1012 + 999 1013 /* initialize abort lock */ 1000 1014 rwlock_init(&adapter->abort_lock); 1001 1015
-4
drivers/s390/scsi/zfcp_dbf.c
··· 926 926 char dbf_name[DEBUG_MAX_NAME_LEN]; 927 927 928 928 /* debug feature area which records recovery activity */ 929 - spin_lock_init(&adapter->erp_dbf_lock); 930 929 sprintf(dbf_name, "zfcp_%s_erp", zfcp_get_busid_by_adapter(adapter)); 931 930 adapter->erp_dbf = debug_register(dbf_name, dbfsize, 2, 932 931 sizeof(struct zfcp_erp_dbf_record)); ··· 935 936 debug_set_level(adapter->erp_dbf, 3); 936 937 937 938 /* debug feature area which records HBA (FSF and QDIO) conditions */ 938 - spin_lock_init(&adapter->hba_dbf_lock); 939 939 sprintf(dbf_name, "zfcp_%s_hba", zfcp_get_busid_by_adapter(adapter)); 940 940 adapter->hba_dbf = debug_register(dbf_name, dbfsize, 1, 941 941 sizeof(struct zfcp_hba_dbf_record)); ··· 945 947 debug_set_level(adapter->hba_dbf, 3); 946 948 947 949 /* debug feature area which records SAN command failures and recovery */ 948 - spin_lock_init(&adapter->san_dbf_lock); 949 950 sprintf(dbf_name, "zfcp_%s_san", zfcp_get_busid_by_adapter(adapter)); 950 951 adapter->san_dbf = debug_register(dbf_name, dbfsize, 1, 951 952 sizeof(struct zfcp_san_dbf_record)); ··· 955 958 debug_set_level(adapter->san_dbf, 6); 956 959 957 960 /* debug feature area which records SCSI command failures and recovery */ 958 - spin_lock_init(&adapter->scsi_dbf_lock); 959 961 sprintf(dbf_name, "zfcp_%s_scsi", zfcp_get_busid_by_adapter(adapter)); 960 962 adapter->scsi_dbf = debug_register(dbf_name, dbfsize, 1, 961 963 sizeof(struct zfcp_scsi_dbf_record));
-5
drivers/s390/scsi/zfcp_erp.c
··· 1071 1071 1072 1072 atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_UP, &adapter->status); 1073 1073 1074 - rwlock_init(&adapter->erp_lock); 1075 - INIT_LIST_HEAD(&adapter->erp_ready_head); 1076 - INIT_LIST_HEAD(&adapter->erp_running_head); 1077 - sema_init(&adapter->erp_ready_sem, 0); 1078 - 1079 1074 retval = kernel_thread(zfcp_erp_thread, adapter, SIGCHLD); 1080 1075 if (retval < 0) { 1081 1076 ZFCP_LOG_NORMAL("error: creation of erp thread failed for "