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

Commit d48777a6 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

scsi: remove __scsi_alloc_queue



Instead do an internal export of __scsi_init_queue for the transport
classes that export BSG nodes.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent eeff68c5
Loading
Loading
Loading
Loading
+4 −15
Original line number Diff line number Diff line
@@ -2082,7 +2082,7 @@ static u64 scsi_calculate_bounce_limit(struct Scsi_Host *shost)
	return bounce_limit;
}

static void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q)
void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q)
{
	struct device *dev = shost->dma_dev;

@@ -2117,28 +2117,17 @@ static void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q)
	 */
	blk_queue_dma_alignment(q, 0x03);
}

struct request_queue *__scsi_alloc_queue(struct Scsi_Host *shost,
					 request_fn_proc *request_fn)
{
	struct request_queue *q;

	q = blk_init_queue(request_fn, NULL);
	if (!q)
		return NULL;
	__scsi_init_queue(shost, q);
	return q;
}
EXPORT_SYMBOL(__scsi_alloc_queue);
EXPORT_SYMBOL_GPL(__scsi_init_queue);

struct request_queue *scsi_alloc_queue(struct scsi_device *sdev)
{
	struct request_queue *q;

	q = __scsi_alloc_queue(sdev->host, scsi_request_fn);
	q = blk_init_queue(scsi_request_fn, NULL);
	if (!q)
		return NULL;

	__scsi_init_queue(sdev->host, q);
	blk_queue_prep_rq(q, scsi_prep_fn);
	blk_queue_unprep_rq(q, scsi_unprep_fn);
	blk_queue_softirq_done(q, scsi_softirq_done);
+4 −2
Original line number Diff line number Diff line
@@ -3776,7 +3776,7 @@ fc_bsg_hostadd(struct Scsi_Host *shost, struct fc_host_attrs *fc_host)
	snprintf(bsg_name, sizeof(bsg_name),
		 "fc_host%d", shost->host_no);

	q = __scsi_alloc_queue(shost, bsg_request_fn);
	q = blk_init_queue(bsg_request_fn, NULL);
	if (!q) {
		dev_err(dev,
			"fc_host%d: bsg interface failed to initialize - no request queue\n",
@@ -3784,6 +3784,7 @@ fc_bsg_hostadd(struct Scsi_Host *shost, struct fc_host_attrs *fc_host)
		return -ENOMEM;
	}

	__scsi_init_queue(shost, q);
	err = bsg_setup_queue(dev, q, bsg_name, fc_bsg_dispatch,
				 i->f->dd_bsg_size);
	if (err) {
@@ -3831,12 +3832,13 @@ fc_bsg_rportadd(struct Scsi_Host *shost, struct fc_rport *rport)
	if (!i->f->bsg_request)
		return -ENOTSUPP;

	q = __scsi_alloc_queue(shost, bsg_request_fn);
	q = blk_init_queue(bsg_request_fn, NULL);
	if (!q) {
		dev_err(dev, "bsg interface failed to initialize - no request queue\n");
		return -ENOMEM;
	}

	__scsi_init_queue(shost, q);
	err = bsg_setup_queue(dev, q, NULL, fc_bsg_dispatch, i->f->dd_bsg_size);
	if (err) {
		dev_err(dev, "failed to setup bsg queue\n");
+2 −1
Original line number Diff line number Diff line
@@ -1544,10 +1544,11 @@ iscsi_bsg_host_add(struct Scsi_Host *shost, struct iscsi_cls_host *ihost)

	snprintf(bsg_name, sizeof(bsg_name), "iscsi_host%d", shost->host_no);

	q = __scsi_alloc_queue(shost, bsg_request_fn);
	q = blk_init_queue(bsg_request_fn, NULL);
	if (!q)
		return -ENOMEM;

	__scsi_init_queue(shost, q);
	ret = bsg_setup_queue(dev, q, bsg_name, iscsi_bsg_host_dispatch, 0);
	if (ret) {
		shost_printk(KERN_ERR, shost, "bsg interface failed to "
+0 −2
Original line number Diff line number Diff line
@@ -826,8 +826,6 @@ extern void scsi_block_requests(struct Scsi_Host *);

struct class_container;

extern struct request_queue *__scsi_alloc_queue(struct Scsi_Host *shost,
						void (*) (struct request_queue *));
/*
 * These two functions are used to allocate and free a pseudo device
 * which will connect to the host adapter itself rather than any
+2 −0
Original line number Diff line number Diff line
@@ -119,4 +119,6 @@ scsi_transport_device_data(struct scsi_device *sdev)
		+ shost->transportt->device_private_offset;
}

void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q);

#endif /* SCSI_TRANSPORT_H */