summaryrefslogtreecommitdiff
path: root/include/linux/bsg.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2021-07-29 08:48:42 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2021-07-30 22:22:36 -0400
commitead09dd3aed5cc6a6c6288a87a5bfa9bbc8d5ecf (patch)
tree745a435c272dbf099f340c69c827ee43f6f016a8 /include/linux/bsg.h
parentba51bdafaafc065019c6f6a2cdae006d176cee48 (diff)
scsi: bsg: Simplify device registration
Use the per-device cdev_device_interface to store the bsg data in the char device inode, and thus remove the need to embedd the bsg_class_device structure in the request_queue. Link: https://lore.kernel.org/r/20210729064845.1044147-2-hch@lst.de Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'include/linux/bsg.h')
-rw-r--r--include/linux/bsg.h21
1 files changed, 6 insertions, 15 deletions
diff --git a/include/linux/bsg.h b/include/linux/bsg.h
index b887da20bd41..fa21f79beda2 100644
--- a/include/linux/bsg.h
+++ b/include/linux/bsg.h
@@ -4,10 +4,11 @@
#include <uapi/linux/bsg.h>
+struct bsg_device;
+struct device;
struct request;
struct request_queue;
-#ifdef CONFIG_BLK_DEV_BSG_COMMON
struct bsg_ops {
int (*check_proto)(struct sg_io_v4 *hdr);
int (*fill_hdr)(struct request *rq, struct sg_io_v4 *hdr,
@@ -16,19 +17,9 @@ struct bsg_ops {
void (*free_rq)(struct request *rq);
};
-struct bsg_class_device {
- struct device *class_dev;
- int minor;
- struct request_queue *queue;
- const struct bsg_ops *ops;
-};
+struct bsg_device *bsg_register_queue(struct request_queue *q,
+ struct device *parent, const char *name,
+ const struct bsg_ops *ops);
+void bsg_unregister_queue(struct bsg_device *bcd);
-int bsg_register_queue(struct request_queue *q, struct device *parent,
- const char *name, const struct bsg_ops *ops);
-void bsg_unregister_queue(struct request_queue *q);
-#else
-static inline void bsg_unregister_queue(struct request_queue *q)
-{
-}
-#endif /* CONFIG_BLK_DEV_BSG_COMMON */
#endif /* _LINUX_BSG_H */