On Mon, Jan 14, 2019 at 08:02:23AM +0100, Markus Armbruster wrote:
> 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.

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 <arm...@redhat.com>

Thanks,

-- 
Peter Xu

Reply via email to