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