Apart from some random small fixes here and there, the major thing here is cleaning up how we handle command sets. Prior to this series, the controller would not correctly validate namespace command sets against CC.CSS. This is fixed here.
The most clean way of doing this (as far as I could tell) was to make sure an nvme-subsys device exists (creating it if necessary). This allows us to "store" the namespaces in the subsystem, using existing functionality, and attach supported namespaces when the device is started (instead of when the device is created/realized). Signed-off-by: Klaus Jensen <k.jen...@samsung.com> --- Klaus Jensen (9): hw/nvme: always initialize a subsystem hw/nvme: make oacs dynamic hw/nvme: add knob for doorbell buffer config support nvme: fix iocs status code values hw/nvme: be compliant wrt. dsm processing limits hw/nvme: rework csi handling hw/nvme: only set command abort requested when cancelled due to Abort hw/nvme: set error status code explicitly for misc commands hw/nvme: remove nvme_aio_err() hw/nvme/ctrl.c | 430 ++++++++++++++++++++++++++++----------------------- hw/nvme/ns.c | 62 ++------ hw/nvme/nvme.h | 10 +- include/block/nvme.h | 22 ++- 4 files changed, 276 insertions(+), 248 deletions(-) --- base-commit: ca80a5d026a280762e0772615f1988db542b3ade change-id: 20241216-nvme-queue-f4151c5d7507 Best regards, -- Klaus Jensen <k.jen...@samsung.com>