On 11/11/25 7:00 PM, Jason Wang wrote: > On Tue, Nov 11, 2025 at 6:42 PM Paolo Abeni <[email protected]> wrote: >> >> On 11/7/25 5:15 AM, Daniel Jurgens wrote: >>> @@ -7121,6 +7301,15 @@ static int virtnet_probe(struct virtio_device *vdev) >>> } >>> vi->guest_offloads_capable = vi->guest_offloads; >>> >>> + /* Initialize flow filters. Not supported is an acceptable and common >>> + * return code >>> + */ >>> + err = virtnet_ff_init(&vi->ff, vi->vdev); >>> + if (err && err != -EOPNOTSUPP) { >>> + rtnl_unlock(); >>> + goto free_unregister_netdev; >> >> I'm sorry for not noticing the following earlier, but it looks like that >> the code could error out on ENOMEM even if the feature is not really >> supported, when `cap_id_list` allocation fails, which in turn looks a >> bit bad, as the allocated chunk is not that small (32K if I read >> correctly). >> >> @Jason, @Micheal: WDYT? > > I agree. I think virtnet_ff_init() should be only called when the > feature is negotiated. > > Thanks >
Are you suggesting we wait to call init until get/set_rxnfc is called? I don't like that idea. Probe is the right time to do feature discovery. >> >> /P >> >
