On 21/11/2014 10:27, Hannes Reinecke wrote:
> Add a field 'num_tags' to the esp structure to allow drivers
> to overwrite the number of avialable tags if required.
> Default is ESP_DEFAULT_TAGS.
> 
> Signed-off-by: Hannes Reinecke <[email protected]>
> ---
>  drivers/scsi/esp_scsi.c | 10 ++++------
>  drivers/scsi/esp_scsi.h |  3 +--
>  2 files changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/scsi/esp_scsi.c b/drivers/scsi/esp_scsi.c
> index 38c23e0..99cd42f 100644
> --- a/drivers/scsi/esp_scsi.c
> +++ b/drivers/scsi/esp_scsi.c
> @@ -2317,6 +2317,8 @@ int scsi_esp_register(struct esp *esp, struct device 
> *dev)
>       static int instance;
>       int err;
>  
> +     if (!esp->num_tags)
> +             esp->num_tags = ESP_DEFAULT_TAGS;
>       esp->host->transportt = esp_transport_template;
>       esp->host->max_lun = ESP_MAX_LUN;
>       esp->host->cmd_per_lun = 2;
> @@ -2403,12 +2405,8 @@ static int esp_slave_configure(struct scsi_device *dev)
>       struct esp *esp = shost_priv(dev->host);
>       struct esp_target_data *tp = &esp->target[dev->id];
>  
> -     if (dev->tagged_supported) {
> -             /* XXX make this configurable somehow XXX */
> -             int goal_tags = min(ESP_DEFAULT_TAGS, ESP_MAX_TAG);

min(16, 256) = 16

Might add a WARN_ON(esp->num_tags > ESP_MAX_TAG) after you assign
esp->num_tags.


> -             scsi_adjust_queue_depth(dev, goal_tags);
> -     }
> +     if (dev->tagged_supported)
> +             scsi_adjust_queue_depth(dev, esp->num_tags);
>  
>       tp->flags |= ESP_TGT_DISCONNECT;
>  
> diff --git a/drivers/scsi/esp_scsi.h b/drivers/scsi/esp_scsi.h
> index b5862e4..975d293 100644
> --- a/drivers/scsi/esp_scsi.h
> +++ b/drivers/scsi/esp_scsi.h
> @@ -283,7 +283,6 @@ struct esp_cmd_entry {
>       struct completion       *eh_done;
>  };
>  
> -/* XXX make this configurable somehow XXX */
>  #define ESP_DEFAULT_TAGS     16
>  
>  #define ESP_MAX_TARGET               16
> @@ -445,7 +444,7 @@ struct esp {
>       u8                      prev_soff;
>       u8                      prev_stp;
>       u8                      prev_cfg3;
> -     u8                      __pad;
> +     u8                      num_tags;
>  
>       struct list_head        esp_cmd_pool;
>  
> 

Reviewed-by: Paolo Bonzini <[email protected]>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to