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: Christoph Hellwig <hch@lst.de> Acked-by: Martin K. Petersen <martin.petersen@oracle.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
eeff68c561
commit
d48777a633
|
@ -2082,7 +2082,7 @@ static u64 scsi_calculate_bounce_limit(struct Scsi_Host *shost)
|
||||||
return bounce_limit;
|
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;
|
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);
|
blk_queue_dma_alignment(q, 0x03);
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(__scsi_init_queue);
|
||||||
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);
|
|
||||||
|
|
||||||
struct request_queue *scsi_alloc_queue(struct scsi_device *sdev)
|
struct request_queue *scsi_alloc_queue(struct scsi_device *sdev)
|
||||||
{
|
{
|
||||||
struct request_queue *q;
|
struct request_queue *q;
|
||||||
|
|
||||||
q = __scsi_alloc_queue(sdev->host, scsi_request_fn);
|
q = blk_init_queue(scsi_request_fn, NULL);
|
||||||
if (!q)
|
if (!q)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
__scsi_init_queue(sdev->host, q);
|
||||||
blk_queue_prep_rq(q, scsi_prep_fn);
|
blk_queue_prep_rq(q, scsi_prep_fn);
|
||||||
blk_queue_unprep_rq(q, scsi_unprep_fn);
|
blk_queue_unprep_rq(q, scsi_unprep_fn);
|
||||||
blk_queue_softirq_done(q, scsi_softirq_done);
|
blk_queue_softirq_done(q, scsi_softirq_done);
|
||||||
|
|
|
@ -3776,7 +3776,7 @@ fc_bsg_hostadd(struct Scsi_Host *shost, struct fc_host_attrs *fc_host)
|
||||||
snprintf(bsg_name, sizeof(bsg_name),
|
snprintf(bsg_name, sizeof(bsg_name),
|
||||||
"fc_host%d", shost->host_no);
|
"fc_host%d", shost->host_no);
|
||||||
|
|
||||||
q = __scsi_alloc_queue(shost, bsg_request_fn);
|
q = blk_init_queue(bsg_request_fn, NULL);
|
||||||
if (!q) {
|
if (!q) {
|
||||||
dev_err(dev,
|
dev_err(dev,
|
||||||
"fc_host%d: bsg interface failed to initialize - no request queue\n",
|
"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;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__scsi_init_queue(shost, q);
|
||||||
err = bsg_setup_queue(dev, q, bsg_name, fc_bsg_dispatch,
|
err = bsg_setup_queue(dev, q, bsg_name, fc_bsg_dispatch,
|
||||||
i->f->dd_bsg_size);
|
i->f->dd_bsg_size);
|
||||||
if (err) {
|
if (err) {
|
||||||
|
@ -3831,12 +3832,13 @@ fc_bsg_rportadd(struct Scsi_Host *shost, struct fc_rport *rport)
|
||||||
if (!i->f->bsg_request)
|
if (!i->f->bsg_request)
|
||||||
return -ENOTSUPP;
|
return -ENOTSUPP;
|
||||||
|
|
||||||
q = __scsi_alloc_queue(shost, bsg_request_fn);
|
q = blk_init_queue(bsg_request_fn, NULL);
|
||||||
if (!q) {
|
if (!q) {
|
||||||
dev_err(dev, "bsg interface failed to initialize - no request queue\n");
|
dev_err(dev, "bsg interface failed to initialize - no request queue\n");
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__scsi_init_queue(shost, q);
|
||||||
err = bsg_setup_queue(dev, q, NULL, fc_bsg_dispatch, i->f->dd_bsg_size);
|
err = bsg_setup_queue(dev, q, NULL, fc_bsg_dispatch, i->f->dd_bsg_size);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(dev, "failed to setup bsg queue\n");
|
dev_err(dev, "failed to setup bsg queue\n");
|
||||||
|
|
|
@ -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);
|
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)
|
if (!q)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
__scsi_init_queue(shost, q);
|
||||||
ret = bsg_setup_queue(dev, q, bsg_name, iscsi_bsg_host_dispatch, 0);
|
ret = bsg_setup_queue(dev, q, bsg_name, iscsi_bsg_host_dispatch, 0);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
shost_printk(KERN_ERR, shost, "bsg interface failed to "
|
shost_printk(KERN_ERR, shost, "bsg interface failed to "
|
||||||
|
|
|
@ -826,8 +826,6 @@ extern void scsi_block_requests(struct Scsi_Host *);
|
||||||
|
|
||||||
struct class_container;
|
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
|
* These two functions are used to allocate and free a pseudo device
|
||||||
* which will connect to the host adapter itself rather than any
|
* which will connect to the host adapter itself rather than any
|
||||||
|
|
|
@ -119,4 +119,6 @@ scsi_transport_device_data(struct scsi_device *sdev)
|
||||||
+ shost->transportt->device_private_offset;
|
+ shost->transportt->device_private_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q);
|
||||||
|
|
||||||
#endif /* SCSI_TRANSPORT_H */
|
#endif /* SCSI_TRANSPORT_H */
|
||||||
|
|
Loading…
Reference in New Issue