On Thu, 18 Jul 2024 12:37:28 -0700 lon...@linuxonhyperv.com wrote: > From: Malcolm Bumgardner <mbumg...@cisco.com> > > In the device event unregister code, it unconditionally remove all > callbacks which are registered with device_name set to NULL. This results > in many callbacks uncorrectly removed. > > Fix this by only removing callbacks with matching cb_fn and cb_arg. > > Signed-off-by: Malcolm Bumgardner <mbumg...@cisco.com> > > Fixes: a753e53d517b ("eal: add device event monitor framework") > Cc: sta...@dpdk.org > Signed-off-by: Long Li <lon...@microsoft.com> > --- > lib/eal/common/eal_common_dev.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-)
This patch solves the problem in the netvsc driver. The netvsc driver registers a device event callback to discover when the VF is added/removed. When the netvsc driver is stoppped, it unregisters this callback. The bug is that the rte_dev code would end up removing all callbacks, including the callback for other netvsc devices. Perhaps a bugzilla entry or more direct example would have gotten more attention on this. Reviewed-by: Stephen Hemminger <step...@networkplumber.org>