#ifdef MT_DEBUG
void mt_dump_node(void *entry, unsigned long min, unsigned long max,
unsigned int depth);
-void mt_dump_range(unsigned long min, unsigned long max)
+void mt_dump_range(unsigned long min, unsigned long max, unsigned int depth)
{
if (min == max)
- pr_info("%lu: ", min);
+ pr_info("%*lu: ", depth * 2 + 16, min);
else
- pr_info("%lu-%lu: ", min, max);
+ pr_info("%*lu-%lu: ", depth * 2 + 16, min, max);
}
-void mt_dump_entry(void *entry, unsigned long min, unsigned long max)
+void mt_dump_entry(void *entry, unsigned long min, unsigned long max,
+ unsigned int depth)
{
- mt_dump_range(min, max);
+ mt_dump_range(min, max, depth);
if (xa_is_value(entry))
pr_cont("value %ld (0x%lx) [%p]\n", xa_to_value(entry),
if (last == 0 && i > 0)
break;
if (leaf)
- mt_dump_entry(node->slot[i], first, last);
+ mt_dump_entry(node->slot[i], first, last, depth + 1);
else if (node->slot[i])
mt_dump_node(node->slot[i], first, last, depth + 1);
if (last == 0 && i > 0)
break;
if (leaf)
- mt_dump_entry(node->slot[i], first, last);
+ mt_dump_entry(node->slot[i], first, last, depth + 1);
else if (node->slot[i])
mt_dump_node(node->slot[i], first, last, depth + 1);
unsigned int type = mt_node_type(entry);
unsigned int i;
- mt_dump_range(min, max);
+ mt_dump_range(min, max, depth);
pr_cont("node %p depth %d type %d parent %p", node, depth, type,
node ? node->parent : NULL);
for (i = 0; i < MAPLE_NODE_SLOTS; i++) {
if (min + i > max)
pr_cont("OUT OF RANGE: ");
- mt_dump_entry(node->slot[i], min + i, min + i);
+ mt_dump_entry(node->slot[i], min + i, min + i, depth);
}
break;
case maple_leaf_64:
pr_info("maple_tree(%p) flags %X, root %p\n",
mt, mt->ma_flags, entry);
if (!xa_is_node(entry))
- mt_dump_entry(entry, 0, 0);
+ mt_dump_entry(entry, 0, 0, 0);
else if (entry)
mt_dump_node(entry, 0, mt_max[mt_node_type(entry)], 0);
}