OSDN Git Service

hw/nvme: fix controller hot unplugging
authorKlaus Jensen <k.jensen@samsung.com>
Fri, 23 Apr 2021 16:55:11 +0000 (18:55 +0200)
committerKlaus Jensen <k.jensen@samsung.com>
Mon, 26 Jul 2021 19:09:38 +0000 (21:09 +0200)
commit5ffbaeed164da1a87619a3abfadee0c7d63ea1c4
tree105a5dc927ad658e409a72bd38e3eb59c8f0d7e4
parent51e90178f710d64400f8d01035dc7e4f4f9cb9da
hw/nvme: fix controller hot unplugging

Prior to this patch the nvme-ns devices are always children of the
NvmeBus owned by the NvmeCtrl. This causes the namespaces to be
unrealized when the parent device is removed. However, when subsystems
are involved, this is not what we want since the namespaces may be
attached to other controllers as well.

This patch adds an additional NvmeBus on the subsystem device. When
nvme-ns devices are realized, if the parent controller device is linked
to a subsystem, the parent bus is set to the subsystem one instead. This
makes sure that namespaces are kept alive and not unrealized.

Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
hw/nvme/ctrl.c
hw/nvme/ns.c
hw/nvme/nvme.h
hw/nvme/subsys.c