diff options
author | James Bottomley <JBottomley@Parallels.com> | 2014-12-08 10:42:02 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2014-12-08 10:42:25 -0500 |
commit | 096cbc35eaecf5865a3274f21eae26955b32861b (patch) | |
tree | 8c6f085fd648939bfbc6ae41cd3f0204e32c5e07 /include/scsi | |
parent | dc843ef00e79ef0466d4d66bb20beeccda92e003 (diff) | |
parent | 79855d178557cc3e3ffd179fd26a64cef48dfb30 (diff) |
Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus
Conflicts:
drivers/scsi/scsi_debug.c
Agreed and tested resolution to a merge problem between a fix in scsi_debug
and a driver update
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/libfc.h | 1 | ||||
-rw-r--r-- | include/scsi/libiscsi.h | 2 | ||||
-rw-r--r-- | include/scsi/libsas.h | 17 | ||||
-rw-r--r-- | include/scsi/scsi_device.h | 2 | ||||
-rw-r--r-- | include/scsi/scsi_host.h | 15 |
5 files changed, 10 insertions, 27 deletions
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index 2e0cf568a9c1..93d14daf0994 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h | |||
@@ -1105,7 +1105,6 @@ int fc_eh_abort(struct scsi_cmnd *); | |||
1105 | int fc_eh_device_reset(struct scsi_cmnd *); | 1105 | int fc_eh_device_reset(struct scsi_cmnd *); |
1106 | int fc_eh_host_reset(struct scsi_cmnd *); | 1106 | int fc_eh_host_reset(struct scsi_cmnd *); |
1107 | int fc_slave_alloc(struct scsi_device *); | 1107 | int fc_slave_alloc(struct scsi_device *); |
1108 | int fc_change_queue_depth(struct scsi_device *, int qdepth, int reason); | ||
1109 | 1108 | ||
1110 | /* | 1109 | /* |
1111 | * ELS/CT interface | 1110 | * ELS/CT interface |
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index 728c9ad9feb0..4d1c46aac331 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h | |||
@@ -378,8 +378,6 @@ struct iscsi_host { | |||
378 | /* | 378 | /* |
379 | * scsi host template | 379 | * scsi host template |
380 | */ | 380 | */ |
381 | extern int iscsi_change_queue_depth(struct scsi_device *sdev, int depth, | ||
382 | int reason); | ||
383 | extern int iscsi_eh_abort(struct scsi_cmnd *sc); | 381 | extern int iscsi_eh_abort(struct scsi_cmnd *sc); |
384 | extern int iscsi_eh_recover_target(struct scsi_cmnd *sc); | 382 | extern int iscsi_eh_recover_target(struct scsi_cmnd *sc); |
385 | extern int iscsi_eh_session_reset(struct scsi_cmnd *sc); | 383 | extern int iscsi_eh_session_reset(struct scsi_cmnd *sc); |
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index ef7872c20da9..832dcc9f86ec 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h | |||
@@ -365,12 +365,6 @@ struct asd_sas_phy { | |||
365 | struct scsi_core { | 365 | struct scsi_core { |
366 | struct Scsi_Host *shost; | 366 | struct Scsi_Host *shost; |
367 | 367 | ||
368 | struct mutex task_queue_flush; | ||
369 | spinlock_t task_queue_lock; | ||
370 | struct list_head task_queue; | ||
371 | int task_queue_size; | ||
372 | |||
373 | struct task_struct *queue_thread; | ||
374 | }; | 368 | }; |
375 | 369 | ||
376 | struct sas_ha_event { | 370 | struct sas_ha_event { |
@@ -422,9 +416,6 @@ struct sas_ha_struct { | |||
422 | struct asd_sas_port **sas_port; /* array of valid pointers, must be set */ | 416 | struct asd_sas_port **sas_port; /* array of valid pointers, must be set */ |
423 | int num_phys; /* must be set, gt 0, static */ | 417 | int num_phys; /* must be set, gt 0, static */ |
424 | 418 | ||
425 | /* The class calls this to send a task for execution. */ | ||
426 | int lldd_max_execute_num; | ||
427 | int lldd_queue_size; | ||
428 | int strict_wide_ports; /* both sas_addr and attached_sas_addr must match | 419 | int strict_wide_ports; /* both sas_addr and attached_sas_addr must match |
429 | * their siblings when forming wide ports */ | 420 | * their siblings when forming wide ports */ |
430 | 421 | ||
@@ -612,7 +603,6 @@ struct sas_ssp_task { | |||
612 | 603 | ||
613 | struct sas_task { | 604 | struct sas_task { |
614 | struct domain_device *dev; | 605 | struct domain_device *dev; |
615 | struct list_head list; | ||
616 | 606 | ||
617 | spinlock_t task_state_lock; | 607 | spinlock_t task_state_lock; |
618 | unsigned task_state_flags; | 608 | unsigned task_state_flags; |
@@ -665,8 +655,7 @@ struct sas_domain_function_template { | |||
665 | int (*lldd_dev_found)(struct domain_device *); | 655 | int (*lldd_dev_found)(struct domain_device *); |
666 | void (*lldd_dev_gone)(struct domain_device *); | 656 | void (*lldd_dev_gone)(struct domain_device *); |
667 | 657 | ||
668 | int (*lldd_execute_task)(struct sas_task *, int num, | 658 | int (*lldd_execute_task)(struct sas_task *, gfp_t gfp_flags); |
669 | gfp_t gfp_flags); | ||
670 | 659 | ||
671 | /* Task Management Functions. Must be called from process context. */ | 660 | /* Task Management Functions. Must be called from process context. */ |
672 | int (*lldd_abort_task)(struct sas_task *); | 661 | int (*lldd_abort_task)(struct sas_task *); |
@@ -700,12 +689,10 @@ extern void sas_suspend_ha(struct sas_ha_struct *sas_ha); | |||
700 | int sas_set_phy_speed(struct sas_phy *phy, | 689 | int sas_set_phy_speed(struct sas_phy *phy, |
701 | struct sas_phy_linkrates *rates); | 690 | struct sas_phy_linkrates *rates); |
702 | int sas_phy_reset(struct sas_phy *phy, int hard_reset); | 691 | int sas_phy_reset(struct sas_phy *phy, int hard_reset); |
703 | int sas_queue_up(struct sas_task *task); | ||
704 | extern int sas_queuecommand(struct Scsi_Host * ,struct scsi_cmnd *); | 692 | extern int sas_queuecommand(struct Scsi_Host * ,struct scsi_cmnd *); |
705 | extern int sas_target_alloc(struct scsi_target *); | 693 | extern int sas_target_alloc(struct scsi_target *); |
706 | extern int sas_slave_configure(struct scsi_device *); | 694 | extern int sas_slave_configure(struct scsi_device *); |
707 | extern int sas_change_queue_depth(struct scsi_device *, int new_depth, | 695 | extern int sas_change_queue_depth(struct scsi_device *, int new_depth); |
708 | int reason); | ||
709 | extern int sas_change_queue_type(struct scsi_device *, int qt); | 696 | extern int sas_change_queue_type(struct scsi_device *, int qt); |
710 | extern int sas_bios_param(struct scsi_device *, | 697 | extern int sas_bios_param(struct scsi_device *, |
711 | struct block_device *, | 698 | struct block_device *, |
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 0aeaa003c3c1..6364e23454dd 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h | |||
@@ -380,7 +380,7 @@ extern struct scsi_device *__scsi_iterate_devices(struct Scsi_Host *, | |||
380 | #define __shost_for_each_device(sdev, shost) \ | 380 | #define __shost_for_each_device(sdev, shost) \ |
381 | list_for_each_entry((sdev), &((shost)->__devices), siblings) | 381 | list_for_each_entry((sdev), &((shost)->__devices), siblings) |
382 | 382 | ||
383 | extern void scsi_adjust_queue_depth(struct scsi_device *, int); | 383 | extern int scsi_change_queue_depth(struct scsi_device *, int); |
384 | extern int scsi_track_queue_full(struct scsi_device *, int); | 384 | extern int scsi_track_queue_full(struct scsi_device *, int); |
385 | 385 | ||
386 | extern int scsi_set_medium_removal(struct scsi_device *, char); | 386 | extern int scsi_set_medium_removal(struct scsi_device *, char); |
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index 61a81bf77e28..c8a462ef9a4e 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
@@ -46,12 +46,6 @@ struct blk_queue_tags; | |||
46 | #define DISABLE_CLUSTERING 0 | 46 | #define DISABLE_CLUSTERING 0 |
47 | #define ENABLE_CLUSTERING 1 | 47 | #define ENABLE_CLUSTERING 1 |
48 | 48 | ||
49 | enum { | ||
50 | SCSI_QDEPTH_DEFAULT, /* default requested change, e.g. from sysfs */ | ||
51 | SCSI_QDEPTH_QFULL, /* scsi-ml requested due to queue full */ | ||
52 | SCSI_QDEPTH_RAMP_UP, /* scsi-ml requested due to threshold event */ | ||
53 | }; | ||
54 | |||
55 | struct scsi_host_template { | 49 | struct scsi_host_template { |
56 | struct module *module; | 50 | struct module *module; |
57 | const char *name; | 51 | const char *name; |
@@ -195,7 +189,7 @@ struct scsi_host_template { | |||
195 | * Things currently recommended to be handled at this time include: | 189 | * Things currently recommended to be handled at this time include: |
196 | * | 190 | * |
197 | * 1. Setting the device queue depth. Proper setting of this is | 191 | * 1. Setting the device queue depth. Proper setting of this is |
198 | * described in the comments for scsi_adjust_queue_depth. | 192 | * described in the comments for scsi_change_queue_depth. |
199 | * 2. Determining if the device supports the various synchronous | 193 | * 2. Determining if the device supports the various synchronous |
200 | * negotiation protocols. The device struct will already have | 194 | * negotiation protocols. The device struct will already have |
201 | * responded to INQUIRY and the results of the standard items | 195 | * responded to INQUIRY and the results of the standard items |
@@ -281,7 +275,7 @@ struct scsi_host_template { | |||
281 | * | 275 | * |
282 | * Status: OPTIONAL | 276 | * Status: OPTIONAL |
283 | */ | 277 | */ |
284 | int (* change_queue_depth)(struct scsi_device *, int, int); | 278 | int (* change_queue_depth)(struct scsi_device *, int); |
285 | 279 | ||
286 | /* | 280 | /* |
287 | * Fill in this function to allow the changing of tag types | 281 | * Fill in this function to allow the changing of tag types |
@@ -427,6 +421,11 @@ struct scsi_host_template { | |||
427 | unsigned use_blk_tags:1; | 421 | unsigned use_blk_tags:1; |
428 | 422 | ||
429 | /* | 423 | /* |
424 | * Track QUEUE_FULL events and reduce queue depth on demand. | ||
425 | */ | ||
426 | unsigned track_queue_depth:1; | ||
427 | |||
428 | /* | ||
430 | * This specifies the mode that a LLD supports. | 429 | * This specifies the mode that a LLD supports. |
431 | */ | 430 | */ |
432 | unsigned supported_mode:2; | 431 | unsigned supported_mode:2; |