Commit 08461535 authored by Damien Le Moal's avatar Damien Le Moal Committed by Keith Busch
Browse files

nvmet: Introduce get/set_feature controller operations



The implementation of some features cannot always be done generically by
the target core code. Arbitraion and IRQ coalescing features are
examples of such features: their implementation must be provided (at
least partially) by the target controller driver.

Introduce the set_feature() and get_feature() controller fabrics
operations (in struct nvmet_fabrics_ops) to allow supporting such
features.

Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Tested-by: default avatarRick Wertenbroek <rick.wertenbroek@gmail.com>
Tested-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
parent 1ad8630f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -416,6 +416,10 @@ struct nvmet_fabrics_ops {
	u16 (*create_cq)(struct nvmet_ctrl *ctrl, u16 cqid, u16 flags,
			 u16 qsize, u64 prp1, u16 irq_vector);
	u16 (*delete_cq)(struct nvmet_ctrl *ctrl, u16 cqid);
	u16 (*set_feature)(const struct nvmet_ctrl *ctrl, u8 feat,
			   void *feat_data);
	u16 (*get_feature)(const struct nvmet_ctrl *ctrl, u8 feat,
			   void *feat_data);
};

#define NVMET_MAX_INLINE_BIOVEC	8