aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/s390/scsi/zfcp_aux.c15
-rw-r--r--drivers/s390/scsi/zfcp_ccw.c11
-rw-r--r--drivers/s390/scsi/zfcp_ext.h1
3 files changed, 14 insertions, 13 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index baef2ec7482f..12de1ce9a92d 100644
--- a/drivers/s390/scsi/zfcp_aux.c
+++ b/drivers/s390/scsi/zfcp_aux.c
@@ -189,7 +189,7 @@ static int __init zfcp_module_init(void)
189 goto out_misc; 189 goto out_misc;
190 } 190 }
191 191
192 retval = zfcp_ccw_register(); 192 retval = ccw_driver_register(&zfcp_ccw_driver);
193 if (retval) { 193 if (retval) {
194 pr_err("The zfcp device driver could not register with " 194 pr_err("The zfcp device driver could not register with "
195 "the common I/O layer\n"); 195 "the common I/O layer\n");
@@ -218,6 +218,19 @@ out:
218 218
219module_init(zfcp_module_init); 219module_init(zfcp_module_init);
220 220
221static void __exit zfcp_module_exit(void)
222{
223 ccw_driver_unregister(&zfcp_ccw_driver);
224 misc_deregister(&zfcp_cfdc_misc);
225 fc_release_transport(zfcp_data.scsi_transport_template);
226 kmem_cache_destroy(zfcp_data.gid_pn_cache);
227 kmem_cache_destroy(zfcp_data.sr_buffer_cache);
228 kmem_cache_destroy(zfcp_data.qtcb_cache);
229 kmem_cache_destroy(zfcp_data.gpn_ft_cache);
230}
231
232module_exit(zfcp_module_exit);
233
221/** 234/**
222 * zfcp_get_unit_by_lun - find unit in unit list of port by FCP LUN 235 * zfcp_get_unit_by_lun - find unit in unit list of port by FCP LUN
223 * @port: pointer to port to search for unit 236 * @port: pointer to port to search for unit
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c
index ca8dffcd1e02..4d35902a0cc5 100644
--- a/drivers/s390/scsi/zfcp_ccw.c
+++ b/drivers/s390/scsi/zfcp_ccw.c
@@ -279,14 +279,3 @@ struct ccw_driver zfcp_ccw_driver = {
279 .thaw = zfcp_ccw_activate, 279 .thaw = zfcp_ccw_activate,
280 .restore = zfcp_ccw_activate, 280 .restore = zfcp_ccw_activate,
281}; 281};
282
283/**
284 * zfcp_ccw_register - ccw register function
285 *
286 * Registers the driver at the common i/o layer. This function will be called
287 * at module load time/system start.
288 */
289int __init zfcp_ccw_register(void)
290{
291 return ccw_driver_register(&zfcp_ccw_driver);
292}
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h
index 1e3ec708505b..5f205f85e6f9 100644
--- a/drivers/s390/scsi/zfcp_ext.h
+++ b/drivers/s390/scsi/zfcp_ext.h
@@ -27,7 +27,6 @@ extern void zfcp_adapter_release(struct kref *);
27extern void zfcp_adapter_unregister(struct zfcp_adapter *); 27extern void zfcp_adapter_unregister(struct zfcp_adapter *);
28 28
29/* zfcp_ccw.c */ 29/* zfcp_ccw.c */
30extern int zfcp_ccw_register(void);
31extern int zfcp_ccw_priv_sch(struct zfcp_adapter *); 30extern int zfcp_ccw_priv_sch(struct zfcp_adapter *);
32extern struct ccw_driver zfcp_ccw_driver; 31extern struct ccw_driver zfcp_ccw_driver;
33extern struct zfcp_adapter *zfcp_ccw_adapter_by_cdev(struct ccw_device *); 32extern struct zfcp_adapter *zfcp_ccw_adapter_by_cdev(struct ccw_device *);