]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
maple_tree: Add MT_WARN_ON()
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Wed, 31 Aug 2022 19:01:11 +0000 (15:01 -0400)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 1 Sep 2022 20:14:18 +0000 (16:14 -0400)
Add a debug macro to dump the tree and warn the user.

Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
include/linux/maple_tree.h

index 2effab72add10e1030757948328f460cba9389d2..5e7d01e7e5ba2a7980944fec1a7bcc2f73f796be 100644 (file)
@@ -678,8 +678,26 @@ void mt_validate(struct maple_tree *mt);
                atomic_inc(&maple_tree_tests_passed);                   \
        }                                                               \
 } while (0)
+
+#define MT_WARN_ON(__tree, __x)  ({                                    \
+       int ret = !!(__x);                                              \
+       atomic_inc(&maple_tree_tests_run);                              \
+       if (ret) {                                                      \
+               pr_info("BUG at %s:%d (%u)\n",                          \
+               __func__, __LINE__, __x);                               \
+               mt_dump(__tree);                                        \
+               pr_info("Pass: %u Run:%u\n",                            \
+                       atomic_read(&maple_tree_tests_passed),          \
+                       atomic_read(&maple_tree_tests_run));            \
+               dump_stack();                                           \
+       } else {                                                        \
+               atomic_inc(&maple_tree_tests_passed);                   \
+       }                                                               \
+       unlikely(ret);                                                  \
+})
 #else
 #define MT_BUG_ON(__tree, __x) BUG_ON(__x)
+#define MT_WARN_ON(__tree, __x) MT_WARN_ON(__x)
 #endif /* CONFIG_DEBUG_MAPLE_TREE */
 
 #endif /*_LINUX_MAPLE_TREE_H */