* [Qemu-devel] [PATCH] net: eepro100: fix memory leak in device uninit
@ 2016-10-08 12:07 Li Qiang
2016-10-08 16:19 ` Stefan Weil
2016-10-20 2:36 ` Jason Wang
0 siblings, 2 replies; 5+ messages in thread
From: Li Qiang @ 2016-10-08 12:07 UTC (permalink / raw)
To: jasowang, qemu-devel; +Cc: Li Qiang
From: Li Qiang <liqiang6-s@360.cn>
The exit dispatch of eepro100 network card device doesn't free
the 's->vmstate' field which was allocated in device realize thus
leading a host memory leak. This patch avoid this.
Signed-off-by: Li Qiang <liqiang6-s@360.cn>
---
hw/net/eepro100.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/net/eepro100.c b/hw/net/eepro100.c
index bab4dbf..4bf71f2 100644
--- a/hw/net/eepro100.c
+++ b/hw/net/eepro100.c
@@ -1843,6 +1843,7 @@ static void pci_nic_uninit(PCIDevice *pci_dev)
EEPRO100State *s = DO_UPCAST(EEPRO100State, dev, pci_dev);
vmstate_unregister(&pci_dev->qdev, s->vmstate, s);
+ g_free(s->vmstate);
eeprom93xx_free(&pci_dev->qdev, s->eeprom);
qemu_del_nic(s->nic);
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] net: eepro100: fix memory leak in device uninit
2016-10-08 12:07 [Qemu-devel] [PATCH] net: eepro100: fix memory leak in device uninit Li Qiang
@ 2016-10-08 16:19 ` Stefan Weil
2016-10-08 16:43 ` Stefan Weil
2016-10-20 2:36 ` Jason Wang
1 sibling, 1 reply; 5+ messages in thread
From: Stefan Weil @ 2016-10-08 16:19 UTC (permalink / raw)
To: Li Qiang, jasowang, qemu-devel; +Cc: Li Qiang
Am 08.10.2016 um 14:07 schrieb Li Qiang:
> From: Li Qiang <liqiang6-s@360.cn>
>
> The exit dispatch of eepro100 network card device doesn't free
> the 's->vmstate' field which was allocated in device realize thus
> leading a host memory leak. This patch avoid this.
>
> Signed-off-by: Li Qiang <liqiang6-s@360.cn>
Thank you for reporting this memory leak.
I think that an even better solution would be avoiding the dynamic
memory allocation. We could use this declaration for example:
/* vmstate for each particular nic */
VMStateDescription vmstate;
Do you want to prepare a new patch, or should I do it?
Regards
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] net: eepro100: fix memory leak in device uninit
2016-10-08 16:19 ` Stefan Weil
@ 2016-10-08 16:43 ` Stefan Weil
2016-10-09 10:23 ` Li Qiang
0 siblings, 1 reply; 5+ messages in thread
From: Stefan Weil @ 2016-10-08 16:43 UTC (permalink / raw)
To: Li Qiang, jasowang, qemu-devel; +Cc: Li Qiang
Am 08.10.2016 um 18:19 schrieb Stefan Weil:
> Am 08.10.2016 um 14:07 schrieb Li Qiang:
>> From: Li Qiang <liqiang6-s@360.cn>
>>
>> The exit dispatch of eepro100 network card device doesn't free
>> the 's->vmstate' field which was allocated in device realize thus
>> leading a host memory leak. This patch avoid this.
>>
>> Signed-off-by: Li Qiang <liqiang6-s@360.cn>
>
> Thank you for reporting this memory leak.
>
> I think that an even better solution would be avoiding the dynamic
> memory allocation. We could use this declaration for example:
>
> /* vmstate for each particular nic */
> VMStateDescription vmstate;
>
> Do you want to prepare a new patch, or should I do it?
While thinking more about it, the solution used for e1000 looks better:
vmstate could be a static const object, and the name field would always
be "e100", no matter which specific nic was chosen.
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] net: eepro100: fix memory leak in device uninit
2016-10-08 16:43 ` Stefan Weil
@ 2016-10-09 10:23 ` Li Qiang
0 siblings, 0 replies; 5+ messages in thread
From: Li Qiang @ 2016-10-09 10:23 UTC (permalink / raw)
To: Stefan Weil; +Cc: jasowang, qemu-devel, Li Qiang
Hello Stefan,
I'm not familiar with the migration. In order not miss something, I think
you can provide this patch.
Thanks.
2016-10-09 0:43 GMT+08:00 Stefan Weil <sw@weilnetz.de>:
> Am 08.10.2016 um 18:19 schrieb Stefan Weil:
>
>> Am 08.10.2016 um 14:07 schrieb Li Qiang:
>>
>>> From: Li Qiang <liqiang6-s@360.cn>
>>>
>>> The exit dispatch of eepro100 network card device doesn't free
>>> the 's->vmstate' field which was allocated in device realize thus
>>> leading a host memory leak. This patch avoid this.
>>>
>>> Signed-off-by: Li Qiang <liqiang6-s@360.cn>
>>>
>>
>> Thank you for reporting this memory leak.
>>
>> I think that an even better solution would be avoiding the dynamic
>> memory allocation. We could use this declaration for example:
>>
>> /* vmstate for each particular nic */
>> VMStateDescription vmstate;
>>
>> Do you want to prepare a new patch, or should I do it?
>>
>
> While thinking more about it, the solution used for e1000 looks better:
> vmstate could be a static const object, and the name field would always be
> "e100", no matter which specific nic was chosen.
>
> Stefan
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] net: eepro100: fix memory leak in device uninit
2016-10-08 12:07 [Qemu-devel] [PATCH] net: eepro100: fix memory leak in device uninit Li Qiang
2016-10-08 16:19 ` Stefan Weil
@ 2016-10-20 2:36 ` Jason Wang
1 sibling, 0 replies; 5+ messages in thread
From: Jason Wang @ 2016-10-20 2:36 UTC (permalink / raw)
To: Li Qiang, qemu-devel; +Cc: Li Qiang
On 2016年10月08日 20:07, Li Qiang wrote:
> From: Li Qiang <liqiang6-s@360.cn>
>
> The exit dispatch of eepro100 network card device doesn't free
> the 's->vmstate' field which was allocated in device realize thus
> leading a host memory leak. This patch avoid this.
>
> Signed-off-by: Li Qiang <liqiang6-s@360.cn>
> ---
> hw/net/eepro100.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/net/eepro100.c b/hw/net/eepro100.c
> index bab4dbf..4bf71f2 100644
> --- a/hw/net/eepro100.c
> +++ b/hw/net/eepro100.c
> @@ -1843,6 +1843,7 @@ static void pci_nic_uninit(PCIDevice *pci_dev)
> EEPRO100State *s = DO_UPCAST(EEPRO100State, dev, pci_dev);
>
> vmstate_unregister(&pci_dev->qdev, s->vmstate, s);
> + g_free(s->vmstate);
> eeprom93xx_free(&pci_dev->qdev, s->eeprom);
> qemu_del_nic(s->nic);
> }
Applied, thanks.
We may want to switch to use dc->vmsd instead of this in the future.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-10-20 2:36 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-08 12:07 [Qemu-devel] [PATCH] net: eepro100: fix memory leak in device uninit Li Qiang
2016-10-08 16:19 ` Stefan Weil
2016-10-08 16:43 ` Stefan Weil
2016-10-09 10:23 ` Li Qiang
2016-10-20 2:36 ` Jason Wang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.