hash: cast away atomic qualification
Checks
Commit Message
rte_free accepts only non-cva qualified arguments so cast away
RTE_ATOMIC qualification for tbl_chng_cnt and h->tbl_chng_cnt when
calling rte_free.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
lib/hash/rte_cuckoo_hash.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
16/04/2024 18:06, Tyler Retzlaff:
> rte_free accepts only non-cva qualified arguments so cast away
> RTE_ATOMIC qualification for tbl_chng_cnt and h->tbl_chng_cnt when
> calling rte_free.
>
> Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Please add an explanation about the case where it does not compile.
rte_free accepts only non-cva qualified arguments so cast away
RTE_ATOMIC qualification for tbl_chng_cnt and h->tbl_chng_cnt when
calling rte_free.
Without this change using enable_stdatomic=true with LLVM or MSVC will
result in a warning being emitted for discarding the atomic
qualification.
v2:
* update commit message to indicate the conditions under
which a warning will be issued without this patch.
Tyler Retzlaff (1):
hash: cast away atomic qualification
lib/hash/rte_cuckoo_hash.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
@@ -481,7 +481,7 @@ struct rte_hash *
rte_free(buckets);
rte_free(buckets_ext);
rte_free(k);
- rte_free(tbl_chng_cnt);
+ rte_free((void *)(uintptr_t)tbl_chng_cnt);
rte_free(ext_bkt_to_free);
return NULL;
}
@@ -526,7 +526,7 @@ struct rte_hash *
rte_free(h->key_store);
rte_free(h->buckets);
rte_free(h->buckets_ext);
- rte_free(h->tbl_chng_cnt);
+ rte_free((void *)(uintptr_t)h->tbl_chng_cnt);
rte_free(h->ext_bkt_to_free);
rte_free(h->hash_rcu_cfg);
rte_free(h);