From: Yunjian Wang <[email protected]>

Fix return value, using -EAGAIN instead of 0 when the callback is busy
and using -ENOENT instead of 0 when the callback is not found.

Fixes: a753e53d517b ("eal: add device event monitor framework")
Cc: [email protected]

Signed-off-by: Yunjian Wang <[email protected]>
Acked-by: Jeff Guo <[email protected]>
---
 lib/librte_eal/common/eal_common_dev.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/eal_common_dev.c 
b/lib/librte_eal/common/eal_common_dev.c
index 363a2ca95e..d990bfd20d 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -530,9 +530,15 @@ rte_dev_event_callback_unregister(const char *device_name,
                        free(event_cb);
                        ret++;
                } else {
-                       continue;
+                       ret = -EAGAIN;
+                       break;
                }
        }
+
+       /* this callback is not be registered */
+       if (ret == 0)
+               ret = -ENOENT;
+
        rte_spinlock_unlock(&dev_event_lock);
        return ret;
 }
-- 
2.23.0

Reply via email to