diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 11:19:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 11:19:33 -0400 |
commit | df3d80f5a5c74168be42788364d13cf6c83c7b9c (patch) | |
tree | 892a964c2fd28d028f2fb7471e8543d3f4006a58 /drivers/s390/scsi/zfcp_aux.c | |
parent | 3d06f7a5f74a813cee817c4b30b5e6f0398da0be (diff) | |
parent | c8e91b0a8fc8493e3bf3efcb3c8f866e9453cf1c (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (207 commits)
[SCSI] gdth: fix CONFIG_ISA build failure
[SCSI] esp_scsi: remove __dev{init,exit}
[SCSI] gdth: !use_sg cleanup and use of scsi accessors
[SCSI] gdth: Move members from SCp to gdth_cmndinfo, stage 2
[SCSI] gdth: Setup proper per-command private data
[SCSI] gdth: Remove gdth_ctr_tab[]
[SCSI] gdth: switch to modern scsi host registration
[SCSI] gdth: gdth_interrupt() gdth_get_status() & gdth_wait() fixes
[SCSI] gdth: clean up host private data
[SCSI] gdth: Remove virt hosts
[SCSI] gdth: Reorder scsi_host_template intitializers
[SCSI] gdth: kill gdth_{read,write}[bwl] wrappers
[SCSI] gdth: Remove 2.4.x support, in-kernel changelog
[SCSI] gdth: split out pci probing
[SCSI] gdth: split out eisa probing
[SCSI] gdth: split out isa probing
gdth: Make one abuse of scsi_cmnd less obvious
[SCSI] NCR5380: Use scsi_eh API for REQUEST_SENSE invocation
[SCSI] usb storage: use scsi_eh API in REQUEST_SENSE execution
[SCSI] scsi_error: Refactoring scsi_error to facilitate in synchronous REQUEST_SENSE
...
Diffstat (limited to 'drivers/s390/scsi/zfcp_aux.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_aux.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c index 90aa53fc4f3e..7507067351bd 100644 --- a/drivers/s390/scsi/zfcp_aux.c +++ b/drivers/s390/scsi/zfcp_aux.c | |||
@@ -891,7 +891,7 @@ zfcp_unit_dequeue(struct zfcp_unit *unit) | |||
891 | /* | 891 | /* |
892 | * Allocates a combined QTCB/fsf_req buffer for erp actions and fcp/SCSI | 892 | * Allocates a combined QTCB/fsf_req buffer for erp actions and fcp/SCSI |
893 | * commands. | 893 | * commands. |
894 | * It also genrates fcp-nameserver request/response buffer and unsolicited | 894 | * It also genrates fcp-nameserver request/response buffer and unsolicited |
895 | * status read fsf_req buffers. | 895 | * status read fsf_req buffers. |
896 | * | 896 | * |
897 | * locks: must only be called with zfcp_data.config_sema taken | 897 | * locks: must only be called with zfcp_data.config_sema taken |
@@ -982,7 +982,7 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device) | |||
982 | struct zfcp_adapter *adapter; | 982 | struct zfcp_adapter *adapter; |
983 | 983 | ||
984 | /* | 984 | /* |
985 | * Note: It is safe to release the list_lock, as any list changes | 985 | * Note: It is safe to release the list_lock, as any list changes |
986 | * are protected by the config_sema, which must be held to get here | 986 | * are protected by the config_sema, which must be held to get here |
987 | */ | 987 | */ |
988 | 988 | ||
@@ -1038,6 +1038,10 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device) | |||
1038 | spin_lock_init(&adapter->san_dbf_lock); | 1038 | spin_lock_init(&adapter->san_dbf_lock); |
1039 | spin_lock_init(&adapter->scsi_dbf_lock); | 1039 | spin_lock_init(&adapter->scsi_dbf_lock); |
1040 | 1040 | ||
1041 | retval = zfcp_adapter_debug_register(adapter); | ||
1042 | if (retval) | ||
1043 | goto debug_register_failed; | ||
1044 | |||
1041 | /* initialize error recovery stuff */ | 1045 | /* initialize error recovery stuff */ |
1042 | 1046 | ||
1043 | rwlock_init(&adapter->erp_lock); | 1047 | rwlock_init(&adapter->erp_lock); |
@@ -1058,7 +1062,6 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device) | |||
1058 | /* mark adapter unusable as long as sysfs registration is not complete */ | 1062 | /* mark adapter unusable as long as sysfs registration is not complete */ |
1059 | atomic_set_mask(ZFCP_STATUS_COMMON_REMOVE, &adapter->status); | 1063 | atomic_set_mask(ZFCP_STATUS_COMMON_REMOVE, &adapter->status); |
1060 | 1064 | ||
1061 | adapter->ccw_device = ccw_device; | ||
1062 | dev_set_drvdata(&ccw_device->dev, adapter); | 1065 | dev_set_drvdata(&ccw_device->dev, adapter); |
1063 | 1066 | ||
1064 | if (zfcp_sysfs_adapter_create_files(&ccw_device->dev)) | 1067 | if (zfcp_sysfs_adapter_create_files(&ccw_device->dev)) |
@@ -1085,6 +1088,8 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device) | |||
1085 | generic_services_failed: | 1088 | generic_services_failed: |
1086 | zfcp_sysfs_adapter_remove_files(&adapter->ccw_device->dev); | 1089 | zfcp_sysfs_adapter_remove_files(&adapter->ccw_device->dev); |
1087 | sysfs_failed: | 1090 | sysfs_failed: |
1091 | zfcp_adapter_debug_unregister(adapter); | ||
1092 | debug_register_failed: | ||
1088 | dev_set_drvdata(&ccw_device->dev, NULL); | 1093 | dev_set_drvdata(&ccw_device->dev, NULL); |
1089 | zfcp_reqlist_free(adapter); | 1094 | zfcp_reqlist_free(adapter); |
1090 | failed_low_mem_buffers: | 1095 | failed_low_mem_buffers: |
@@ -1130,6 +1135,8 @@ zfcp_adapter_dequeue(struct zfcp_adapter *adapter) | |||
1130 | goto out; | 1135 | goto out; |
1131 | } | 1136 | } |
1132 | 1137 | ||
1138 | zfcp_adapter_debug_unregister(adapter); | ||
1139 | |||
1133 | /* remove specified adapter data structure from list */ | 1140 | /* remove specified adapter data structure from list */ |
1134 | write_lock_irq(&zfcp_data.config_lock); | 1141 | write_lock_irq(&zfcp_data.config_lock); |
1135 | list_del(&adapter->list); | 1142 | list_del(&adapter->list); |