Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3707a186 authored by Hannes Reinecke's avatar Hannes Reinecke Committed by Christoph Hellwig
Browse files

esp_scsi: make number of tags configurable



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.

Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent a87bf293
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -2317,6 +2317,10 @@ 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;
	else if (esp->num_tags >= ESP_MAX_TAG)
		esp->num_tags = ESP_MAX_TAG - 1;
	esp->host->transportt = esp_transport_template;
	esp->host->max_lun = ESP_MAX_LUN;
	esp->host->cmd_per_lun = 2;
@@ -2403,12 +2407,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);

		scsi_change_queue_depth(dev, goal_tags);
	}
	if (dev->tagged_supported)
		scsi_change_queue_depth(dev, esp->num_tags);

	tp->flags |= ESP_TGT_DISCONNECT;

+1 −2
Original line number Diff line number Diff line
@@ -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;