Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
nvme: export nvme_configure_[sq|cq] to public
They have been used when creating admin queue and I/O queues in nvme_configure_adminq() and nvme_create_io[sq|cq]() to create an instance of SQ and CQ to be managed in libvfn with ``ctrl->sq[qid]`` and ``ctrl->cq[qid]``. The problem happens when an application handles admin CQ only when an interrupt (e.g., MSI-X) comes with its own CQ handling behavior on top of it. In this case, nvme_create_iosq() and nvme_create_iocq() high-level APIs issue create I/O queue admin command by __admin() where the command is handled in a sync way by reaping the CQ entry right after the command submission. It goes to collision of the CQ between application CQ reaper class and libvfn __admin() callstack. To solve this issue, export nvme_configure_[sq|cq]() to public to let application manages admin command submission for creating queues. Signed-off-by: Minwoo Im <[email protected]>
- Loading branch information