nvmet: provide aen bit functions for multiple controller types
Move nvmet_aen_disabled and nvmet_clear_aen in preparation for other types of controllers to use, initially the discovery controller. Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Родитель
50a909db36
Коммит
6c8312ad50
|
@ -19,19 +19,6 @@
|
|||
#include <asm/unaligned.h>
|
||||
#include "nvmet.h"
|
||||
|
||||
/*
|
||||
* This helper allows us to clear the AEN based on the RAE bit,
|
||||
* Please use this helper when processing the log pages which are
|
||||
* associated with the AEN.
|
||||
*/
|
||||
static inline void nvmet_clear_aen(struct nvmet_req *req, u32 aen_bit)
|
||||
{
|
||||
int rae = le32_to_cpu(req->cmd->common.cdw10[0]) & 1 << 15;
|
||||
|
||||
if (!rae)
|
||||
clear_bit(aen_bit, &req->sq->ctrl->aen_masked);
|
||||
}
|
||||
|
||||
u32 nvmet_get_log_page_len(struct nvme_command *cmd)
|
||||
{
|
||||
u32 len = le16_to_cpu(cmd->get_log_page.numdu);
|
||||
|
|
|
@ -150,13 +150,6 @@ static void nvmet_add_async_event(struct nvmet_ctrl *ctrl, u8 event_type,
|
|||
schedule_work(&ctrl->async_event_work);
|
||||
}
|
||||
|
||||
static bool nvmet_aen_disabled(struct nvmet_ctrl *ctrl, u32 aen)
|
||||
{
|
||||
if (!(READ_ONCE(ctrl->aen_enabled) & aen))
|
||||
return true;
|
||||
return test_and_set_bit(aen, &ctrl->aen_masked);
|
||||
}
|
||||
|
||||
static void nvmet_add_to_changed_ns_log(struct nvmet_ctrl *ctrl, __le32 nsid)
|
||||
{
|
||||
u32 i;
|
||||
|
|
|
@ -342,6 +342,21 @@ struct nvmet_async_event {
|
|||
u8 log_page;
|
||||
};
|
||||
|
||||
static inline void nvmet_clear_aen(struct nvmet_req *req, u32 aen_bit)
|
||||
{
|
||||
int rae = le32_to_cpu(req->cmd->common.cdw10[0]) & 1 << 15;
|
||||
|
||||
if (!rae)
|
||||
clear_bit(aen_bit, &req->sq->ctrl->aen_masked);
|
||||
}
|
||||
|
||||
static inline bool nvmet_aen_disabled(struct nvmet_ctrl *ctrl, u32 aen)
|
||||
{
|
||||
if (!(READ_ONCE(ctrl->aen_enabled) & aen))
|
||||
return true;
|
||||
return test_and_set_bit(aen, &ctrl->aen_masked);
|
||||
}
|
||||
|
||||
u16 nvmet_parse_connect_cmd(struct nvmet_req *req);
|
||||
u16 nvmet_bdev_parse_io_cmd(struct nvmet_req *req);
|
||||
u16 nvmet_file_parse_io_cmd(struct nvmet_req *req);
|
||||
|
|
Загрузка…
Ссылка в новой задаче