Peter Xu <pet...@redhat.com> writes: > On Sun, Jan 13, 2019 at 10:36:41PM +0800, Fei Li wrote: >> From: Fei Li <shirley17...@gmail.com> >> >> Let's supplement the msi_uninit() when failing to realize >> the pci edu device. >> >> Cc: Markus Armbruster <arm...@redhat.com> >> Cc: Peter Xu <pet...@redhat.com> >> Cc: Michael S. Tsirkin <m...@redhat.com> >> Cc: Marcel Apfelbaum <marcel.apfelb...@gmail.com> >> Signed-off-by: Fei Li <shirley17...@gmail.com> >> --- >> 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. > Reviewed-by: Peter Xu <pet...@redhat.com> > >> qemu_mutex_lock(&edu->thr_mutex); >> edu->stopping = true; >> qemu_mutex_unlock(&edu->thr_mutex); >> -- >> 2.17.2 (Apple Git-113) >> > > Regards,