diff options
author | Christof Schmitt <christof.schmitt@de.ibm.com> | 2011-02-22 13:54:41 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2011-02-25 12:02:03 -0500 |
commit | 087897e36982ef8536dc9c8baed159a31517b5e6 (patch) | |
tree | 3d54e6ca8880f226cfe77c2266a47b6f3474b493 /drivers/s390/scsi/zfcp_aux.c | |
parent | c7b279ae51942c14529bf2806685e9c658f28611 (diff) |
[SCSI] zfcp: Introduce new kmem_cache for FC request and response data
A data buffer that is passed to the hardware must not cross a page
boundary. zfcp uses a series of kmem_caches to align the data to not
cross a page boundary. Introduce a new kmem_cache for the FC requests
sent from the zfcp driver and use it for the ELS ADISC data. The goal
is to migrate to the FC kmem_cache in later patches and remove the
request specific kmem_caches.
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390/scsi/zfcp_aux.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_aux.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c index 81e185602bb2..adbc05c44362 100644 --- a/drivers/s390/scsi/zfcp_aux.c +++ b/drivers/s390/scsi/zfcp_aux.c | |||
@@ -137,10 +137,10 @@ static int __init zfcp_module_init(void) | |||
137 | if (!zfcp_data.gid_pn_cache) | 137 | if (!zfcp_data.gid_pn_cache) |
138 | goto out_gid_cache; | 138 | goto out_gid_cache; |
139 | 139 | ||
140 | zfcp_data.adisc_cache = zfcp_cache_hw_align("zfcp_adisc", | 140 | zfcp_fc_req_cache = zfcp_cache_hw_align("zfcp_fc_req", |
141 | sizeof(struct zfcp_fc_els_adisc)); | 141 | sizeof(struct zfcp_fc_req)); |
142 | if (!zfcp_data.adisc_cache) | 142 | if (!zfcp_fc_req_cache) |
143 | goto out_adisc_cache; | 143 | goto out_fc_cache; |
144 | 144 | ||
145 | zfcp_data.scsi_transport_template = | 145 | zfcp_data.scsi_transport_template = |
146 | fc_attach_transport(&zfcp_transport_functions); | 146 | fc_attach_transport(&zfcp_transport_functions); |
@@ -172,8 +172,8 @@ out_ccw_register: | |||
172 | out_misc: | 172 | out_misc: |
173 | fc_release_transport(zfcp_data.scsi_transport_template); | 173 | fc_release_transport(zfcp_data.scsi_transport_template); |
174 | out_transport: | 174 | out_transport: |
175 | kmem_cache_destroy(zfcp_data.adisc_cache); | 175 | kmem_cache_destroy(zfcp_fc_req_cache); |
176 | out_adisc_cache: | 176 | out_fc_cache: |
177 | kmem_cache_destroy(zfcp_data.gid_pn_cache); | 177 | kmem_cache_destroy(zfcp_data.gid_pn_cache); |
178 | out_gid_cache: | 178 | out_gid_cache: |
179 | kmem_cache_destroy(zfcp_data.qtcb_cache); | 179 | kmem_cache_destroy(zfcp_data.qtcb_cache); |
@@ -190,7 +190,7 @@ static void __exit zfcp_module_exit(void) | |||
190 | ccw_driver_unregister(&zfcp_ccw_driver); | 190 | ccw_driver_unregister(&zfcp_ccw_driver); |
191 | misc_deregister(&zfcp_cfdc_misc); | 191 | misc_deregister(&zfcp_cfdc_misc); |
192 | fc_release_transport(zfcp_data.scsi_transport_template); | 192 | fc_release_transport(zfcp_data.scsi_transport_template); |
193 | kmem_cache_destroy(zfcp_data.adisc_cache); | 193 | kmem_cache_destroy(zfcp_fc_req_cache); |
194 | kmem_cache_destroy(zfcp_data.gid_pn_cache); | 194 | kmem_cache_destroy(zfcp_data.gid_pn_cache); |
195 | kmem_cache_destroy(zfcp_data.qtcb_cache); | 195 | kmem_cache_destroy(zfcp_data.qtcb_cache); |
196 | kmem_cache_destroy(zfcp_data.gpn_ft_cache); | 196 | kmem_cache_destroy(zfcp_data.gpn_ft_cache); |