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

Commit a62182f3 authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

scsi: provide a generic change_queue_type method



Most drivers use exactly the same implementation, so provide it as a
library function.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
Reviewed-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
parent 1d520328
Loading
Loading
Loading
Loading
+1 −23
Original line number Diff line number Diff line
@@ -2258,28 +2258,6 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
	return 0;
}

/**
 * srp_change_queue_type - changing device queue tag type
 * @sdev: scsi device struct
 * @tag_type: requested tag type
 *
 * Returns queue tag type.
 */
static int
srp_change_queue_type(struct scsi_device *sdev, int tag_type)
{
	if (sdev->tagged_supported) {
		scsi_set_tag_type(sdev, tag_type);
		if (tag_type)
			scsi_activate_tcq(sdev, sdev->queue_depth);
		else
			scsi_deactivate_tcq(sdev, sdev->queue_depth);
	} else
		tag_type = 0;

	return tag_type;
}

/**
 * srp_change_queue_depth - setting device queue depth
 * @sdev: scsi device struct
@@ -2600,7 +2578,7 @@ static struct scsi_host_template srp_template = {
	.info				= srp_target_info,
	.queuecommand			= srp_queuecommand,
	.change_queue_depth             = srp_change_queue_depth,
	.change_queue_type              = srp_change_queue_type,
	.change_queue_type              = scsi_change_queue_type,
	.eh_abort_handler		= srp_abort,
	.eh_device_reset_handler	= srp_reset_device,
	.eh_host_reset_handler		= srp_reset_host,
+1 −1
Original line number Diff line number Diff line
@@ -2784,7 +2784,7 @@ static struct scsi_host_template bnx2fc_shost_template = {
	.eh_host_reset_handler	= fc_eh_host_reset,
	.slave_alloc		= fc_slave_alloc,
	.change_queue_depth	= fc_change_queue_depth,
	.change_queue_type	= fc_change_queue_type,
	.change_queue_type	= scsi_change_queue_type,
	.this_id		= -1,
	.cmd_per_lun		= 3,
	.use_clustering		= ENABLE_CLUSTERING,
+0 −1
Original line number Diff line number Diff line
@@ -976,7 +976,6 @@ int esas2r_slave_alloc(struct scsi_device *dev);
int esas2r_slave_configure(struct scsi_device *dev);
void esas2r_slave_destroy(struct scsi_device *dev);
int esas2r_change_queue_depth(struct scsi_device *dev, int depth, int reason);
int esas2r_change_queue_type(struct scsi_device *dev, int type);
long esas2r_proc_ioctl(struct file *fp, unsigned int cmd, unsigned long arg);

/* SCSI error handler (eh) functions */
+1 −19
Original line number Diff line number Diff line
@@ -258,7 +258,7 @@ static struct scsi_host_template driver_template = {
	.slave_alloc			= esas2r_slave_alloc,
	.slave_destroy			= esas2r_slave_destroy,
	.change_queue_depth		= esas2r_change_queue_depth,
	.change_queue_type		= esas2r_change_queue_type,
	.change_queue_type		= scsi_change_queue_type,
	.max_sectors			= 0xFFFF,
};

@@ -1268,24 +1268,6 @@ int esas2r_change_queue_depth(struct scsi_device *dev, int depth, int reason)
	return dev->queue_depth;
}

int esas2r_change_queue_type(struct scsi_device *dev, int type)
{
	esas2r_log(ESAS2R_LOG_INFO, "change_queue_type %p, %d", dev, type);

	if (dev->tagged_supported) {
		scsi_set_tag_type(dev, type);

		if (type)
			scsi_activate_tcq(dev, dev->queue_depth);
		else
			scsi_deactivate_tcq(dev, dev->queue_depth);
	} else {
		type = 0;
	}

	return type;
}

int esas2r_slave_alloc(struct scsi_device *dev)
{
	return 0;
+1 −1
Original line number Diff line number Diff line
@@ -281,7 +281,7 @@ static struct scsi_host_template fcoe_shost_template = {
	.eh_host_reset_handler = fc_eh_host_reset,
	.slave_alloc = fc_slave_alloc,
	.change_queue_depth = fc_change_queue_depth,
	.change_queue_type = fc_change_queue_type,
	.change_queue_type = scsi_change_queue_type,
	.this_id = -1,
	.cmd_per_lun = 3,
	.can_queue = FCOE_MAX_OUTSTANDING_COMMANDS,
Loading