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;
}