hi, yunjian

On 6/3/2020 8:55 PM, wangyunjian wrote:
From: Yunjian Wang <wangyunj...@huawei.com>

When the device_name is NULL, it will remove the event_cb directly.
We need to compare the 'cb_fn' and 'cb_arg' at the same time.

Fixes: a753e53d517b ("eal: add device event monitor framework")
Cc: sta...@dpdk.org

Signed-off-by: Yunjian Wang <wangyunj...@huawei.com>
---
  lib/librte_eal/common/eal_common_dev.c | 7 ++++++-
  1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/eal_common_dev.c 
b/lib/librte_eal/common/eal_common_dev.c
index 4cfdb80..6b465bc 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -516,7 +516,12 @@ static int cmp_dev_name(const struct rte_device *dev, 
const void *_name)
                                    event_cb->cb_arg != cb_arg))
                                        continue;
                        }
-               } else if (device_name != NULL) {
+               } else if (device_name == NULL && event_cb->dev_name == NULL) {
+                       if (event_cb->cb_fn != cb_fn ||
+                           (cb_arg != (void *)-1 &&
+                           event_cb->cb_arg != cb_arg))
+                               continue;
+               } else {


If we expect flush all event_cb when device_name is NULL, why we should check the cb_fn and cb_arg?


                        continue;
                }

Reply via email to