diff options
author | Sebastian Ott <sebott@linux.ibm.com> | 2018-06-04 13:39:38 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2018-06-12 09:14:30 -0400 |
commit | 61d388321032be9097935bbc5efdd6ac42691ed4 (patch) | |
tree | 7002e4bc19b6f47ac2e5f14c2837716c41b52e5e | |
parent | d8a72d414baf217a2eea9c73f3aac11052161015 (diff) |
s390/dasd: reshuffle struct dasd_ccw_req
Move some members of struct dasd_ccw_req to get rid of padding
bytes. This saves 16 bytes per dasd request.
Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r-- | drivers/s390/block/dasd_int.h | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index 885e7416c368..55bcbbed1b1d 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h | |||
@@ -158,41 +158,33 @@ do { \ | |||
158 | 158 | ||
159 | struct dasd_ccw_req { | 159 | struct dasd_ccw_req { |
160 | unsigned int magic; /* Eye catcher */ | 160 | unsigned int magic; /* Eye catcher */ |
161 | int intrc; /* internal error, e.g. from start_IO */ | ||
161 | struct list_head devlist; /* for dasd_device request queue */ | 162 | struct list_head devlist; /* for dasd_device request queue */ |
162 | struct list_head blocklist; /* for dasd_block request queue */ | 163 | struct list_head blocklist; /* for dasd_block request queue */ |
163 | |||
164 | /* Where to execute what... */ | ||
165 | struct dasd_block *block; /* the originating block device */ | 164 | struct dasd_block *block; /* the originating block device */ |
166 | struct dasd_device *memdev; /* the device used to allocate this */ | 165 | struct dasd_device *memdev; /* the device used to allocate this */ |
167 | struct dasd_device *startdev; /* device the request is started on */ | 166 | struct dasd_device *startdev; /* device the request is started on */ |
168 | struct dasd_device *basedev; /* base device if no block->base */ | 167 | struct dasd_device *basedev; /* base device if no block->base */ |
169 | void *cpaddr; /* address of ccw or tcw */ | 168 | void *cpaddr; /* address of ccw or tcw */ |
169 | short retries; /* A retry counter */ | ||
170 | unsigned char cpmode; /* 0 = cmd mode, 1 = itcw */ | 170 | unsigned char cpmode; /* 0 = cmd mode, 1 = itcw */ |
171 | char status; /* status of this request */ | 171 | char status; /* status of this request */ |
172 | short retries; /* A retry counter */ | 172 | char lpm; /* logical path mask */ |
173 | unsigned long flags; /* flags of this request */ | 173 | unsigned long flags; /* flags of this request */ |
174 | struct dasd_queue *dq; | 174 | struct dasd_queue *dq; |
175 | |||
176 | /* ... and how */ | ||
177 | unsigned long starttime; /* jiffies time of request start */ | 175 | unsigned long starttime; /* jiffies time of request start */ |
178 | unsigned long expires; /* expiration period in jiffies */ | 176 | unsigned long expires; /* expiration period in jiffies */ |
179 | char lpm; /* logical path mask */ | ||
180 | void *data; /* pointer to data area */ | 177 | void *data; /* pointer to data area */ |
181 | |||
182 | /* these are important for recovering erroneous requests */ | ||
183 | int intrc; /* internal error, e.g. from start_IO */ | ||
184 | struct irb irb; /* device status in case of an error */ | 178 | struct irb irb; /* device status in case of an error */ |
185 | struct dasd_ccw_req *refers; /* ERP-chain queueing. */ | 179 | struct dasd_ccw_req *refers; /* ERP-chain queueing. */ |
186 | void *function; /* originating ERP action */ | 180 | void *function; /* originating ERP action */ |
187 | void *mem_chunk; | 181 | void *mem_chunk; |
188 | 182 | ||
189 | /* these are for statistics only */ | ||
190 | unsigned long buildclk; /* TOD-clock of request generation */ | 183 | unsigned long buildclk; /* TOD-clock of request generation */ |
191 | unsigned long startclk; /* TOD-clock of request start */ | 184 | unsigned long startclk; /* TOD-clock of request start */ |
192 | unsigned long stopclk; /* TOD-clock of request interrupt */ | 185 | unsigned long stopclk; /* TOD-clock of request interrupt */ |
193 | unsigned long endclk; /* TOD-clock of request termination */ | 186 | unsigned long endclk; /* TOD-clock of request termination */ |
194 | 187 | ||
195 | /* Callback that is called after reaching final status. */ | ||
196 | void (*callback)(struct dasd_ccw_req *, void *data); | 188 | void (*callback)(struct dasd_ccw_req *, void *data); |
197 | void *callback_data; | 189 | void *callback_data; |
198 | }; | 190 | }; |