diff options
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/scsi_lib.c | 19 | ||||
-rw-r--r-- | drivers/scsi/scsi_transport_fc.c | 6 | ||||
-rw-r--r-- | drivers/scsi/scsi_transport_iscsi.c | 3 |
3 files changed, 10 insertions, 18 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 3d6b364a8d82..79505169e740 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -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); diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c index 03577bde6ac5..afcedec58d17 100644 --- a/drivers/scsi/scsi_transport_fc.c +++ b/drivers/scsi/scsi_transport_fc.c @@ -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"); diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index 42bca619f854..04ebe6e65b83 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c @@ -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 " |