Tested pass this patch with virtio-net regression tests, everything works well.
Tested-by: Lei Yang <leiy...@redhat.com> On Sat, Aug 2, 2025 at 5:43 PM Akihiko Odaki <od...@rsg.ci.i.u-tokyo.ac.jp> wrote: > > On 2025/08/02 16:26, Michael Tokarev wrote: > > On 27.07.2025 09:22, Akihiko Odaki wrote: > > ... > >> @@ -3942,6 +3943,7 @@ static void > >> virtio_net_device_realize(DeviceState *dev, Error **errp) > >> n->mac_table.macs = g_malloc0(MAC_TABLE_ENTRIES * ETH_ALEN); > >> n->vlans = g_malloc0(MAX_VLAN >> 3); > >> + memset(n->vlans, 0xff, MAX_VLAN >> 3); > > > > A nitpick: we don't need to init this memory with 0 before > > initing it with 0xff. > > > > But looking at this, why can't we embed n->vlans directly into > > this structure, something like the attached patch? > > VMState also needs a change: VMSTATE_BUFFER_POINTER_UNSAFE() should be > replaced with plain VMSTATE_BUFFER(). Actually this is the only user of > VMSTATE_BUFFER_POINTER_UNSAFE(). > > I appreciate if you submit the patch with this VMState change and patch > message. > > > > > This, and maybe a few other fields like it? > > There is another candidate: n->mac_table.macs > > But it is not straightforward to embed this array because it uses > VMSTATE_VBUFFER_MULTIPLY(). > > Regards, > Akihiko Odaki >