All drivers do unregister + cleanup, provide a helper for that.
Cc: linux-scsi@vger.kernel.org
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Benjamin Block <bblock@linux.vnet.ibm.com>
Tested-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
        kfree(job->reply);
 }
 
+void bsg_remove_queue(struct request_queue *q)
+{
+       if (q) {
+               bsg_unregister_queue(q);
+               blk_cleanup_queue(q);
+       }
+}
+EXPORT_SYMBOL_GPL(bsg_remove_queue);
+
 /**
  * bsg_setup_queue - Create and add the bsg hooks so we can receive requests
  * @dev: device to attach bsg device to
 
 static void
 fc_bsg_remove(struct request_queue *q)
 {
-       if (q) {
-               bsg_unregister_queue(q);
-               blk_cleanup_queue(q);
-       }
+       bsg_remove_queue(q);
 }
 
 
 
        struct Scsi_Host *shost = dev_to_shost(dev);
        struct iscsi_cls_host *ihost = shost->shost_data;
 
-       if (ihost->bsg_q) {
-               bsg_unregister_queue(ihost->bsg_q);
-               blk_cleanup_queue(ihost->bsg_q);
-       }
+       bsg_remove_queue(ihost->bsg_q);
        return 0;
 }
 
 
        struct Scsi_Host *shost = dev_to_shost(dev);
        struct request_queue *q = to_sas_host_attrs(shost)->q;
 
-       if (q) {
-               bsg_unregister_queue(q);
-               blk_cleanup_queue(q);
-       }
-
+       bsg_remove_queue(q);
        return 0;
 }
 
 
        if (!hba->bsg_queue)
                return;
 
-       bsg_unregister_queue(hba->bsg_queue);
+       bsg_remove_queue(hba->bsg_queue);
 
        device_del(bsg_dev);
        put_device(bsg_dev);
 
                  unsigned int reply_payload_rcv_len);
 struct request_queue *bsg_setup_queue(struct device *dev, const char *name,
                bsg_job_fn *job_fn, rq_timed_out_fn *timeout, int dd_job_size);
+void bsg_remove_queue(struct request_queue *q);
 void bsg_job_put(struct bsg_job *job);
 int __must_check bsg_job_get(struct bsg_job *job);