mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
[SCSI] modify change_queue_depth to take in reason why it is being called
This patch modifies scsi_host_template->change_queue_depth so that it takes an argument indicating why it is being called. This will be used so that if a LLD needs to do some extra processing when handling queue fulls or later ramp ups, it can do so. This is a simple port of the drivers setting a change_queue_depth callback. In the patch I just have these LLDs adjust the queue depth if the user was requesting it. Signed-off-by: Mike Christie <[email protected]> [Vasu.Dev: v2 Also converted pmcraid_change_queue_depth and then verified all modules compile using "make allmodconfig" for any new build warnings on X86_64. Updated original description after combing two original patches from Mike to make this patch git bisectable.] Signed-off-by: Vasu Dev <[email protected]> [jejb: fixed up 53c700] Signed-off-by: James Bottomley <[email protected]>
This commit is contained in:
parent
dbf9bfe615
commit
e881a172da
27 changed files with 119 additions and 32 deletions
|
|
@ -919,7 +919,7 @@ int fc_slave_alloc(struct scsi_device *sdev);
|
|||
/*
|
||||
* Adjust the queue depth.
|
||||
*/
|
||||
int fc_change_queue_depth(struct scsi_device *sdev, int qdepth);
|
||||
int fc_change_queue_depth(struct scsi_device *sdev, int qdepth, int reason);
|
||||
|
||||
/*
|
||||
* Change the tag type.
|
||||
|
|
|
|||
|
|
@ -333,7 +333,8 @@ struct iscsi_host {
|
|||
/*
|
||||
* scsi host template
|
||||
*/
|
||||
extern int iscsi_change_queue_depth(struct scsi_device *sdev, int depth);
|
||||
extern int iscsi_change_queue_depth(struct scsi_device *sdev, int depth,
|
||||
int reason);
|
||||
extern int iscsi_eh_abort(struct scsi_cmnd *sc);
|
||||
extern int iscsi_eh_target_reset(struct scsi_cmnd *sc);
|
||||
extern int iscsi_eh_device_reset(struct scsi_cmnd *sc);
|
||||
|
|
|
|||
|
|
@ -634,7 +634,8 @@ extern int sas_target_alloc(struct scsi_target *);
|
|||
extern int sas_slave_alloc(struct scsi_device *);
|
||||
extern int sas_slave_configure(struct scsi_device *);
|
||||
extern void sas_slave_destroy(struct scsi_device *);
|
||||
extern int sas_change_queue_depth(struct scsi_device *, int new_depth);
|
||||
extern int sas_change_queue_depth(struct scsi_device *, int new_depth,
|
||||
int reason);
|
||||
extern int sas_change_queue_type(struct scsi_device *, int qt);
|
||||
extern int sas_bios_param(struct scsi_device *,
|
||||
struct block_device *,
|
||||
|
|
|
|||
|
|
@ -43,6 +43,12 @@ struct blk_queue_tags;
|
|||
#define DISABLE_CLUSTERING 0
|
||||
#define ENABLE_CLUSTERING 1
|
||||
|
||||
enum {
|
||||
SCSI_QDEPTH_DEFAULT, /* default requested change, e.g. from sysfs */
|
||||
SCSI_QDEPTH_QFULL, /* scsi-ml requested due to queue full */
|
||||
SCSI_QDEPTH_RAMP_UP, /* scsi-ml requested due to threshhold event */
|
||||
};
|
||||
|
||||
struct scsi_host_template {
|
||||
struct module *module;
|
||||
const char *name;
|
||||
|
|
@ -294,7 +300,7 @@ struct scsi_host_template {
|
|||
*
|
||||
* Status: OPTIONAL
|
||||
*/
|
||||
int (* change_queue_depth)(struct scsi_device *, int);
|
||||
int (* change_queue_depth)(struct scsi_device *, int, int);
|
||||
|
||||
/*
|
||||
* Fill in this function to allow the changing of tag types
|
||||
|
|
|
|||
Loading…
Reference in a new issue