Use __atomic_fetch_{add,and,or,sub,xor} instead of
__atomic_{add,and,or,sub,xor}_fetch adding the necessary code to
allow consumption of the resulting value.

Signed-off-by: Tyler Retzlaff <roret...@linux.microsoft.com>
Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com>
---
 drivers/net/iavf/iavf_vchnl.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c
index 9adaadb..51d4fc7 100644
--- a/drivers/net/iavf/iavf_vchnl.c
+++ b/drivers/net/iavf/iavf_vchnl.c
@@ -120,7 +120,7 @@ struct iavf_event_handler {
 {
        struct iavf_event_handler *handler = &event_handler;
 
-       if (__atomic_add_fetch(&handler->ndev, 1, __ATOMIC_RELAXED) != 1)
+       if (__atomic_fetch_add(&handler->ndev, 1, __ATOMIC_RELAXED) + 1 != 1)
                return 0;
 #if defined(RTE_EXEC_ENV_IS_WINDOWS) && RTE_EXEC_ENV_IS_WINDOWS != 0
        int err = _pipe(handler->fd, MAX_EVENT_PENDING, O_BINARY);
@@ -149,7 +149,7 @@ struct iavf_event_handler {
 {
        struct iavf_event_handler *handler = &event_handler;
 
-       if (__atomic_sub_fetch(&handler->ndev, 1, __ATOMIC_RELAXED) != 0)
+       if (__atomic_fetch_sub(&handler->ndev, 1, __ATOMIC_RELAXED) - 1 != 0)
                return;
 
        int unused = pthread_cancel(handler->tid);
@@ -533,8 +533,8 @@ struct iavf_event_handler {
                                /* read message and it's expected one */
                                if (msg_opc == vf->pend_cmd) {
                                        uint32_t cmd_count =
-                                       __atomic_sub_fetch(&vf->pend_cmd_count,
-                                                       1, __ATOMIC_RELAXED);
+                                       __atomic_fetch_sub(&vf->pend_cmd_count,
+                                                       1, __ATOMIC_RELAXED) - 
1;
                                        if (cmd_count == 0)
                                                _notify_cmd(vf, msg_ret);
                                } else {
-- 
1.8.3.1

Reply via email to