eal: return errors on device event callback unregister
authorYunjian Wang <wangyunjian@huawei.com>
Wed, 21 Oct 2020 11:19:23 +0000 (19:19 +0800)
committerDavid Marchand <david.marchand@redhat.com>
Fri, 23 Oct 2020 11:35:50 +0000 (13:35 +0200)
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")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
lib/librte_eal/common/eal_common_dev.c

index 363a2ca..d990bfd 100644 (file)
@@ -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;
 }