[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 7/7] vfio: platform: destory mutex in error path
From: |
Li Qiang |
Subject: |
Re: [Qemu-devel] [PATCH 7/7] vfio: platform: destory mutex in error path |
Date: |
Mon, 22 Oct 2018 09:57:41 +0800 |
Hello Auger,
Auger Eric <address@hidden> 于2018年10月20日周六 上午12:41写道:
> Hi Li,
>
> On 10/19/18 7:20 AM, Li Qiang wrote:
> > Signed-off-by: Li Qiang <address@hidden>
> > ---
> > hw/vfio/platform.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
> > index ba19143..e9d9e80 100644
> > --- a/hw/vfio/platform.c
> > +++ b/hw/vfio/platform.c
> > @@ -668,7 +668,7 @@ static void vfio_platform_realize(DeviceState *dev,
> Error **errp)
> > error_setg(errp, "%s", gerr->message);
> > g_error_free(gerr);
> > g_free(path);
> > - return;
> > + goto out;
> You must set ret to != 0 otherwise the qemu_mutex_destroy will not be
> reached I think.
Also this will fix the fact we are not prepending the
> vfio error prefix in that case, as we should.
>
> Besides I am unsure about the cleanup strategy in case or error in
> vfio_platform_realize(). The qemu process should always exit in case of
> failure in vfio_platform_realize(). Platform devices can only be
> cold-plugged through the qemu CLI.
Got this.
> Cleaning all the allocated resources
> may add a substantial amount of code.
Agree.
Thanks,
Li Qiang
> For instance resources allocated
> in vfio_base_device_init() are not freed either. Comprehensive free in
> realize() functions may only be needed in case of hotplug I think.
>
> Thanks
>
> Eric
> > }
> > g_free(path);
> > vdev->compat = contents;
> > @@ -691,6 +691,8 @@ out:
> > return;
> > }
> >
> > + qemu_mutex_destroy(&vdev->intp_mutex);
> > +
> > if (vdev->vbasedev.name) {
> > error_prepend(errp, ERR_PREFIX, vdev->vbasedev.name);
> > } else {
> >
>
- [Qemu-devel] [PATCH 5/7] vfio: platform: cleanup the notifier in error path, (continued)
- [Qemu-devel] [PATCH 5/7] vfio: platform: cleanup the notifier in error path, Li Qiang, 2018/10/19
- [Qemu-devel] [PATCH 2/7] vfio: ap-device: make it more QOMConventional, Li Qiang, 2018/10/19
- [Qemu-devel] [PATCH 3/7] vfio: drop TYPE_FOO MACRO in VMStateDescription, Li Qiang, 2018/10/19
- [Qemu-devel] [PATCH 1/7] vfio-pci: make "vfio-pci-nohotplug" as MACRO, Li Qiang, 2018/10/19
- [Qemu-devel] [PATCH 6/7] vfio: platform: free timer in error path, Li Qiang, 2018/10/19
- [Qemu-devel] [PATCH 4/7] vfio: paltform: fix a typo, Li Qiang, 2018/10/19
- [Qemu-devel] [PATCH 7/7] vfio: platform: destory mutex in error path, Li Qiang, 2018/10/19
- Re: [Qemu-devel] [PATCH 0/7] vfio: some trivial fixes, Philippe Mathieu-Daudé, 2018/10/19