On Mon, Jan 14, 2019 at 08:02:23AM +0100, Markus Armbruster wrote:
Peter Xu <address@hidden> writes:
On Sun, Jan 13, 2019 at 10:36:41PM +0800, Fei Li wrote:
From: Fei Li <address@hidden>
Let's supplement the msi_uninit() when failing to realize
the pci edu device.
Cc: Markus Armbruster <address@hidden>
Cc: Peter Xu <address@hidden>
Cc: Michael S. Tsirkin <address@hidden>
Cc: Marcel Apfelbaum <address@hidden>
Signed-off-by: Fei Li <address@hidden>
---
hw/misc/edu.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/misc/edu.c b/hw/misc/edu.c
index cdcf550dd7..4feb7503de 100644
--- a/hw/misc/edu.c
+++ b/hw/misc/edu.c
@@ -367,6 +367,7 @@ static void pci_edu_uninit(PCIDevice *pdev)
{
EduState *edu = EDU(pdev);
+ msi_uninit(pdev);
It would be cleaner to me to call this after the join() since
edu_fact_thread() could potentially use msi_*() helpers then the
destructions follow the reverse order of init.
Destruction in reverse creation order is good practice.
This being the "QEMU educational PCI device", good practice is even more
desirable.
Very persuasive. With that, I'd like to withdraw my excuse of
"msi_uninit() is optional" too. :)
Fei, please feel free to pick my r-b if you want to repost, and IMHO
you can also add:
Reported-by: Markus Armbruster <address@hidden>
Thanks,