mirror of https://github.com/xemu-project/xemu.git
hw/nvme: take a reference on the subsystem on vf realization
Make sure we grab a reference on the subsystem when a VF is realized. Otherwise, the subsytem will be unrealized automatically when the VFs are unregistered and unreffed. This fixes a latent bug but was not exposed until commit08f6328480
("pcie: Release references of virtual functions"). This was then fixed (or rather, hidden) by commitc613ad2512
("pcie_sriov: Do not manually unrealize"), but that was then reverted (due to other issues) in commitb0fdaee5d1
, exposing the bug yet again. Cc: qemu-stable@nongnu.org Fixes:08f6328480
("pcie: Release references of virtual functions") Reviewed-by: Jesper Wendel Devantier <foss@defmacro.it> Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
This commit is contained in:
parent
e85987786d
commit
6651f8f2e5
|
@ -8841,6 +8841,13 @@ static void nvme_realize(PCIDevice *pci_dev, Error **errp)
|
|||
*/
|
||||
n->params.serial = g_strdup(pn->params.serial);
|
||||
n->subsys = pn->subsys;
|
||||
|
||||
/*
|
||||
* Assigning this link (strong link) causes an `object_unref` later in
|
||||
* `object_release_link_property`. Increment the refcount to balance
|
||||
* this out.
|
||||
*/
|
||||
object_ref(OBJECT(pn->subsys));
|
||||
}
|
||||
|
||||
if (!nvme_check_params(n, errp)) {
|
||||
|
|
Loading…
Reference in New Issue