.. | .. |
---|
110 | 110 | atomic_t device_busy; /* commands actually active on LLDD */ |
---|
111 | 111 | atomic_t device_blocked; /* Device returned QUEUE_FULL. */ |
---|
112 | 112 | |
---|
| 113 | + atomic_t restarts; |
---|
113 | 114 | spinlock_t list_lock; |
---|
114 | | - struct list_head cmd_list; /* queue of in use SCSI Command structures */ |
---|
115 | 115 | struct list_head starved_entry; |
---|
116 | 116 | unsigned short queue_depth; /* How deep of a queue we want */ |
---|
117 | 117 | unsigned short max_queue_depth; /* max queue depth */ |
---|
.. | .. |
---|
141 | 141 | const char * rev; /* ... "nullnullnullnull" before scan */ |
---|
142 | 142 | |
---|
143 | 143 | #define SCSI_VPD_PG_LEN 255 |
---|
| 144 | + struct scsi_vpd __rcu *vpd_pg0; |
---|
144 | 145 | struct scsi_vpd __rcu *vpd_pg83; |
---|
145 | 146 | struct scsi_vpd __rcu *vpd_pg80; |
---|
| 147 | + struct scsi_vpd __rcu *vpd_pg89; |
---|
146 | 148 | unsigned char current_tag; /* current tag */ |
---|
147 | 149 | struct scsi_target *sdev_target; /* used only for single_lun */ |
---|
148 | 150 | |
---|
.. | .. |
---|
171 | 173 | * because we did a bus reset. */ |
---|
172 | 174 | unsigned use_10_for_rw:1; /* first try 10-byte read / write */ |
---|
173 | 175 | unsigned use_10_for_ms:1; /* first try 10-byte mode sense/select */ |
---|
| 176 | + unsigned set_dbd_for_ms:1; /* Set "DBD" field in mode sense */ |
---|
174 | 177 | unsigned no_report_opcodes:1; /* no REPORT SUPPORTED OPERATION CODES */ |
---|
175 | 178 | unsigned no_write_same:1; /* no WRITE SAME command */ |
---|
176 | 179 | unsigned use_16_for_rw:1; /* Use read/write(16) over read/write(10) */ |
---|
.. | .. |
---|
202 | 205 | unsigned unmap_limit_for_ws:1; /* Use the UNMAP limit for WRITE SAME */ |
---|
203 | 206 | unsigned rpm_autosuspend:1; /* Enable runtime autosuspend at device |
---|
204 | 207 | * creation time */ |
---|
205 | | - /* If non-zero, use timeout (in jiffies) for all commands */ |
---|
206 | | - unsigned int timeout_override; |
---|
| 208 | + |
---|
| 209 | + bool offline_already; /* Device offline message logged */ |
---|
207 | 210 | |
---|
208 | 211 | atomic_t disk_events_disable_depth; /* disable depth for disk events */ |
---|
209 | 212 | |
---|
.. | .. |
---|
228 | 231 | struct scsi_device_handler *handler; |
---|
229 | 232 | void *handler_data; |
---|
230 | 233 | |
---|
| 234 | + size_t dma_drain_len; |
---|
| 235 | + void *dma_drain_buf; |
---|
| 236 | + |
---|
231 | 237 | unsigned char access_state; |
---|
232 | 238 | struct mutex state_mutex; |
---|
233 | 239 | enum scsi_device_state sdev_state; |
---|
234 | 240 | struct task_struct *quiesced_by; |
---|
235 | | - unsigned long sdev_data[0]; |
---|
236 | 241 | |
---|
237 | 242 | ANDROID_KABI_RESERVE(1); |
---|
238 | 243 | ANDROID_KABI_RESERVE(2); |
---|
239 | 244 | ANDROID_KABI_RESERVE(3); |
---|
240 | 245 | ANDROID_KABI_RESERVE(4); |
---|
| 246 | + |
---|
| 247 | + unsigned long sdev_data[]; |
---|
241 | 248 | } __attribute__((aligned(sizeof(unsigned long)))); |
---|
242 | 249 | |
---|
243 | 250 | #define to_scsi_device(d) \ |
---|
.. | .. |
---|
321 | 328 | char scsi_level; |
---|
322 | 329 | enum scsi_target_state state; |
---|
323 | 330 | void *hostdata; /* available to low-level driver */ |
---|
324 | | - unsigned long starget_data[0]; /* for the transport */ |
---|
| 331 | + unsigned long starget_data[]; /* for the transport */ |
---|
325 | 332 | /* starget_data must be the last element!!!! */ |
---|
326 | 333 | } __attribute__((aligned(sizeof(unsigned long)))); |
---|
327 | 334 | |
---|
.. | .. |
---|
465 | 472 | extern void sdev_enable_disk_events(struct scsi_device *sdev); |
---|
466 | 473 | extern int scsi_vpd_lun_id(struct scsi_device *, char *, size_t); |
---|
467 | 474 | extern int scsi_vpd_tpg_id(struct scsi_device *, int *); |
---|
468 | | -extern void scsi_set_cmd_timeout_override(struct scsi_device *sdev, |
---|
469 | | - unsigned int timeout); |
---|
470 | 475 | |
---|
471 | 476 | #ifdef CONFIG_PM |
---|
472 | 477 | extern int scsi_autopm_get_device(struct scsi_device *); |
---|