On Mon, Nov 18, 2013 at 02:25:40PM +0100, Stefan Hajnoczi wrote: > On Mon, Nov 18, 2013 at 04:20:12PM +0800, Amos Kong wrote: > > @@ -967,6 +968,27 @@ void print_net_client(Monitor *mon, NetClientState *nc) > > nc->info_str); > > } > > > > +void rxfilter_notify(NetClientState *nc, Object *obj) > > +{ > > + QObject *event_data; > > + gchar *path = object_get_canonical_path(obj); > > + > > + if (nc->rxfilter_notify_enabled) { > > + if (nc->name) { > > + event_data = qobject_from_jsonf("{ 'name': %s, 'path': %s }", > > + nc->name, path); > > + } else { > > + event_data = qobject_from_jsonf("{ 'path': %s }", path); > > + } > > + monitor_protocol_event(QEVENT_NIC_RX_FILTER_CHANGED, event_data); > > + qobject_decref(event_data); > > + > > + /* disable event notification to avoid events flooding */ > > + nc->rxfilter_notify_enabled = 0; > > Only hw/net/virtio-net.c uses nc->rxfilter_notify_enabled. This > function isn't reusable in its current form so I'm left wondering what > the point of this patch is? > > If you have patches that invoke rxfilter_notify() from other NICs then > please submit them together in a series.
I don't have patch to change other NICs to send rxfilter notify right now. So I will send a patch to fix the leak. We can move the function to net.c in future. > Otherwise, let's not move things around just for the sake of it, > especially when the refactoring is not done correctly. > > Stefan -- Amos.