mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
nvmet: Implement arbitration feature support
NVMe base specification v2.1 mandates support for the arbitration feature (NVME_FEAT_ARBITRATION). Introduce the data structure struct nvmet_feat_arbitration to define the high, medium and low priority weight fields and the arbitration burst field of this feature and implement the functions nvmet_get_feat_arbitration() and nvmet_set_feat_arbitration() functions to get and set these fields. Since there is no generic way to implement support for the arbitration feature, these functions respectively use the controller get_feature() and set_feature() operations to process the feature with the help of the controller driver. If the controller driver does not implement these operations and a get feature command or a set feature command for this feature is received, the command is failed with an invalid field error. Signed-off-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Tested-by: Rick Wertenbroek <rick.wertenbroek@gmail.com> Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Signed-off-by: Keith Busch <kbusch@kernel.org>
This commit is contained in:
committed by
Keith Busch
parent
f1ecd491b6
commit
a0ed77d4c9
@@ -921,4 +921,11 @@ struct nvmet_feat_irq_config {
|
||||
bool cd;
|
||||
};
|
||||
|
||||
struct nvmet_feat_arbitration {
|
||||
u8 hpw;
|
||||
u8 mpw;
|
||||
u8 lpw;
|
||||
u8 ab;
|
||||
};
|
||||
|
||||
#endif /* _NVMET_H */
|
||||
|
||||
Reference in New Issue
Block a user