summaryrefslogtreecommitdiff
path: root/kern/rdxtree.c
diff options
context:
space:
mode:
Diffstat (limited to 'kern/rdxtree.c')
-rw-r--r--kern/rdxtree.c19
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;
}