mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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
					
				
					 5 changed files with 12 additions and 20 deletions
				
			
		| 
						 | 
					@ -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 a new issue