trace_ma_write(__func__, mas, 0, entry);
#ifdef CONFIG_DEBUG_MAPLE_TREE
- if (mas->index > mas->last)
+ if (MT_WARN_ON(mas->tree, mas->index > mas->last))
pr_err("Error %lu > %lu %p\n", mas->index, mas->last, entry);
- MT_BUG_ON(mas->tree, mas->index > mas->last);
if (mas->index > mas->last) {
mas_set_err(mas, -EINVAL);
return NULL;
if (likely(entry)) {
*index = mas.last + 1;
#ifdef CONFIG_DEBUG_MAPLE_TREE
- if ((*index) && (*index) <= copy)
+ if (MT_WARN_ON(mt, (*index) && ((*index) <= copy)))
pr_err("index not increased! %lx <= %lx\n",
*index, copy);
- MT_BUG_ON(mt, (*index) && ((*index) <= copy));
#endif
}
max = mas->max;
mas->offset = 0;
while (likely(!ma_is_leaf(mt))) {
- MT_BUG_ON(mas->tree, mte_dead_node(mas->node));
+ MT_WARN_ON(mas->tree, mte_dead_node(mas->node));
slots = ma_slots(mn, mt);
pivots = ma_pivots(mn, mt);
max = pivots[0];
mn = mas_mn(mas);
mt = mte_node_type(mas->node);
}
- MT_BUG_ON(mas->tree, mte_dead_node(mas->node));
+ MT_WARN_ON(mas->tree, mte_dead_node(mas->node));
mas->max = max;
slots = ma_slots(mn, mt);
gap = gaps[i];
if (!entry) {
- if (gap != p_end - p_start + 1) {
+ if (MT_WARN_ON(mas->tree,
+ gap != p_end - p_start + 1)) {
pr_err("%p[%u] -> %p %lu != %lu - %lu + 1\n",
mas_mn(mas), i,
mas_get_slot(mas, i), gap,
p_end, p_start);
- mt_dump(mas->tree);
-
- MT_BUG_ON(mas->tree,
- gap != p_end - p_start + 1);
}
} else {
- if (gap > p_end - p_start + 1) {
+ if (MT_WARN_ON(mas->tree,
+ gap > p_end - p_start + 1)) {
pr_err("%p[%u] %lu >= %lu - %lu + 1 (%lu)\n",
mas_mn(mas), i, gap, p_end, p_start,
p_end - p_start + 1);
- MT_BUG_ON(mas->tree,
- gap > p_end - p_start + 1);
}
}
}
p_slot = mte_parent_slot(mas->node);
p_mn = mte_parent(mte);
- MT_BUG_ON(mas->tree, max_gap > mas->max);
+ MT_WARN_ON(mas->tree, max_gap > mas->max);
if (ma_gaps(p_mn, mas_parent_enum(mas, mte))[p_slot] != max_gap) {
pr_err("gap %p[%u] != %lu\n", p_mn, p_slot, max_gap);
mt_dump(mas->tree);
}
- MT_BUG_ON(mas->tree,
+ MT_WARN_ON(mas->tree,
ma_gaps(p_mn, mas_parent_enum(mas, mte))[p_slot] != max_gap);
}
parent = mte_parent(mas->node);
slots = ma_slots(parent, p_type);
- MT_BUG_ON(mas->tree, mas_mn(mas) == parent);
+ MT_WARN_ON(mas->tree, mas_mn(mas) == parent);
/* Check prev/next parent slot for duplicate node entry */
if (node != mas->node)
pr_err("parent %p[%u] does not have %p\n",
parent, i, mas_mn(mas));
- MT_BUG_ON(mas->tree, node != mas->node);
+ MT_WARN_ON(mas->tree, node != mas->node);
} else if (node == mas->node) {
pr_err("Invalid child %p at parent %p[%u] p_slot %u\n",
mas_mn(mas), parent, i, p_slot);
- MT_BUG_ON(mas->tree, node == mas->node);
+ MT_WARN_ON(mas->tree, node == mas->node);
}
}
}
if (!child)
break;
- if (mte_parent_slot(child) != i) {
+ if (MT_WARN_ON(mas->tree, mte_parent_slot(child) != i))
pr_err("Slot error at %p[%u]: child %p has pslot %u\n",
mas_mn(mas), i, mte_to_node(child),
mte_parent_slot(child));
- MT_BUG_ON(mas->tree, 1);
- }
- if (mte_parent(child) != mte_to_node(mas->node)) {
+ if (MT_WARN_ON(mas->tree,
+ mte_parent(child) != mte_to_node(mas->node)))
pr_err("child %p has parent %p not %p\n",
mte_to_node(child), mte_parent(child),
mte_to_node(mas->node));
- MT_BUG_ON(mas->tree, 1);
- }
}
}
pr_err("%p[%u] cannot be null\n",
mas_mn(mas), i);
- MT_BUG_ON(mas->tree, !entry);
+ MT_WARN_ON(mas->tree, !entry);
}
if (prev_piv > piv) {
pr_err("%p[%u] piv %lu < prev_piv %lu\n",
mas_mn(mas), i, piv, prev_piv);
- MT_BUG_ON(mas->tree, piv < prev_piv);
+ MT_WARN_ON(mas->tree, piv < prev_piv);
}
if (piv < mas->min) {
pr_err("%p[%u] %lu < %lu\n", mas_mn(mas), i,
piv, mas->min);
- MT_BUG_ON(mas->tree, piv < mas->min);
+ MT_WARN_ON(mas->tree, piv < mas->min);
}
if (piv > mas->max) {
pr_err("%p[%u] %lu > %lu\n", mas_mn(mas), i,
piv, mas->max);
- MT_BUG_ON(mas->tree, piv > mas->max);
+ MT_WARN_ON(mas->tree, piv > mas->max);
}
prev_piv = piv;
if (piv == mas->max)
if (entry && (i != mt_slots[type] - 1)) {
pr_err("%p[%u] should not have entry %p\n", mas_mn(mas),
i, entry);
- MT_BUG_ON(mas->tree, entry != NULL);
+ MT_WARN_ON(mas->tree, entry != NULL);
}
if (i < mt_pivots[type]) {
pr_err("%p[%u] should not have piv %lu\n",
mas_mn(mas), i, piv);
- MT_BUG_ON(mas->tree, i < mt_pivots[type] - 1);
+ MT_WARN_ON(mas->tree, i < mt_pivots[type] - 1);
}
}
}
pr_err("Sequential nulls end at %p[%u]\n",
mas_mn(&mas), offset);
}
- MT_BUG_ON(mt, !last && !entry);
+ MT_WARN_ON(mt, !last && !entry);
last = entry;
if (offset == mas_data_end(&mas)) {
mas_next_node(&mas, mas_mn(&mas), ULONG_MAX);
mas_first_entry(&mas, mas_mn(&mas), ULONG_MAX, mte_node_type(mas.node));
while (!mas_is_none(&mas)) {
- MT_BUG_ON(mas.tree, mte_dead_node(mas.node));
+ MT_WARN_ON(mas.tree, mte_dead_node(mas.node));
if (!mte_is_root(mas.node)) {
end = mas_data_end(&mas);
- if ((end < mt_min_slot_count(mas.node)) &&
- (mas.max != ULONG_MAX)) {
+ if (MT_WARN_ON(mas.tree,
+ (end < mt_min_slot_count(mas.node)) &&
+ (mas.max != ULONG_MAX))) {
pr_err("Invalid size %u of %p\n", end,
mas_mn(&mas));
- MT_BUG_ON(mas.tree, 1);
}
-
}
+
mas_validate_parent_slot(&mas);
mas_validate_child_slot(&mas);
mas_validate_limits(&mas);