diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2006-09-18 16:28:49 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-09-23 18:54:24 -0400 |
commit | dd52e0eaf891cd85bf2ca057c15ed6bfd76db4e6 (patch) | |
tree | dc457fe1b732716b715c05864ab02be767414cb4 /drivers/s390/scsi/zfcp_def.h | |
parent | d136205182b1ea4897da31e325a296f8831a6796 (diff) |
[SCSI] zfcp: create private slab caches to guarantee proper data alignment
Create private slab caches in order to guarantee proper alignment of
data structures that get passed to hardware.
Sidenote: with this patch slab cache debugging will finally work on s390
(at least no known problems left).
Furthermore this patch does some minor cleanups:
- store ptr for transport template in struct zfcp_data
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Compile fix ups and
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_def.h')
-rw-r--r-- | drivers/s390/scsi/zfcp_def.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h index 7c84b3d4bd94..ef1cd49184e8 100644 --- a/drivers/s390/scsi/zfcp_def.h +++ b/drivers/s390/scsi/zfcp_def.h | |||
@@ -19,7 +19,6 @@ | |||
19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | |||
23 | #ifndef ZFCP_DEF_H | 22 | #ifndef ZFCP_DEF_H |
24 | #define ZFCP_DEF_H | 23 | #define ZFCP_DEF_H |
25 | 24 | ||
@@ -32,6 +31,10 @@ | |||
32 | #include <linux/blkdev.h> | 31 | #include <linux/blkdev.h> |
33 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
34 | #include <linux/timer.h> | 33 | #include <linux/timer.h> |
34 | #include <linux/slab.h> | ||
35 | #include <linux/mempool.h> | ||
36 | #include <linux/syscalls.h> | ||
37 | #include <linux/ioctl.h> | ||
35 | #include <scsi/scsi.h> | 38 | #include <scsi/scsi.h> |
36 | #include <scsi/scsi_tcq.h> | 39 | #include <scsi/scsi_tcq.h> |
37 | #include <scsi/scsi_cmnd.h> | 40 | #include <scsi/scsi_cmnd.h> |
@@ -39,14 +42,11 @@ | |||
39 | #include <scsi/scsi_host.h> | 42 | #include <scsi/scsi_host.h> |
40 | #include <scsi/scsi_transport.h> | 43 | #include <scsi/scsi_transport.h> |
41 | #include <scsi/scsi_transport_fc.h> | 44 | #include <scsi/scsi_transport_fc.h> |
42 | #include "zfcp_fsf.h" | ||
43 | #include <asm/ccwdev.h> | 45 | #include <asm/ccwdev.h> |
44 | #include <asm/qdio.h> | 46 | #include <asm/qdio.h> |
45 | #include <asm/debug.h> | 47 | #include <asm/debug.h> |
46 | #include <asm/ebcdic.h> | 48 | #include <asm/ebcdic.h> |
47 | #include <linux/mempool.h> | 49 | #include "zfcp_fsf.h" |
48 | #include <linux/syscalls.h> | ||
49 | #include <linux/ioctl.h> | ||
50 | 50 | ||
51 | 51 | ||
52 | /********************* GENERAL DEFINES *********************************/ | 52 | /********************* GENERAL DEFINES *********************************/ |
@@ -1016,6 +1016,7 @@ typedef void zfcp_fsf_req_handler_t(struct zfcp_fsf_req*); | |||
1016 | /* driver data */ | 1016 | /* driver data */ |
1017 | struct zfcp_data { | 1017 | struct zfcp_data { |
1018 | struct scsi_host_template scsi_host_template; | 1018 | struct scsi_host_template scsi_host_template; |
1019 | struct scsi_transport_template *scsi_transport_template; | ||
1019 | atomic_t status; /* Module status flags */ | 1020 | atomic_t status; /* Module status flags */ |
1020 | struct list_head adapter_list_head; /* head of adapter list */ | 1021 | struct list_head adapter_list_head; /* head of adapter list */ |
1021 | struct list_head adapter_remove_lh; /* head of adapters to be | 1022 | struct list_head adapter_remove_lh; /* head of adapters to be |
@@ -1031,6 +1032,9 @@ struct zfcp_data { | |||
1031 | wwn_t init_wwpn; | 1032 | wwn_t init_wwpn; |
1032 | fcp_lun_t init_fcp_lun; | 1033 | fcp_lun_t init_fcp_lun; |
1033 | char *driver_version; | 1034 | char *driver_version; |
1035 | kmem_cache_t *fsf_req_qtcb_cache; | ||
1036 | kmem_cache_t *sr_buffer_cache; | ||
1037 | kmem_cache_t *gid_pn_cache; | ||
1034 | }; | 1038 | }; |
1035 | 1039 | ||
1036 | /** | 1040 | /** |
@@ -1051,7 +1055,7 @@ struct zfcp_sg_list { | |||
1051 | #define ZFCP_POOL_DATA_GID_PN_NR 1 | 1055 | #define ZFCP_POOL_DATA_GID_PN_NR 1 |
1052 | 1056 | ||
1053 | /* struct used by memory pools for fsf_requests */ | 1057 | /* struct used by memory pools for fsf_requests */ |
1054 | struct zfcp_fsf_req_pool_element { | 1058 | struct zfcp_fsf_req_qtcb { |
1055 | struct zfcp_fsf_req fsf_req; | 1059 | struct zfcp_fsf_req fsf_req; |
1056 | struct fsf_qtcb qtcb; | 1060 | struct fsf_qtcb qtcb; |
1057 | }; | 1061 | }; |