> -----Original Message----- > From: Tyler Retzlaff <roret...@linux.microsoft.com> > Sent: Thursday, March 2, 2023 8:48 AM > To: dev@dpdk.org > Cc: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>; tho...@monjalon.net; > Tyler > Retzlaff <roret...@linux.microsoft.com> > Subject: [PATCH 11/17] net/iavf: use previous value atomic fetch operations > > Use __atomic_fetch_{add,and,or,sub,xor} instead of > __atomic_{add,and,or,sub,xor}_fetch > when we have no interest in the result of the operation. > > Reduces unnecessary codegen that provided the result of the atomic operation > that was not > used. > > Change brings closer alignment with atomics available in C11 standard and > will reduce > review effort when they are integrated. > > Signed-off-by: Tyler Retzlaff <roret...@linux.microsoft.com> > --- > drivers/net/iavf/iavf_vchnl.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c > index > 9adaadb..73875d7 100644 > --- a/drivers/net/iavf/iavf_vchnl.c > +++ b/drivers/net/iavf/iavf_vchnl.c > @@ -128,7 +128,7 @@ struct iavf_event_handler { > int err = pipe(handler->fd); > #endif > if (err != 0) { > - __atomic_sub_fetch(&handler->ndev, 1, __ATOMIC_RELAXED); > + __atomic_fetch_sub(&handler->ndev, 1, __ATOMIC_RELAXED); > return -1; > } > > @@ -137,7 +137,7 @@ struct iavf_event_handler { > > if (rte_ctrl_thread_create(&handler->tid, "iavf-event-thread", > NULL, iavf_dev_event_handle, NULL)) { > - __atomic_sub_fetch(&handler->ndev, 1, __ATOMIC_RELAXED); > + __atomic_fetch_sub(&handler->ndev, 1, __ATOMIC_RELAXED); > return -1; > } > > @@ -533,7 +533,7 @@ 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, > + __atomic_fetch_sub(&vf->pend_cmd_count,
It doesn't apply here. The return value is used. The rest of the series looks good to me. > 1, __ATOMIC_RELAXED); > if (cmd_count == 0) > _notify_cmd(vf, msg_ret); > -- > 1.8.3.1