qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] watchdog: 6300esb: add exit function


From: Li Qiang
Subject: Re: [Qemu-devel] [PATCH] watchdog: 6300esb: add exit function
Date: Tue, 29 Nov 2016 19:06:39 +0800

2016-11-29 18:49 GMT+08:00 Markus Armbruster <address@hidden>:

> Li Qiang <address@hidden> writes:
>
> > Hi
> >
> > 2016-11-29 16:39 GMT+08:00 Richard W.M. Jones <address@hidden>:
> >
> >> On Mon, Nov 28, 2016 at 05:49:04PM -0800, Li Qiang wrote:
> >> > From: Li Qiang <address@hidden>
> >> >
> >> > When the Intel 6300ESB watchdog is hot unplug. The timer allocated
> >> > in realize isn't freed thus leaking memory leak. This patch avoid
> >> > this through adding the exit function.
> >>
> >> I will just note that the real hardware is not hot-pluggable.  However
> >> we don't need to stick to the real hardware capabilities, so that's OK.
> >>
> >>
> >
> > If the hardware is not hot-pluggable, we can set dc->hotpluggable =
> false.
> >
> >
> >> Signed-off-by: Li Qiang <address@hidden>
> >> > ---
> >> >  hw/watchdog/wdt_i6300esb.c | 9 +++++++++
> >> >  1 file changed, 9 insertions(+)
> >> >
> >> > diff --git a/hw/watchdog/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c
> >> > index a83d951..49b3cd1 100644
> >> > --- a/hw/watchdog/wdt_i6300esb.c
> >> > +++ b/hw/watchdog/wdt_i6300esb.c
> >> > @@ -428,6 +428,14 @@ static void i6300esb_realize(PCIDevice *dev,
> Error
> >> **errp)
> >> >      /* qemu_register_coalesced_mmio (addr, 0x10); ? */
> >> >  }
> >> >
> >> > +static void i6300esb_exit(PCIDevice *dev)
> >> > +{
> >> > +    I6300State *d = WATCHDOG_I6300ESB_DEVICE(dev);
> >> > +
> >> > +    timer_del(d->timer);
> >> > +    timer_free(d->timer);
> >> > +}
> >> > +
> >> >  static WatchdogTimerModel model = {
> >> >      .wdt_name = "i6300esb",
> >> >      .wdt_description = "Intel 6300ESB",
> >> > @@ -441,6 +449,7 @@ static void i6300esb_class_init(ObjectClass
> *klass,
> >> void *data)
> >> >      k->config_read = i6300esb_config_read;
> >> >      k->config_write = i6300esb_config_write;
> >> >      k->realize = i6300esb_realize;
> >> > +    k->exit = i6300esb_exit;
> >>
> >> The wdt_diag288.c file seems to use k->unrealize for this purpose.
> >> I don't know which is correct however.
> >>
> >>
> >>
> > wdt_diag288.c uses dc->unrealize for DeviceClass, while k->exit if for
> > PCIDeviceClass.
>
> Method exit() is deprecated, please use unrealize() in new code.
>
> [...]
>

Hello,

IIUC in the PCIDeviceClass definition, there is just an exit member not a
unrealize.
The DeviceClass has an unrealize member.

Thanks.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]