aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
authorJames Bottomley <JBottomley@Parallels.com>2014-12-08 10:42:02 -0500
committerJames Bottomley <JBottomley@Parallels.com>2014-12-08 10:42:25 -0500
commit096cbc35eaecf5865a3274f21eae26955b32861b (patch)
tree8c6f085fd648939bfbc6ae41cd3f0204e32c5e07 /include/scsi
parentdc843ef00e79ef0466d4d66bb20beeccda92e003 (diff)
parent79855d178557cc3e3ffd179fd26a64cef48dfb30 (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.h1
-rw-r--r--include/scsi/libiscsi.h2
-rw-r--r--include/scsi/libsas.h17
-rw-r--r--include/scsi/scsi_device.h2
-rw-r--r--include/scsi/scsi_host.h15
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 *);
1105int fc_eh_device_reset(struct scsi_cmnd *); 1105int fc_eh_device_reset(struct scsi_cmnd *);
1106int fc_eh_host_reset(struct scsi_cmnd *); 1106int fc_eh_host_reset(struct scsi_cmnd *);
1107int fc_slave_alloc(struct scsi_device *); 1107int fc_slave_alloc(struct scsi_device *);
1108int 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 */
381extern int iscsi_change_queue_depth(struct scsi_device *sdev, int depth,
382 int reason);
383extern int iscsi_eh_abort(struct scsi_cmnd *sc); 381extern int iscsi_eh_abort(struct scsi_cmnd *sc);
384extern int iscsi_eh_recover_target(struct scsi_cmnd *sc); 382extern int iscsi_eh_recover_target(struct scsi_cmnd *sc);
385extern int iscsi_eh_session_reset(struct scsi_cmnd *sc); 383extern 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 {
365struct scsi_core { 365struct 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
376struct sas_ha_event { 370struct 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
613struct sas_task { 604struct 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);
700int sas_set_phy_speed(struct sas_phy *phy, 689int sas_set_phy_speed(struct sas_phy *phy,
701 struct sas_phy_linkrates *rates); 690 struct sas_phy_linkrates *rates);
702int sas_phy_reset(struct sas_phy *phy, int hard_reset); 691int sas_phy_reset(struct sas_phy *phy, int hard_reset);
703int sas_queue_up(struct sas_task *task);
704extern int sas_queuecommand(struct Scsi_Host * ,struct scsi_cmnd *); 692extern int sas_queuecommand(struct Scsi_Host * ,struct scsi_cmnd *);
705extern int sas_target_alloc(struct scsi_target *); 693extern int sas_target_alloc(struct scsi_target *);
706extern int sas_slave_configure(struct scsi_device *); 694extern int sas_slave_configure(struct scsi_device *);
707extern int sas_change_queue_depth(struct scsi_device *, int new_depth, 695extern int sas_change_queue_depth(struct scsi_device *, int new_depth);
708 int reason);
709extern int sas_change_queue_type(struct scsi_device *, int qt); 696extern int sas_change_queue_type(struct scsi_device *, int qt);
710extern int sas_bios_param(struct scsi_device *, 697extern 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
383extern void scsi_adjust_queue_depth(struct scsi_device *, int); 383extern int scsi_change_queue_depth(struct scsi_device *, int);
384extern int scsi_track_queue_full(struct scsi_device *, int); 384extern int scsi_track_queue_full(struct scsi_device *, int);
385 385
386extern int scsi_set_medium_removal(struct scsi_device *, char); 386extern 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
49enum {
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
55struct scsi_host_template { 49struct 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;