hw/nvme: add migration blockers for non-supported cases

Let's block migration for cases we don't support:
- SR-IOV
- CMB
- PMR
- SPDM

No functional changes here, because NVMe migration is
not supported at all as of this commit.

Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@futurfusion.io>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
This commit is contained in:
Alexander Mikhalitsyn
2026-06-11 20:08:35 +02:00
committed by Klaus Jensen
parent cb8f285ce9
commit 5320d335fb
3 changed files with 227 additions and 0 deletions

View File

@@ -141,6 +141,18 @@ enum NvmeCapMask {
#define NVME_CAP_SET_CMBS(cap, val) \
((cap) |= (uint64_t)((val) & CAP_CMBS_MASK) << CAP_CMBS_SHIFT)
#define NVME_MIGRATION_SUPPORTED_CAP_BITS ( \
((uint64_t)CAP_MQES_MASK << CAP_MQES_SHIFT) \
| ((uint64_t)CAP_CQR_MASK << CAP_CQR_SHIFT) \
| ((uint64_t)CAP_AMS_MASK << CAP_AMS_SHIFT) \
| ((uint64_t)CAP_TO_MASK << CAP_TO_SHIFT) \
| ((uint64_t)CAP_DSTRD_MASK << CAP_DSTRD_SHIFT) \
| ((uint64_t)CAP_NSSRS_MASK << CAP_NSSRS_SHIFT) \
| ((uint64_t)CAP_CSS_MASK << CAP_CSS_SHIFT) \
| ((uint64_t)CAP_MPSMIN_MASK << CAP_MPSMIN_SHIFT) \
| ((uint64_t)CAP_MPSMAX_MASK << CAP_MPSMAX_SHIFT) \
)
enum NvmeCapCss {
NVME_CAP_CSS_NCSS = 1 << 0,
NVME_CAP_CSS_IOCSS = 1 << 6,