diff options
Diffstat (limited to 'kern/rdxtree.c')
-rw-r--r-- | kern/rdxtree.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/kern/rdxtree.c b/kern/rdxtree.c index e7abaf02..9072ea12 100644 --- a/kern/rdxtree.c +++ b/kern/rdxtree.c @@ -109,12 +109,13 @@ struct rdxtree_node { static struct kmem_cache rdxtree_node_cache; -static inline void -rdxtree_assert_alignment(const void *ptr) +#ifndef NDEBUG +static bool +rdxtree_alignment_valid(const void *ptr) { - assert(((uintptr_t)ptr & ~RDXTREE_ENTRY_ADDR_MASK) == 0); - (void)ptr; + return (((uintptr_t)ptr & ~RDXTREE_ENTRY_ADDR_MASK) == 0); } +#endif /* NDEBUG */ static inline void * rdxtree_entry_addr(void *entry) @@ -156,7 +157,7 @@ rdxtree_node_create(struct rdxtree_node **nodep, unsigned short height) return ENOMEM; } - rdxtree_assert_alignment(node); + assert(rdxtree_alignment_valid(node)); node->parent = NULL; node->height = height; *nodep = node; @@ -464,7 +465,7 @@ rdxtree_insert_common(struct rdxtree *tree, rdxtree_key_t key, int error; assert(ptr != NULL); - rdxtree_assert_alignment(ptr); + assert(rdxtree_alignment_valid(ptr)); if (unlikely(key > rdxtree_max_key(tree->height))) { error = rdxtree_grow(tree, key); @@ -552,7 +553,7 @@ rdxtree_insert_alloc_common(struct rdxtree *tree, void *ptr, assert(rdxtree_key_alloc_enabled(tree)); assert(ptr != NULL); - rdxtree_assert_alignment(ptr); + assert(rdxtree_alignment_valid(ptr)); height = tree->height; @@ -743,11 +744,11 @@ rdxtree_replace_slot(void **slot, void *ptr) void *old; assert(ptr != NULL); - rdxtree_assert_alignment(ptr); + assert(rdxtree_alignment_valid(ptr)); old = *slot; assert(old != NULL); - rdxtree_assert_alignment(old); + assert(rdxtree_alignment_valid(old)); rcu_store_ptr(*slot, ptr); return old; } |