Lines Matching refs:mt
19 #define mt_dump(mt, fmt) do {} while (0) argument
20 #define mt_validate(mt) do {} while (0) argument
63 static int __init mtree_insert_index(struct maple_tree *mt, in mtree_insert_index() argument
66 return mtree_insert(mt, index, xa_mk_value(index & LONG_MAX), gfp); in mtree_insert_index()
69 static void __init mtree_erase_index(struct maple_tree *mt, unsigned long index) in mtree_erase_index() argument
71 MT_BUG_ON(mt, mtree_erase(mt, index) != xa_mk_value(index & LONG_MAX)); in mtree_erase_index()
72 MT_BUG_ON(mt, mtree_load(mt, index) != NULL); in mtree_erase_index()
75 static int __init mtree_test_insert(struct maple_tree *mt, unsigned long index, in mtree_test_insert() argument
78 return mtree_insert(mt, index, ptr, GFP_KERNEL); in mtree_test_insert()
81 static int __init mtree_test_store_range(struct maple_tree *mt, in mtree_test_store_range() argument
84 return mtree_store_range(mt, start, end, ptr, GFP_KERNEL); in mtree_test_store_range()
87 static int __init mtree_test_store(struct maple_tree *mt, unsigned long start, in mtree_test_store() argument
90 return mtree_test_store_range(mt, start, start, ptr); in mtree_test_store()
93 static int __init mtree_test_insert_range(struct maple_tree *mt, in mtree_test_insert_range() argument
96 return mtree_insert_range(mt, start, end, ptr, GFP_KERNEL); in mtree_test_insert_range()
99 static void __init *mtree_test_load(struct maple_tree *mt, unsigned long index) in mtree_test_load() argument
101 return mtree_load(mt, index); in mtree_test_load()
104 static void __init *mtree_test_erase(struct maple_tree *mt, unsigned long index) in mtree_test_erase() argument
106 return mtree_erase(mt, index); in mtree_test_erase()
110 static noinline void __init check_mtree_alloc_range(struct maple_tree *mt, in check_mtree_alloc_range() argument
118 ret = mtree_alloc_range(mt, &result, ptr, size, start, end, in check_mtree_alloc_range()
120 MT_BUG_ON(mt, ret != eret); in check_mtree_alloc_range()
124 MT_BUG_ON(mt, result != expected); in check_mtree_alloc_range()
127 static noinline void __init check_mtree_alloc_rrange(struct maple_tree *mt, in check_mtree_alloc_rrange() argument
135 ret = mtree_alloc_rrange(mt, &result, ptr, size, start, end, in check_mtree_alloc_rrange()
137 MT_BUG_ON(mt, ret != eret); in check_mtree_alloc_rrange()
141 MT_BUG_ON(mt, result != expected); in check_mtree_alloc_rrange()
145 static noinline void __init check_load(struct maple_tree *mt, in check_load() argument
148 void *ret = mtree_test_load(mt, index); in check_load()
152 MT_BUG_ON(mt, ret != ptr); in check_load()
155 static noinline void __init check_store_range(struct maple_tree *mt, in check_store_range() argument
161 ret = mtree_test_store_range(mt, start, end, ptr); in check_store_range()
162 MT_BUG_ON(mt, ret != expected); in check_store_range()
168 check_load(mt, i, ptr); in check_store_range()
171 static noinline void __init check_insert_range(struct maple_tree *mt, in check_insert_range() argument
177 ret = mtree_test_insert_range(mt, start, end, ptr); in check_insert_range()
178 MT_BUG_ON(mt, ret != expected); in check_insert_range()
184 check_load(mt, i, ptr); in check_insert_range()
187 static noinline void __init check_insert(struct maple_tree *mt, in check_insert() argument
192 ret = mtree_test_insert(mt, index, ptr); in check_insert()
193 MT_BUG_ON(mt, ret != 0); in check_insert()
196 static noinline void __init check_dup_insert(struct maple_tree *mt, in check_dup_insert() argument
201 ret = mtree_test_insert(mt, index, ptr); in check_dup_insert()
202 MT_BUG_ON(mt, ret != -EEXIST); in check_dup_insert()
206 static noinline void __init check_index_load(struct maple_tree *mt, in check_index_load() argument
209 return check_load(mt, index, xa_mk_value(index & LONG_MAX)); in check_index_load()
227 static noinline void __init check_rev_seq(struct maple_tree *mt, in check_rev_seq() argument
232 MT_BUG_ON(mt, !mtree_empty(mt)); in check_rev_seq()
236 MT_BUG_ON(mt, mtree_insert_index(mt, i, GFP_KERNEL)); in check_rev_seq()
238 check_index_load(mt, j); in check_rev_seq()
240 check_load(mt, i - 1, NULL); in check_rev_seq()
241 mt_set_in_rcu(mt); in check_rev_seq()
242 MT_BUG_ON(mt, !mt_height(mt)); in check_rev_seq()
243 mt_clear_in_rcu(mt); in check_rev_seq()
244 MT_BUG_ON(mt, !mt_height(mt)); in check_rev_seq()
247 check_load(mt, max + 1, NULL); in check_rev_seq()
252 mt_dump(mt, mt_dump_dec); in check_rev_seq()
260 static noinline void __init check_seq(struct maple_tree *mt, unsigned long max, in check_seq() argument
265 MT_BUG_ON(mt, !mtree_empty(mt)); in check_seq()
269 MT_BUG_ON(mt, mtree_insert_index(mt, i, GFP_KERNEL)); in check_seq()
271 check_index_load(mt, j); in check_seq()
274 MT_BUG_ON(mt, !mt_height(mt)); in check_seq()
275 check_load(mt, i + 1, NULL); in check_seq()
281 mt_dump(mt, mt_dump_dec); in check_seq()
289 static noinline void __init check_lb_not_empty(struct maple_tree *mt) in check_lb_not_empty() argument
297 check_insert(mt, i, (void *) i); in check_lb_not_empty()
299 check_load(mt, j-1, NULL); in check_lb_not_empty()
300 check_load(mt, j, (void *) j); in check_lb_not_empty()
301 check_load(mt, j+1, NULL); in check_lb_not_empty()
305 mtree_destroy(mt); in check_lb_not_empty()
308 static noinline void __init check_lower_bound_split(struct maple_tree *mt) in check_lower_bound_split() argument
310 MT_BUG_ON(mt, !mtree_empty(mt)); in check_lower_bound_split()
311 check_lb_not_empty(mt); in check_lower_bound_split()
314 static noinline void __init check_upper_bound_split(struct maple_tree *mt) in check_upper_bound_split() argument
319 MT_BUG_ON(mt, !mtree_empty(mt)); in check_upper_bound_split()
328 check_insert(mt, i, (void *) i); in check_upper_bound_split()
330 check_load(mt, j-1, NULL); in check_upper_bound_split()
331 check_load(mt, j, (void *) j); in check_upper_bound_split()
332 check_load(mt, j+1, NULL); in check_upper_bound_split()
336 mtree_destroy(mt); in check_upper_bound_split()
339 static noinline void __init check_mid_split(struct maple_tree *mt) in check_mid_split() argument
343 check_insert(mt, huge, (void *) huge); in check_mid_split()
344 check_insert(mt, 0, xa_mk_value(0)); in check_mid_split()
345 check_lb_not_empty(mt); in check_mid_split()
348 static noinline void __init check_rev_find(struct maple_tree *mt) in check_rev_find() argument
352 MA_STATE(mas, mt, 0, 0); in check_rev_find()
355 mtree_store_range(mt, i*10, i*10 + 5, in check_rev_find()
361 MT_BUG_ON(mt, val != xa_mk_value(100)); in check_rev_find()
363 MT_BUG_ON(mt, val != NULL); in check_rev_find()
367 MT_BUG_ON(mt, val != NULL); in check_rev_find()
371 MT_BUG_ON(mt, val != xa_mk_value(100)); in check_rev_find()
373 MT_BUG_ON(mt, val != xa_mk_value(99)); in check_rev_find()
377 MT_BUG_ON(mt, val != xa_mk_value(2)); in check_rev_find()
379 MT_BUG_ON(mt, val != xa_mk_value(1)); in check_rev_find()
381 MT_BUG_ON(mt, val != xa_mk_value(0)); in check_rev_find()
383 MT_BUG_ON(mt, val != NULL); in check_rev_find()
387 static noinline void __init check_find(struct maple_tree *mt) in check_find() argument
396 MA_STATE(mas, mt, 0, 0); in check_find()
399 MT_BUG_ON(mt, mtree_insert_index(mt, val++, GFP_KERNEL)); in check_find()
415 MT_BUG_ON(mt, mtree_insert_index(mt, val, GFP_KERNEL)); in check_find()
417 MT_BUG_ON(mt, mtree_insert(mt, val, in check_find()
428 MT_BUG_ON(mt, xa_mk_value(val) != entry); in check_find()
430 MT_BUG_ON(mt, entry != XA_ZERO_ENTRY); in check_find()
444 MT_BUG_ON(mt, xa_mk_value(val) != entry); in check_find()
446 MT_BUG_ON(mt, entry != XA_ZERO_ENTRY); in check_find()
460 MT_BUG_ON(mt, xa_mk_value(val) != entry); in check_find()
462 MT_BUG_ON(mt, entry != XA_ZERO_ENTRY); in check_find()
476 mt_for_each(mt, entry, index, max) { in check_find()
477 MT_BUG_ON(mt, xa_mk_value(val) != entry); in check_find()
489 MT_BUG_ON(mt, mtree_insert_index(mt, ULONG_MAX, GFP_KERNEL)); in check_find()
490 mt_for_each(mt, entry, index, ULONG_MAX) { in check_find()
492 MT_BUG_ON(mt, entry != xa_mk_value(LONG_MAX)); in check_find()
494 MT_BUG_ON(mt, xa_mk_value(val) != entry); in check_find()
508 MT_BUG_ON(mt, max > 25); in check_find()
510 mtree_erase_index(mt, ULONG_MAX); in check_find()
514 entry = mt_find(mt, &index, 512); in check_find()
515 MT_BUG_ON(mt, xa_mk_value(256) != entry); in check_find()
519 entry = mt_find(mt, &index, 20); in check_find()
520 MT_BUG_ON(mt, entry != NULL); in check_find()
525 MT_BUG_ON(mt, mtree_insert_index(mt, ULONG_MAX, GFP_KERNEL)); in check_find()
532 MT_BUG_ON(mt, entry != XA_ZERO_ENTRY); in check_find()
534 MT_BUG_ON(mt, entry != xa_mk_value(LONG_MAX)); in check_find()
536 MT_BUG_ON(mt, xa_mk_value(val) != entry); in check_find()
586 MT_BUG_ON(mt, entry != entry2); in check_find()
587 MT_BUG_ON(mt, index != mas.index); in check_find()
588 MT_BUG_ON(mt, last != mas.last); in check_find()
595 MT_BUG_ON(mt, entry != entry2); in check_find()
598 MT_BUG_ON(mt, mas_prev(&mas, 0) != NULL); in check_find()
601 mtree_destroy(mt); in check_find()
604 static noinline void __init check_find_2(struct maple_tree *mt) in check_find_2() argument
609 MA_STATE(mas, mt, 0, 0); in check_find_2()
612 MT_BUG_ON(mt, true); in check_find_2()
616 mtree_insert_index(mt, i, GFP_KERNEL); in check_find_2()
621 MT_BUG_ON(mt, entry != xa_mk_value(j)); in check_find_2()
625 MT_BUG_ON(mt, j != i + 1); in check_find_2()
629 mtree_erase_index(mt, i); in check_find_2()
637 MT_BUG_ON(mt, entry != xa_mk_value(j)); in check_find_2()
641 MT_BUG_ON(mt, j != 256); in check_find_2()
649 static noinline void __init check_alloc_rev_range(struct maple_tree *mt) in check_alloc_rev_range() argument
756 MA_STATE(mas, mt, 0, 0); in check_alloc_rev_range()
758 mtree_store_range(mt, MTREE_ALLOC_MAX, ULONG_MAX, XA_ZERO_ENTRY, in check_alloc_rev_range()
768 check_insert_range(mt, range[i] >> 12, (range[i + 1] >> 12) - 1, in check_alloc_rev_range()
770 mt_validate(mt); in check_alloc_rev_range()
781 MT_BUG_ON(mt, mas_empty_area_rev(&mas, min, in check_alloc_rev_range()
789 MT_BUG_ON(mt, mas.last + 1 != (holes[i+1] >> 12)); in check_alloc_rev_range()
790 MT_BUG_ON(mt, mas.index != (holes[i+1] >> 12) - (holes[i+2] >> 12)); in check_alloc_rev_range()
804 check_mtree_alloc_rrange(mt, in check_alloc_rev_range()
811 mt_validate(mt); in check_alloc_rev_range()
815 mtree_erase(mt, 34148798727); /* create a deleted range. */ in check_alloc_rev_range()
816 mtree_erase(mt, 34148798725); in check_alloc_rev_range()
817 check_mtree_alloc_rrange(mt, 0, 34359052173, 210253414, in check_alloc_rev_range()
818 34148798725, 0, mt); in check_alloc_rev_range()
820 mtree_destroy(mt); in check_alloc_rev_range()
823 static noinline void __init check_alloc_range(struct maple_tree *mt) in check_alloc_range() argument
931 MA_STATE(mas, mt, 0, 0); in check_alloc_range()
933 mtree_store_range(mt, MTREE_ALLOC_MAX, ULONG_MAX, XA_ZERO_ENTRY, in check_alloc_range()
940 mt_dump(mt, mt_dump_hex); in check_alloc_range()
942 check_insert_range(mt, range[i] >> 12, (range[i + 1] >> 12) - 1, in check_alloc_range()
944 mt_validate(mt); in check_alloc_range()
957 MT_BUG_ON(mt, mas_empty_area(&mas, min >> 12, in check_alloc_range()
960 MT_BUG_ON(mt, mas.index != holes[i] >> 12); in check_alloc_range()
972 check_mtree_alloc_range(mt, in check_alloc_range()
979 mt_validate(mt); in check_alloc_range()
981 mt_dump(mt, mt_dump_hex); in check_alloc_range()
985 mtree_destroy(mt); in check_alloc_range()
989 static noinline void __init check_ranges(struct maple_tree *mt) in check_ranges() argument
1002 MT_BUG_ON(mt, !mtree_empty(mt)); in check_ranges()
1003 check_insert_range(mt, r[0], r[1], xa_mk_value(r[0]), 0); in check_ranges()
1004 check_insert_range(mt, r[2], r[3], xa_mk_value(r[2]), 0); in check_ranges()
1005 check_insert_range(mt, r[4], r[5], xa_mk_value(r[4]), -EEXIST); in check_ranges()
1006 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1008 check_store_range(mt, r[4], r[5], xa_mk_value(r[4]), 0); in check_ranges()
1009 check_store_range(mt, r[6], r[7], xa_mk_value(r[6]), 0); in check_ranges()
1010 check_store_range(mt, r[8], r[9], xa_mk_value(r[8]), 0); in check_ranges()
1011 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1012 mtree_destroy(mt); in check_ranges()
1013 MT_BUG_ON(mt, mt_height(mt)); in check_ranges()
1015 check_seq(mt, 50, false); in check_ranges()
1017 check_store_range(mt, 5, 47, xa_mk_value(47), 0); in check_ranges()
1018 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1019 mtree_destroy(mt); in check_ranges()
1022 check_seq(mt, 100, false); in check_ranges()
1025 check_store_range(mt, r[10], r[11], xa_mk_value(r[10]), 0); in check_ranges()
1026 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1027 mt_validate(mt); in check_ranges()
1028 mtree_destroy(mt); in check_ranges()
1031 check_seq(mt, 200, false); in check_ranges()
1033 check_store_range(mt, r[10], r[11], xa_mk_value(r[10]), 0); in check_ranges()
1034 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1035 mt_validate(mt); in check_ranges()
1036 mtree_destroy(mt); in check_ranges()
1038 check_seq(mt, 30, false); in check_ranges()
1039 check_store_range(mt, 6, 18, xa_mk_value(6), 0); in check_ranges()
1040 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1041 mt_validate(mt); in check_ranges()
1042 mtree_destroy(mt); in check_ranges()
1046 check_seq(mt, 400, false); in check_ranges()
1049 check_store_range(mt, r[12], r[13], xa_mk_value(r[12]), 0); in check_ranges()
1051 mtree_test_erase(mt, 140); in check_ranges()
1052 mtree_test_erase(mt, 141); in check_ranges()
1053 mtree_test_erase(mt, 142); in check_ranges()
1054 mtree_test_erase(mt, 143); in check_ranges()
1055 mtree_test_erase(mt, 130); in check_ranges()
1056 mtree_test_erase(mt, 131); in check_ranges()
1057 mtree_test_erase(mt, 132); in check_ranges()
1058 mtree_test_erase(mt, 133); in check_ranges()
1059 mtree_test_erase(mt, 134); in check_ranges()
1060 mtree_test_erase(mt, 135); in check_ranges()
1061 check_load(mt, r[12], xa_mk_value(r[12])); in check_ranges()
1062 check_load(mt, r[13], xa_mk_value(r[12])); in check_ranges()
1063 check_load(mt, r[13] - 1, xa_mk_value(r[12])); in check_ranges()
1064 check_load(mt, r[13] + 1, xa_mk_value(r[13] + 1)); in check_ranges()
1065 check_load(mt, 135, NULL); in check_ranges()
1066 check_load(mt, 140, NULL); in check_ranges()
1067 mt_validate(mt); in check_ranges()
1069 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1070 mtree_destroy(mt); in check_ranges()
1076 check_seq(mt, 400, false); in check_ranges()
1077 check_store_range(mt, 353, 361, xa_mk_value(353), 0); in check_ranges()
1078 check_store_range(mt, 347, 352, xa_mk_value(347), 0); in check_ranges()
1080 check_load(mt, 346, xa_mk_value(346)); in check_ranges()
1082 check_load(mt, i, xa_mk_value(347)); in check_ranges()
1084 check_load(mt, i, xa_mk_value(353)); in check_ranges()
1085 check_load(mt, 362, xa_mk_value(362)); in check_ranges()
1087 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1088 mtree_destroy(mt); in check_ranges()
1091 check_seq(mt, 400, false); in check_ranges()
1092 check_store_range(mt, 352, 364, NULL, 0); in check_ranges()
1093 check_store_range(mt, 351, 363, xa_mk_value(352), 0); in check_ranges()
1094 check_load(mt, 350, xa_mk_value(350)); in check_ranges()
1095 check_load(mt, 351, xa_mk_value(352)); in check_ranges()
1097 check_load(mt, i, xa_mk_value(352)); in check_ranges()
1098 check_load(mt, 364, NULL); in check_ranges()
1099 check_load(mt, 365, xa_mk_value(365)); in check_ranges()
1101 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1102 mtree_destroy(mt); in check_ranges()
1105 check_seq(mt, 400, false); in check_ranges()
1106 check_store_range(mt, 352, 364, NULL, 0); in check_ranges()
1107 check_store_range(mt, 351, 364, xa_mk_value(352), 0); in check_ranges()
1108 check_load(mt, 350, xa_mk_value(350)); in check_ranges()
1109 check_load(mt, 351, xa_mk_value(352)); in check_ranges()
1111 check_load(mt, i, xa_mk_value(352)); in check_ranges()
1112 check_load(mt, 365, xa_mk_value(365)); in check_ranges()
1114 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1115 mtree_destroy(mt); in check_ranges()
1119 check_seq(mt, 400, false); in check_ranges()
1120 check_store_range(mt, 362, 367, xa_mk_value(362), 0); in check_ranges()
1121 check_store_range(mt, 353, 361, xa_mk_value(353), 0); in check_ranges()
1123 mt_validate(mt); in check_ranges()
1124 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1125 mtree_destroy(mt); in check_ranges()
1147 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1149 check_store_range(mt, 2400, 2400, xa_mk_value(2400), 0); in check_ranges()
1150 check_store_range(mt, 2411, 2411, xa_mk_value(2411), 0); in check_ranges()
1151 check_store_range(mt, 2412, 2412, xa_mk_value(2412), 0); in check_ranges()
1152 check_store_range(mt, 2396, 2400, xa_mk_value(4052020), 0); in check_ranges()
1153 check_store_range(mt, 2402, 2402, xa_mk_value(2402), 0); in check_ranges()
1154 mtree_destroy(mt); in check_ranges()
1161 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1163 check_store_range(mt, 2422, 2422, xa_mk_value(2422), 0); in check_ranges()
1164 check_store_range(mt, 2424, 2424, xa_mk_value(2424), 0); in check_ranges()
1165 check_store_range(mt, 2425, 2425, xa_mk_value(2), 0); in check_ranges()
1166 check_store_range(mt, 2460, 2470, NULL, 0); in check_ranges()
1167 check_store_range(mt, 2435, 2460, xa_mk_value(2435), 0); in check_ranges()
1168 check_store_range(mt, 2461, 2470, xa_mk_value(2461), 0); in check_ranges()
1170 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1171 mtree_destroy(mt); in check_ranges()
1174 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_ranges()
1180 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1187 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1194 MT_BUG_ON(mt, mtree_test_store_range(mt, val, ULONG_MAX, in check_ranges()
1202 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1209 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1219 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1226 mt_set_in_rcu(mt); in check_ranges()
1230 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1233 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1234 mt_validate(mt); in check_ranges()
1236 mtree_destroy(mt); in check_ranges()
1239 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_ranges()
1244 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1246 check_store_range(mt, 161, 161, xa_mk_value(161), 0); in check_ranges()
1247 check_store_range(mt, 162, 162, xa_mk_value(162), 0); in check_ranges()
1248 check_store_range(mt, 163, 163, xa_mk_value(163), 0); in check_ranges()
1249 check_store_range(mt, 240, 249, NULL, 0); in check_ranges()
1250 mtree_erase(mt, 200); in check_ranges()
1251 mtree_erase(mt, 210); in check_ranges()
1252 mtree_erase(mt, 220); in check_ranges()
1253 mtree_erase(mt, 230); in check_ranges()
1255 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1256 mtree_destroy(mt); in check_ranges()
1258 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_ranges()
1262 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1264 check_store_range(mt, 4600, 4959, xa_mk_value(1), 0); in check_ranges()
1265 mt_validate(mt); in check_ranges()
1266 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1267 mtree_destroy(mt); in check_ranges()
1269 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_ranges()
1273 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1275 check_store_range(mt, 4811, 4811, xa_mk_value(4811), 0); in check_ranges()
1276 check_store_range(mt, 4812, 4812, xa_mk_value(4812), 0); in check_ranges()
1277 check_store_range(mt, 4861, 4861, xa_mk_value(4861), 0); in check_ranges()
1278 check_store_range(mt, 4862, 4862, xa_mk_value(4862), 0); in check_ranges()
1279 check_store_range(mt, 4842, 4849, NULL, 0); in check_ranges()
1280 mt_validate(mt); in check_ranges()
1281 MT_BUG_ON(mt, !mt_height(mt)); in check_ranges()
1282 mtree_destroy(mt); in check_ranges()
1284 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_ranges()
1288 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1289 MT_BUG_ON(mt, mt_height(mt) >= 4); in check_ranges()
1293 check_store_range(mt, 11450 + i, 11450 + i + 1, NULL, 0); in check_ranges()
1294 mt_validate(mt); in check_ranges()
1297 check_store_range(mt, 11770 + i, 11770 + i + 1, NULL, 0); in check_ranges()
1298 mt_validate(mt); in check_ranges()
1301 MT_BUG_ON(mt, mt_height(mt) >= 4); in check_ranges()
1303 check_store_range(mt, 11700 + i, 11700 + i + 1, NULL, 0); in check_ranges()
1304 mt_validate(mt); in check_ranges()
1307 MT_BUG_ON(mt, mt_height(mt) < 4); in check_ranges()
1308 mtree_destroy(mt); in check_ranges()
1311 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_ranges()
1315 check_store_range(mt, val, val2, xa_mk_value(val), 0); in check_ranges()
1316 MT_BUG_ON(mt, mt_height(mt) >= 4); in check_ranges()
1317 mt_validate(mt); in check_ranges()
1323 check_store_range(mt, val, val + 1, NULL, 0); in check_ranges()
1324 mt_validate(mt); in check_ranges()
1325 MT_BUG_ON(mt, mt_height(mt) >= 4); in check_ranges()
1332 check_store_range(mt, val, val + 1, xa_mk_value(val), 0); in check_ranges()
1333 mt_validate(mt); in check_ranges()
1339 check_store_range(mt, val, val + 1, xa_mk_value(val), 0); in check_ranges()
1340 mt_validate(mt); in check_ranges()
1344 check_store_range(mt, 8051, 8051, xa_mk_value(8081), 0); in check_ranges()
1345 check_store_range(mt, 8052, 8052, xa_mk_value(8082), 0); in check_ranges()
1346 check_store_range(mt, 8083, 8083, xa_mk_value(8083), 0); in check_ranges()
1347 check_store_range(mt, 8084, 8084, xa_mk_value(8084), 0); in check_ranges()
1348 check_store_range(mt, 8085, 8085, xa_mk_value(8085), 0); in check_ranges()
1350 check_store_range(mt, 8099, 8100, xa_mk_value(1), 0); in check_ranges()
1352 mt_validate(mt); in check_ranges()
1354 MT_BUG_ON(mt, mt_height(mt) != 4); in check_ranges()
1357 static noinline void __init check_next_entry(struct maple_tree *mt) in check_next_entry() argument
1361 MA_STATE(mas, mt, i, i); in check_next_entry()
1363 MT_BUG_ON(mt, !mtree_empty(mt)); in check_next_entry()
1365 check_seq(mt, limit, false); in check_next_entry()
1369 MT_BUG_ON(mt, mas_walk(&mas) != xa_mk_value(i++)); in check_next_entry()
1373 MT_BUG_ON(mt, entry != NULL); in check_next_entry()
1375 MT_BUG_ON(mt, xa_mk_value(i) != entry); in check_next_entry()
1378 mtree_destroy(mt); in check_next_entry()
1381 static noinline void __init check_prev_entry(struct maple_tree *mt) in check_prev_entry() argument
1387 MA_STATE(mas, mt, index, index); in check_prev_entry()
1389 MT_BUG_ON(mt, !mtree_empty(mt)); in check_prev_entry()
1390 check_seq(mt, 30, false); in check_prev_entry()
1394 MT_BUG_ON(mt, value != xa_mk_value(index)); in check_prev_entry()
1396 MT_BUG_ON(mt, value != xa_mk_value(index - 1)); in check_prev_entry()
1398 mtree_destroy(mt); in check_prev_entry()
1401 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_prev_entry()
1410 MT_BUG_ON(mt, value != xa_mk_value(2)); in check_prev_entry()
1413 MT_BUG_ON(mt, value != NULL); in check_prev_entry()
1417 MT_BUG_ON(mt, value != xa_mk_value(8)); in check_prev_entry()
1420 MT_BUG_ON(mt, value != NULL); in check_prev_entry()
1425 static noinline void __init check_store_null(struct maple_tree *mt) in check_store_null() argument
1427 MA_STATE(mas, mt, 0, ULONG_MAX); in check_store_null()
1433 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_store_null()
1436 MT_BUG_ON(mt, !mtree_empty(mt)); in check_store_null()
1438 mtree_destroy(mt); in check_store_null()
1444 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_store_null()
1448 MT_BUG_ON(mt, !mtree_empty(mt)); in check_store_null()
1450 mtree_destroy(mt); in check_store_null()
1456 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_store_null()
1462 MT_BUG_ON(mt, !mtree_empty(mt)); in check_store_null()
1464 mtree_destroy(mt); in check_store_null()
1470 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_store_null()
1476 MT_BUG_ON(mt, !mtree_empty(mt)); in check_store_null()
1478 mtree_destroy(mt); in check_store_null()
1484 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_store_null()
1490 MT_BUG_ON(mt, mtree_empty(mt)); in check_store_null()
1493 mtree_destroy(mt); in check_store_null()
1499 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_store_null()
1506 MT_BUG_ON(mt, !mtree_empty(mt)); in check_store_null()
1508 mtree_destroy(mt); in check_store_null()
1511 static noinline void __init check_root_expand(struct maple_tree *mt) in check_root_expand() argument
1513 MA_STATE(mas, mt, 0, 0); in check_root_expand()
1520 MT_BUG_ON(mt, mas.index != 0); in check_root_expand()
1521 MT_BUG_ON(mt, ptr != NULL); in check_root_expand()
1522 MT_BUG_ON(mt, mas.index != 0); in check_root_expand()
1523 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_root_expand()
1531 MT_BUG_ON(mt, ptr != NULL); in check_root_expand()
1535 MT_BUG_ON(mt, ptr != &check_prev_entry); in check_root_expand()
1539 MT_BUG_ON(mt, ptr != NULL); in check_root_expand()
1541 mtree_destroy(mt); in check_root_expand()
1544 mt_init_flags(mt, 0); in check_root_expand()
1553 MT_BUG_ON(mt, ptr != NULL); in check_root_expand()
1554 MT_BUG_ON(mt, mas.index != 1); in check_root_expand()
1555 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_root_expand()
1559 MT_BUG_ON(mt, ptr != &check_prev_entry); in check_root_expand()
1560 MT_BUG_ON(mt, mas.last != 0); in check_root_expand()
1562 mtree_destroy(mt); in check_root_expand()
1564 mt_init_flags(mt, 0); in check_root_expand()
1571 MT_BUG_ON(mt, ptr != NULL); in check_root_expand()
1572 MT_BUG_ON(mt, (mas.index != 1) && (mas.last != ULONG_MAX)); in check_root_expand()
1576 MT_BUG_ON(mt, (mas.index != 0) && (mas.last != 0)); in check_root_expand()
1577 MT_BUG_ON(mt, ptr != (void *)((unsigned long) check_prev_entry | 1UL)); in check_root_expand()
1581 mtree_destroy(mt); in check_root_expand()
1583 mt_init_flags(mt, 0); in check_root_expand()
1589 MT_BUG_ON(mt, ptr != NULL); in check_root_expand()
1590 MT_BUG_ON(mt, (mas.index != ULONG_MAX) && (mas.last != ULONG_MAX)); in check_root_expand()
1594 MT_BUG_ON(mt, (mas.index != 0) && (mas.last != 0)); in check_root_expand()
1595 MT_BUG_ON(mt, ptr != (void *)((unsigned long) check_prev_entry | 2UL)); in check_root_expand()
1601 static noinline void __init check_deficient_node(struct maple_tree *mt) in check_deficient_node() argument
1603 MA_STATE(mas, mt, 0, 0); in check_deficient_node()
1622 mt_validate(mt); in check_deficient_node()
1625 static noinline void __init check_gap_combining(struct maple_tree *mt) in check_gap_combining() argument
1671 MA_STATE(mas, mt, 0, 0); in check_gap_combining()
1680 MT_BUG_ON(mt, !mtree_empty(mt)); in check_gap_combining()
1681 check_seq(mt, singletons, false); /* create 100 singletons. */ in check_gap_combining()
1684 mtree_test_erase(mt, seq100[2]); in check_gap_combining()
1685 check_load(mt, seq100[2], NULL); in check_gap_combining()
1686 mtree_test_erase(mt, seq100[1]); in check_gap_combining()
1687 check_load(mt, seq100[1], NULL); in check_gap_combining()
1691 MT_BUG_ON(mt, entry != xa_mk_value(index)); in check_gap_combining()
1695 MT_BUG_ON(mt, entry != xa_mk_value(index + 4)); in check_gap_combining()
1697 MT_BUG_ON(mt, mn1 == mn2); /* test the test. */ in check_gap_combining()
1705 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq100[3], seq100[4], in check_gap_combining()
1707 MT_BUG_ON(mt, mas.index != index + 1); in check_gap_combining()
1710 mtree_test_erase(mt, seq100[6]); in check_gap_combining()
1711 check_load(mt, seq100[6], NULL); in check_gap_combining()
1712 mtree_test_erase(mt, seq100[7]); in check_gap_combining()
1713 check_load(mt, seq100[7], NULL); in check_gap_combining()
1714 mtree_test_erase(mt, seq100[8]); in check_gap_combining()
1722 MT_BUG_ON(mt, entry != xa_mk_value(index)); in check_gap_combining()
1725 MT_BUG_ON(mt, entry != xa_mk_value(index + 4)); in check_gap_combining()
1728 MT_BUG_ON(mt, mn1 == mn2); /* test the next entry is in the next node. */ in check_gap_combining()
1735 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq100[10], seq100[11], in check_gap_combining()
1737 MT_BUG_ON(mt, mas.index != seq100[6]); in check_gap_combining()
1741 mtree_store(mt, seq100[13], NULL, GFP_KERNEL); in check_gap_combining()
1742 check_load(mt, seq100[13], NULL); in check_gap_combining()
1743 check_load(mt, seq100[14], xa_mk_value(seq100[14])); in check_gap_combining()
1744 mtree_store(mt, seq100[14], NULL, GFP_KERNEL); in check_gap_combining()
1745 check_load(mt, seq100[13], NULL); in check_gap_combining()
1746 check_load(mt, seq100[14], NULL); in check_gap_combining()
1750 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq100[16], seq100[15], in check_gap_combining()
1752 MT_BUG_ON(mt, mas.index != seq100[13]); in check_gap_combining()
1753 mt_validate(mt); in check_gap_combining()
1761 mtree_test_store_range(mt, seq100[18], seq100[14], NULL); in check_gap_combining()
1762 mtree_test_erase(mt, seq100[15]); in check_gap_combining()
1765 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq100[16], seq100[19], in check_gap_combining()
1768 MT_BUG_ON(mt, mas.index != seq100[18]); in check_gap_combining()
1769 mt_validate(mt); in check_gap_combining()
1770 mtree_destroy(mt); in check_gap_combining()
1773 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_gap_combining()
1774 check_seq(mt, 2000, false); in check_gap_combining()
1776 mtree_test_erase(mt, seq2000[0]); in check_gap_combining()
1777 mtree_test_erase(mt, seq2000[1]); in check_gap_combining()
1782 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq2000[2], seq2000[3], in check_gap_combining()
1784 MT_BUG_ON(mt, mas.index != seq2000[1]); in check_gap_combining()
1786 mt_validate(mt); in check_gap_combining()
1787 mtree_destroy(mt); in check_gap_combining()
1791 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_gap_combining()
1792 check_seq(mt, 400, false); in check_gap_combining()
1793 mtree_test_store_range(mt, seq400[0], seq400[1], NULL); in check_gap_combining()
1795 mtree_destroy(mt); in check_gap_combining()
1797 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_gap_combining()
1798 check_seq(mt, 400, false); in check_gap_combining()
1800 mtree_test_store_range(mt, seq400[2], seq400[9], in check_gap_combining()
1802 mtree_test_store_range(mt, seq400[3], seq400[9], in check_gap_combining()
1804 mtree_test_store_range(mt, seq400[4], seq400[9], in check_gap_combining()
1806 mtree_test_store_range(mt, seq400[5], seq400[9], in check_gap_combining()
1808 mtree_test_store_range(mt, seq400[0], seq400[9], in check_gap_combining()
1810 mtree_test_store_range(mt, seq400[6], seq400[9], in check_gap_combining()
1812 mtree_test_store_range(mt, seq400[7], seq400[9], in check_gap_combining()
1814 mtree_test_store_range(mt, seq400[8], seq400[9], in check_gap_combining()
1816 mtree_test_store_range(mt, seq400[10], seq400[11], in check_gap_combining()
1818 mt_validate(mt); in check_gap_combining()
1820 mtree_destroy(mt); in check_gap_combining()
1822 static noinline void __init check_node_overwrite(struct maple_tree *mt) in check_node_overwrite() argument
1827 mtree_test_store_range(mt, i*100, i*100 + 50, xa_mk_value(i*100)); in check_node_overwrite()
1829 mtree_test_store_range(mt, 319951, 367950, NULL); in check_node_overwrite()
1831 mt_validate(mt); in check_node_overwrite()
1835 static noinline void __init bench_slot_store(struct maple_tree *mt) in bench_slot_store() argument
1840 mtree_store_range(mt, i, i + 5, xa_mk_value(i), GFP_KERNEL); in bench_slot_store()
1843 mtree_store_range(mt, brk, brk, NULL, GFP_KERNEL); in bench_slot_store()
1844 mtree_store_range(mt, brk_start, brk, xa_mk_value(brk), in bench_slot_store()
1851 static noinline void __init bench_node_store(struct maple_tree *mt) in bench_node_store() argument
1856 mtree_store_range(mt, i, i + 5, xa_mk_value(i), GFP_KERNEL); in bench_node_store()
1859 mtree_store_range(mt, overwrite, overwrite + 15, in bench_node_store()
1870 static noinline void __init bench_awalk(struct maple_tree *mt) in bench_awalk() argument
1873 MA_STATE(mas, mt, 1470, 1470); in bench_awalk()
1876 mtree_store_range(mt, i, i + 5, xa_mk_value(i), GFP_KERNEL); in bench_awalk()
1878 mtree_store_range(mt, 1470, 1475, NULL, GFP_KERNEL); in bench_awalk()
1887 static noinline void __init bench_walk(struct maple_tree *mt) in bench_walk() argument
1890 MA_STATE(mas, mt, 1470, 1470); in bench_walk()
1893 mtree_store_range(mt, i, i + 5, xa_mk_value(i), GFP_KERNEL); in bench_walk()
1904 static noinline void __init bench_load(struct maple_tree *mt) in bench_load() argument
1909 mtree_store_range(mt, i, i + 5, xa_mk_value(i), GFP_KERNEL); in bench_load()
1912 mtree_load(mt, 1470); in bench_load()
1917 static noinline void __init bench_mt_for_each(struct maple_tree *mt) in bench_mt_for_each() argument
1924 mtree_store_range(mt, i, i + 4, xa_mk_value(i), GFP_KERNEL); in bench_mt_for_each()
1929 mt_for_each(mt, entry, index, max) { in bench_mt_for_each()
1930 MT_BUG_ON(mt, entry != xa_mk_value(j)); in bench_mt_for_each()
1941 static noinline void __init bench_mas_for_each(struct maple_tree *mt) in bench_mas_for_each() argument
1946 MA_STATE(mas, mt, 0, 0); in bench_mas_for_each()
1953 mtree_store_range(mt, i, i + gap, xa_mk_value(i), GFP_KERNEL); in bench_mas_for_each()
1961 MT_BUG_ON(mt, entry != xa_mk_value(j)); in bench_mas_for_each()
1971 static noinline void __init bench_mas_prev(struct maple_tree *mt) in bench_mas_prev() argument
1976 MA_STATE(mas, mt, 0, 0); in bench_mas_prev()
1983 mtree_store_range(mt, i, i + gap, xa_mk_value(i), GFP_KERNEL); in bench_mas_prev()
1992 MT_BUG_ON(mt, entry != xa_mk_value(j)); in bench_mas_prev()
2003 struct maple_tree mt, newmt; in check_forking() local
2006 MA_STATE(mas, &mt, 0, 0); in check_forking()
2013 mt_init_flags(&mt, MT_FLAGS_ALLOC_RANGE | MT_FLAGS_LOCK_EXTERN); in check_forking()
2014 mt_set_external_lock(&mt, &mt_lock); in check_forking()
2026 ret = __mt_dup(&mt, &newmt, GFP_KERNEL); in check_forking()
2040 __mt_destroy(&mt); in check_forking()
2045 static noinline void __init check_iteration(struct maple_tree *mt) in check_iteration() argument
2049 MA_STATE(mas, mt, 0, 0); in check_iteration()
2052 mtree_store_range(mt, i * 10, i * 10 + 9, in check_iteration()
2060 MT_BUG_ON(mt, mas.index != i * 10); in check_iteration()
2061 MT_BUG_ON(mt, mas.last != i * 10 + 9); in check_iteration()
2072 MT_BUG_ON(mt, val != xa_mk_value(i)); in check_iteration()
2077 MT_BUG_ON(mt, mas.index != i * 10); in check_iteration()
2078 MT_BUG_ON(mt, mas.last != i * 10 + 9); in check_iteration()
2089 MT_BUG_ON(mt, val != xa_mk_value(i)); in check_iteration()
2094 MT_BUG_ON(mt, mas.index != i * 10); in check_iteration()
2095 MT_BUG_ON(mt, mas.last != i * 10 + 9); in check_iteration()
2106 MT_BUG_ON(mt, val != xa_mk_value(76)); in check_iteration()
2112 static noinline void __init check_mas_store_gfp(struct maple_tree *mt) in check_mas_store_gfp() argument
2118 MA_STATE(mas, mt, 0, 0); in check_mas_store_gfp()
2119 MA_STATE(newmas, mt, 0, 0); in check_mas_store_gfp()
2122 mtree_store_range(mt, i*10, i*10 + 5, in check_mas_store_gfp()
2147 struct maple_tree mt, newmt; in bench_forking() local
2150 MA_STATE(mas, &mt, 0, 0); in bench_forking()
2157 mt_init_flags(&mt, MT_FLAGS_ALLOC_RANGE | MT_FLAGS_LOCK_EXTERN); in bench_forking()
2158 mt_set_external_lock(&mt, &mt_lock); in bench_forking()
2172 ret = __mt_dup(&mt, &newmt, GFP_KERNEL); in bench_forking()
2188 __mt_destroy(&mt); in bench_forking()
2193 static noinline void __init next_prev_test(struct maple_tree *mt) in next_prev_test() argument
2197 MA_STATE(mas, mt, 0, 0); in next_prev_test()
2217 mtree_store_range(mt, i*10, i*10 + 5, in next_prev_test()
2250 MT_BUG_ON(mt, val != NULL); in next_prev_test()
2253 MT_BUG_ON(mt, val != xa_mk_value(690 / 10)); in next_prev_test()
2254 MT_BUG_ON(mt, mas.index != 690); in next_prev_test()
2255 MT_BUG_ON(mt, mas.last != 695); in next_prev_test()
2258 MT_BUG_ON(mt, val != xa_mk_value(680 / 10)); in next_prev_test()
2259 MT_BUG_ON(mt, mas.index != 680); in next_prev_test()
2260 MT_BUG_ON(mt, mas.last != 685); in next_prev_test()
2263 MT_BUG_ON(mt, val != xa_mk_value(690 / 10)); in next_prev_test()
2264 MT_BUG_ON(mt, mas.index != 690); in next_prev_test()
2265 MT_BUG_ON(mt, mas.last != 695); in next_prev_test()
2268 MT_BUG_ON(mt, val != xa_mk_value(700 / 10)); in next_prev_test()
2269 MT_BUG_ON(mt, mas.index != 700); in next_prev_test()
2270 MT_BUG_ON(mt, mas.last != 705); in next_prev_test()
2275 MT_BUG_ON(mt, val != xa_mk_value(70 / 10)); in next_prev_test()
2276 MT_BUG_ON(mt, mas.index != 70); in next_prev_test()
2277 MT_BUG_ON(mt, mas.last != 75); in next_prev_test()
2280 MT_BUG_ON(mt, val != xa_mk_value(80 / 10)); in next_prev_test()
2281 MT_BUG_ON(mt, mas.index != 80); in next_prev_test()
2282 MT_BUG_ON(mt, mas.last != 85); in next_prev_test()
2285 MT_BUG_ON(mt, val != xa_mk_value(70 / 10)); in next_prev_test()
2286 MT_BUG_ON(mt, mas.index != 70); in next_prev_test()
2287 MT_BUG_ON(mt, mas.last != 75); in next_prev_test()
2293 MT_BUG_ON(mt, val != NULL); in next_prev_test()
2295 MT_BUG_ON(mt, val != xa_mk_value(level2[2] / 10)); in next_prev_test()
2296 MT_BUG_ON(mt, mas.index != level2[2]); in next_prev_test()
2297 MT_BUG_ON(mt, mas.last != level2[3]); in next_prev_test()
2301 MT_BUG_ON(mt, val != xa_mk_value(level2[4] / 10)); in next_prev_test()
2302 MT_BUG_ON(mt, mas.index != level2[4]); in next_prev_test()
2303 MT_BUG_ON(mt, mas.last != level2[5]); in next_prev_test()
2304 MT_BUG_ON(mt, mn == mas.node); in next_prev_test()
2307 MT_BUG_ON(mt, val != xa_mk_value(level2[2] / 10)); in next_prev_test()
2308 MT_BUG_ON(mt, mas.index != level2[2]); in next_prev_test()
2309 MT_BUG_ON(mt, mas.last != level2[3]); in next_prev_test()
2314 MT_BUG_ON(mt, val != xa_mk_value(nr_entries)); in next_prev_test()
2315 MT_BUG_ON(mt, mas.index != (nr_entries * 10)); in next_prev_test()
2316 MT_BUG_ON(mt, mas.last != (nr_entries * 10 + 5)); in next_prev_test()
2319 MT_BUG_ON(mt, val != NULL); in next_prev_test()
2320 MT_BUG_ON(mt, mas.index != last_index); in next_prev_test()
2321 MT_BUG_ON(mt, mas.last != ULONG_MAX); in next_prev_test()
2324 MT_BUG_ON(mt, val != xa_mk_value(nr_entries)); in next_prev_test()
2325 MT_BUG_ON(mt, mas.index != (nr_entries * 10)); in next_prev_test()
2326 MT_BUG_ON(mt, mas.last != (nr_entries * 10 + 5)); in next_prev_test()
2332 MT_BUG_ON(mt, val != xa_mk_value(1)); in next_prev_test()
2333 MT_BUG_ON(mt, mas.index != 10); in next_prev_test()
2334 MT_BUG_ON(mt, mas.last != 15); in next_prev_test()
2337 MT_BUG_ON(mt, val != xa_mk_value(0)); in next_prev_test()
2338 MT_BUG_ON(mt, mas.index != 0); in next_prev_test()
2339 MT_BUG_ON(mt, mas.last != 5); in next_prev_test()
2342 MT_BUG_ON(mt, val != NULL); in next_prev_test()
2343 MT_BUG_ON(mt, mas.index != 0); in next_prev_test()
2344 MT_BUG_ON(mt, mas.last != 5); in next_prev_test()
2345 MT_BUG_ON(mt, !mas_is_underflow(&mas)); in next_prev_test()
2355 MT_BUG_ON(mt, val != NULL); in next_prev_test()
2356 MT_BUG_ON(mt, mas.index != 0); in next_prev_test()
2357 MT_BUG_ON(mt, mas.last != 9); in next_prev_test()
2360 mtree_destroy(mt); in next_prev_test()
2362 mt_init(mt); in next_prev_test()
2363 mtree_store_range(mt, 0, 0, xa_mk_value(0), GFP_KERNEL); in next_prev_test()
2364 mtree_store_range(mt, 5, 5, xa_mk_value(5), GFP_KERNEL); in next_prev_test()
2368 MT_BUG_ON(mt, val != NULL); in next_prev_test()
2375 static noinline void __init check_spanning_relatives(struct maple_tree *mt) in check_spanning_relatives() argument
2381 mtree_store_range(mt, i*10, i*10 + 5, in check_spanning_relatives()
2385 mtree_store_range(mt, 9365, 9955, NULL, GFP_KERNEL); in check_spanning_relatives()
2388 static noinline void __init check_fuzzer(struct maple_tree *mt) in check_fuzzer() argument
2395 mtree_test_insert(mt, 88, (void *)0xb1); in check_fuzzer()
2396 mtree_test_insert(mt, 84, (void *)0xa9); in check_fuzzer()
2397 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2398 mtree_test_insert(mt, 4, (void *)0x9); in check_fuzzer()
2399 mtree_test_insert(mt, 14, (void *)0x1d); in check_fuzzer()
2400 mtree_test_insert(mt, 7, (void *)0xf); in check_fuzzer()
2401 mtree_test_insert(mt, 12, (void *)0x19); in check_fuzzer()
2402 mtree_test_insert(mt, 18, (void *)0x25); in check_fuzzer()
2403 mtree_test_store_range(mt, 8, 18, (void *)0x11); in check_fuzzer()
2404 mtree_destroy(mt); in check_fuzzer()
2411 mt_init_flags(mt, 0); in check_fuzzer()
2412 mtree_test_store(mt, 87, (void *)0xaf); in check_fuzzer()
2413 mtree_test_store(mt, 0, (void *)0x1); in check_fuzzer()
2414 mtree_test_load(mt, 4); in check_fuzzer()
2415 mtree_test_insert(mt, 4, (void *)0x9); in check_fuzzer()
2416 mtree_test_store(mt, 8, (void *)0x11); in check_fuzzer()
2417 mtree_test_store(mt, 44, (void *)0x59); in check_fuzzer()
2418 mtree_test_store(mt, 68, (void *)0x89); in check_fuzzer()
2419 mtree_test_store(mt, 2, (void *)0x5); in check_fuzzer()
2420 mtree_test_insert(mt, 43, (void *)0x57); in check_fuzzer()
2421 mtree_test_insert(mt, 24, (void *)0x31); in check_fuzzer()
2422 mtree_test_insert(mt, 844, (void *)0x699); in check_fuzzer()
2423 mtree_test_store(mt, 84, (void *)0xa9); in check_fuzzer()
2424 mtree_test_store(mt, 4, (void *)0x9); in check_fuzzer()
2425 mtree_test_erase(mt, 4); in check_fuzzer()
2426 mtree_test_load(mt, 5); in check_fuzzer()
2427 mtree_test_erase(mt, 0); in check_fuzzer()
2428 mtree_destroy(mt); in check_fuzzer()
2435 mt_init_flags(mt, 0); in check_fuzzer()
2436 mtree_test_store_range(mt, 0, ULONG_MAX, (void *)0x1); in check_fuzzer()
2437 mtree_test_store(mt, 4, (void *)0x9); in check_fuzzer()
2438 mtree_test_erase(mt, 5); in check_fuzzer()
2439 mtree_test_erase(mt, 0); in check_fuzzer()
2440 mtree_test_erase(mt, 4); in check_fuzzer()
2441 mtree_test_store(mt, 5, (void *)0xb); in check_fuzzer()
2442 mtree_test_erase(mt, 5); in check_fuzzer()
2443 mtree_test_store(mt, 5, (void *)0xb); in check_fuzzer()
2444 mtree_test_erase(mt, 5); in check_fuzzer()
2445 mtree_test_erase(mt, 4); in check_fuzzer()
2446 mtree_test_store(mt, 4, (void *)0x9); in check_fuzzer()
2447 mtree_test_store(mt, 444, (void *)0x379); in check_fuzzer()
2448 mtree_test_store(mt, 0, (void *)0x1); in check_fuzzer()
2449 mtree_test_load(mt, 0); in check_fuzzer()
2450 mtree_test_store(mt, 5, (void *)0xb); in check_fuzzer()
2451 mtree_test_erase(mt, 0); in check_fuzzer()
2452 mtree_destroy(mt); in check_fuzzer()
2460 mt_init_flags(mt, 0); in check_fuzzer()
2461 mtree_test_insert(mt, 261, (void *)0x20b); in check_fuzzer()
2462 mtree_test_store(mt, 516, (void *)0x409); in check_fuzzer()
2463 mtree_test_store(mt, 6, (void *)0xd); in check_fuzzer()
2464 mtree_test_insert(mt, 5, (void *)0xb); in check_fuzzer()
2465 mtree_test_insert(mt, 1256, (void *)0x9d1); in check_fuzzer()
2466 mtree_test_store(mt, 4, (void *)0x9); in check_fuzzer()
2467 mtree_test_erase(mt, 1); in check_fuzzer()
2468 mtree_test_store(mt, 56, (void *)0x71); in check_fuzzer()
2469 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2470 mtree_test_store(mt, 24, (void *)0x31); in check_fuzzer()
2471 mtree_test_erase(mt, 1); in check_fuzzer()
2472 mtree_test_insert(mt, 2263, (void *)0x11af); in check_fuzzer()
2473 mtree_test_insert(mt, 446, (void *)0x37d); in check_fuzzer()
2474 mtree_test_store_range(mt, 6, 45, (void *)0xd); in check_fuzzer()
2475 mtree_test_store_range(mt, 3, 446, (void *)0x7); in check_fuzzer()
2476 mtree_destroy(mt); in check_fuzzer()
2482 mt_init_flags(mt, 0); in check_fuzzer()
2483 mtree_test_store(mt, 48, (void *)0x61); in check_fuzzer()
2484 mtree_test_store(mt, 3, (void *)0x7); in check_fuzzer()
2485 mtree_test_load(mt, 0); in check_fuzzer()
2486 mtree_test_store(mt, 88, (void *)0xb1); in check_fuzzer()
2487 mtree_test_store(mt, 81, (void *)0xa3); in check_fuzzer()
2488 mtree_test_insert(mt, 0, (void *)0x1); in check_fuzzer()
2489 mtree_test_insert(mt, 8, (void *)0x11); in check_fuzzer()
2490 mtree_test_insert(mt, 4, (void *)0x9); in check_fuzzer()
2491 mtree_test_insert(mt, 2480, (void *)0x1361); in check_fuzzer()
2492 mtree_test_insert(mt, ULONG_MAX, in check_fuzzer()
2494 mtree_test_erase(mt, ULONG_MAX); in check_fuzzer()
2495 mtree_destroy(mt); in check_fuzzer()
2504 mt_init_flags(mt, 0); in check_fuzzer()
2505 mtree_test_erase(mt, 3); in check_fuzzer()
2506 mtree_test_insert(mt, 22, (void *)0x2d); in check_fuzzer()
2507 mtree_test_insert(mt, 15, (void *)0x1f); in check_fuzzer()
2508 mtree_test_load(mt, 2); in check_fuzzer()
2509 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2510 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2511 mtree_test_insert(mt, 5, (void *)0xb); in check_fuzzer()
2512 mtree_test_erase(mt, 1); in check_fuzzer()
2513 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2514 mtree_test_insert(mt, 4, (void *)0x9); in check_fuzzer()
2515 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2516 mtree_test_erase(mt, 1); in check_fuzzer()
2517 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2518 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2519 mtree_test_erase(mt, 3); in check_fuzzer()
2520 mtree_test_insert(mt, 22, (void *)0x2d); in check_fuzzer()
2521 mtree_test_insert(mt, 15, (void *)0x1f); in check_fuzzer()
2522 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2523 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2524 mtree_test_insert(mt, 8, (void *)0x11); in check_fuzzer()
2525 mtree_test_load(mt, 2); in check_fuzzer()
2526 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2527 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2528 mtree_test_store(mt, 1, (void *)0x3); in check_fuzzer()
2529 mtree_test_insert(mt, 5, (void *)0xb); in check_fuzzer()
2530 mtree_test_erase(mt, 1); in check_fuzzer()
2531 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2532 mtree_test_insert(mt, 4, (void *)0x9); in check_fuzzer()
2533 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2534 mtree_test_erase(mt, 1); in check_fuzzer()
2535 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2536 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2537 mtree_test_erase(mt, 3); in check_fuzzer()
2538 mtree_test_insert(mt, 22, (void *)0x2d); in check_fuzzer()
2539 mtree_test_insert(mt, 15, (void *)0x1f); in check_fuzzer()
2540 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2541 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2542 mtree_test_insert(mt, 8, (void *)0x11); in check_fuzzer()
2543 mtree_test_insert(mt, 12, (void *)0x19); in check_fuzzer()
2544 mtree_test_erase(mt, 1); in check_fuzzer()
2545 mtree_test_store_range(mt, 4, 62, (void *)0x9); in check_fuzzer()
2546 mtree_test_erase(mt, 62); in check_fuzzer()
2547 mtree_test_store_range(mt, 1, 0, (void *)0x3); in check_fuzzer()
2548 mtree_test_insert(mt, 11, (void *)0x17); in check_fuzzer()
2549 mtree_test_insert(mt, 3, (void *)0x7); in check_fuzzer()
2550 mtree_test_insert(mt, 3, (void *)0x7); in check_fuzzer()
2551 mtree_test_store(mt, 62, (void *)0x7d); in check_fuzzer()
2552 mtree_test_erase(mt, 62); in check_fuzzer()
2553 mtree_test_store_range(mt, 1, 15, (void *)0x3); in check_fuzzer()
2554 mtree_test_erase(mt, 1); in check_fuzzer()
2555 mtree_test_insert(mt, 22, (void *)0x2d); in check_fuzzer()
2556 mtree_test_insert(mt, 12, (void *)0x19); in check_fuzzer()
2557 mtree_test_erase(mt, 1); in check_fuzzer()
2558 mtree_test_insert(mt, 3, (void *)0x7); in check_fuzzer()
2559 mtree_test_store(mt, 62, (void *)0x7d); in check_fuzzer()
2560 mtree_test_erase(mt, 62); in check_fuzzer()
2561 mtree_test_insert(mt, 122, (void *)0xf5); in check_fuzzer()
2562 mtree_test_store(mt, 3, (void *)0x7); in check_fuzzer()
2563 mtree_test_insert(mt, 0, (void *)0x1); in check_fuzzer()
2564 mtree_test_store_range(mt, 0, 1, (void *)0x1); in check_fuzzer()
2565 mtree_test_insert(mt, 85, (void *)0xab); in check_fuzzer()
2566 mtree_test_insert(mt, 72, (void *)0x91); in check_fuzzer()
2567 mtree_test_insert(mt, 81, (void *)0xa3); in check_fuzzer()
2568 mtree_test_insert(mt, 726, (void *)0x5ad); in check_fuzzer()
2569 mtree_test_insert(mt, 0, (void *)0x1); in check_fuzzer()
2570 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2571 mtree_test_store(mt, 51, (void *)0x67); in check_fuzzer()
2572 mtree_test_insert(mt, 611, (void *)0x4c7); in check_fuzzer()
2573 mtree_test_insert(mt, 485, (void *)0x3cb); in check_fuzzer()
2574 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2575 mtree_test_erase(mt, 1); in check_fuzzer()
2576 mtree_test_insert(mt, 0, (void *)0x1); in check_fuzzer()
2577 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2578 mtree_test_insert_range(mt, 26, 1, (void *)0x35); in check_fuzzer()
2579 mtree_test_load(mt, 1); in check_fuzzer()
2580 mtree_test_store_range(mt, 1, 22, (void *)0x3); in check_fuzzer()
2581 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2582 mtree_test_erase(mt, 1); in check_fuzzer()
2583 mtree_test_load(mt, 53); in check_fuzzer()
2584 mtree_test_load(mt, 1); in check_fuzzer()
2585 mtree_test_store_range(mt, 1, 1, (void *)0x3); in check_fuzzer()
2586 mtree_test_insert(mt, 222, (void *)0x1bd); in check_fuzzer()
2587 mtree_test_insert(mt, 485, (void *)0x3cb); in check_fuzzer()
2588 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2589 mtree_test_erase(mt, 1); in check_fuzzer()
2590 mtree_test_load(mt, 0); in check_fuzzer()
2591 mtree_test_insert(mt, 21, (void *)0x2b); in check_fuzzer()
2592 mtree_test_insert(mt, 3, (void *)0x7); in check_fuzzer()
2593 mtree_test_store(mt, 621, (void *)0x4db); in check_fuzzer()
2594 mtree_test_insert(mt, 0, (void *)0x1); in check_fuzzer()
2595 mtree_test_erase(mt, 5); in check_fuzzer()
2596 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2597 mtree_test_store(mt, 62, (void *)0x7d); in check_fuzzer()
2598 mtree_test_erase(mt, 62); in check_fuzzer()
2599 mtree_test_store_range(mt, 1, 0, (void *)0x3); in check_fuzzer()
2600 mtree_test_insert(mt, 22, (void *)0x2d); in check_fuzzer()
2601 mtree_test_insert(mt, 12, (void *)0x19); in check_fuzzer()
2602 mtree_test_erase(mt, 1); in check_fuzzer()
2603 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2604 mtree_test_store_range(mt, 4, 62, (void *)0x9); in check_fuzzer()
2605 mtree_test_erase(mt, 62); in check_fuzzer()
2606 mtree_test_erase(mt, 1); in check_fuzzer()
2607 mtree_test_load(mt, 1); in check_fuzzer()
2608 mtree_test_store_range(mt, 1, 22, (void *)0x3); in check_fuzzer()
2609 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2610 mtree_test_erase(mt, 1); in check_fuzzer()
2611 mtree_test_load(mt, 53); in check_fuzzer()
2612 mtree_test_load(mt, 1); in check_fuzzer()
2613 mtree_test_store_range(mt, 1, 1, (void *)0x3); in check_fuzzer()
2614 mtree_test_insert(mt, 222, (void *)0x1bd); in check_fuzzer()
2615 mtree_test_insert(mt, 485, (void *)0x3cb); in check_fuzzer()
2616 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2617 mtree_test_erase(mt, 1); in check_fuzzer()
2618 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2619 mtree_test_load(mt, 0); in check_fuzzer()
2620 mtree_test_load(mt, 0); in check_fuzzer()
2621 mtree_destroy(mt); in check_fuzzer()
2627 mt_init_flags(mt, 0); in check_fuzzer()
2628 mtree_test_load(mt, 1); in check_fuzzer()
2629 mtree_test_insert(mt, 102, (void *)0xcd); in check_fuzzer()
2630 mtree_test_erase(mt, 2); in check_fuzzer()
2631 mtree_test_erase(mt, 0); in check_fuzzer()
2632 mtree_test_load(mt, 0); in check_fuzzer()
2633 mtree_test_insert(mt, 4, (void *)0x9); in check_fuzzer()
2634 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2635 mtree_test_insert(mt, 110, (void *)0xdd); in check_fuzzer()
2636 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2637 mtree_test_insert_range(mt, 5, 0, (void *)0xb); in check_fuzzer()
2638 mtree_test_erase(mt, 2); in check_fuzzer()
2639 mtree_test_store(mt, 0, (void *)0x1); in check_fuzzer()
2640 mtree_test_store(mt, 112, (void *)0xe1); in check_fuzzer()
2641 mtree_test_insert(mt, 21, (void *)0x2b); in check_fuzzer()
2642 mtree_test_store(mt, 1, (void *)0x3); in check_fuzzer()
2643 mtree_test_insert_range(mt, 110, 2, (void *)0xdd); in check_fuzzer()
2644 mtree_test_store(mt, 2, (void *)0x5); in check_fuzzer()
2645 mtree_test_load(mt, 22); in check_fuzzer()
2646 mtree_test_erase(mt, 2); in check_fuzzer()
2647 mtree_test_store(mt, 210, (void *)0x1a5); in check_fuzzer()
2648 mtree_test_store_range(mt, 0, 2, (void *)0x1); in check_fuzzer()
2649 mtree_test_store(mt, 2, (void *)0x5); in check_fuzzer()
2650 mtree_test_erase(mt, 2); in check_fuzzer()
2651 mtree_test_erase(mt, 22); in check_fuzzer()
2652 mtree_test_erase(mt, 1); in check_fuzzer()
2653 mtree_test_erase(mt, 2); in check_fuzzer()
2654 mtree_test_store(mt, 0, (void *)0x1); in check_fuzzer()
2655 mtree_test_load(mt, 112); in check_fuzzer()
2656 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2657 mtree_test_erase(mt, 2); in check_fuzzer()
2658 mtree_test_store(mt, 1, (void *)0x3); in check_fuzzer()
2659 mtree_test_insert_range(mt, 1, 2, (void *)0x3); in check_fuzzer()
2660 mtree_test_erase(mt, 0); in check_fuzzer()
2661 mtree_test_erase(mt, 2); in check_fuzzer()
2662 mtree_test_store(mt, 2, (void *)0x5); in check_fuzzer()
2663 mtree_test_erase(mt, 0); in check_fuzzer()
2664 mtree_test_erase(mt, 2); in check_fuzzer()
2665 mtree_test_store(mt, 0, (void *)0x1); in check_fuzzer()
2666 mtree_test_store(mt, 0, (void *)0x1); in check_fuzzer()
2667 mtree_test_erase(mt, 2); in check_fuzzer()
2668 mtree_test_store(mt, 2, (void *)0x5); in check_fuzzer()
2669 mtree_test_erase(mt, 2); in check_fuzzer()
2670 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2671 mtree_test_insert_range(mt, 1, 2, (void *)0x3); in check_fuzzer()
2672 mtree_test_erase(mt, 0); in check_fuzzer()
2673 mtree_test_erase(mt, 2); in check_fuzzer()
2674 mtree_test_store(mt, 0, (void *)0x1); in check_fuzzer()
2675 mtree_test_load(mt, 112); in check_fuzzer()
2676 mtree_test_store_range(mt, 110, 12, (void *)0xdd); in check_fuzzer()
2677 mtree_test_store(mt, 2, (void *)0x5); in check_fuzzer()
2678 mtree_test_load(mt, 110); in check_fuzzer()
2679 mtree_test_insert_range(mt, 4, 71, (void *)0x9); in check_fuzzer()
2680 mtree_test_load(mt, 2); in check_fuzzer()
2681 mtree_test_store(mt, 2, (void *)0x5); in check_fuzzer()
2682 mtree_test_insert_range(mt, 11, 22, (void *)0x17); in check_fuzzer()
2683 mtree_test_erase(mt, 12); in check_fuzzer()
2684 mtree_test_store(mt, 2, (void *)0x5); in check_fuzzer()
2685 mtree_test_load(mt, 22); in check_fuzzer()
2686 mtree_destroy(mt); in check_fuzzer()
2695 mt_init_flags(mt, 0); in check_fuzzer()
2696 mtree_test_store(mt, 6, (void *)0xd); in check_fuzzer()
2697 mtree_test_store(mt, 67, (void *)0x87); in check_fuzzer()
2698 mtree_test_insert(mt, 15, (void *)0x1f); in check_fuzzer()
2699 mtree_test_insert(mt, 6716, (void *)0x3479); in check_fuzzer()
2700 mtree_test_store(mt, 61, (void *)0x7b); in check_fuzzer()
2701 mtree_test_insert(mt, 13, (void *)0x1b); in check_fuzzer()
2702 mtree_test_store(mt, 8, (void *)0x11); in check_fuzzer()
2703 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2704 mtree_test_load(mt, 0); in check_fuzzer()
2705 mtree_test_erase(mt, 67167); in check_fuzzer()
2706 mtree_test_insert_range(mt, 6, 7167, (void *)0xd); in check_fuzzer()
2707 mtree_test_insert(mt, 6, (void *)0xd); in check_fuzzer()
2708 mtree_test_erase(mt, 67); in check_fuzzer()
2709 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2710 mtree_test_erase(mt, 667167); in check_fuzzer()
2711 mtree_test_insert(mt, 6, (void *)0xd); in check_fuzzer()
2712 mtree_test_store(mt, 67, (void *)0x87); in check_fuzzer()
2713 mtree_test_insert(mt, 5, (void *)0xb); in check_fuzzer()
2714 mtree_test_erase(mt, 1); in check_fuzzer()
2715 mtree_test_insert(mt, 6, (void *)0xd); in check_fuzzer()
2716 mtree_test_erase(mt, 67); in check_fuzzer()
2717 mtree_test_insert(mt, 15, (void *)0x1f); in check_fuzzer()
2718 mtree_test_insert(mt, 67167, (void *)0x20cbf); in check_fuzzer()
2719 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2720 mtree_test_load(mt, 7); in check_fuzzer()
2721 mtree_test_insert(mt, 16, (void *)0x21); in check_fuzzer()
2722 mtree_test_insert(mt, 36, (void *)0x49); in check_fuzzer()
2723 mtree_test_store(mt, 67, (void *)0x87); in check_fuzzer()
2724 mtree_test_store(mt, 6, (void *)0xd); in check_fuzzer()
2725 mtree_test_insert(mt, 367, (void *)0x2df); in check_fuzzer()
2726 mtree_test_insert(mt, 115, (void *)0xe7); in check_fuzzer()
2727 mtree_test_store(mt, 0, (void *)0x1); in check_fuzzer()
2728 mtree_test_store_range(mt, 1, 3, (void *)0x3); in check_fuzzer()
2729 mtree_test_store(mt, 1, (void *)0x3); in check_fuzzer()
2730 mtree_test_erase(mt, 67167); in check_fuzzer()
2731 mtree_test_insert_range(mt, 6, 47, (void *)0xd); in check_fuzzer()
2732 mtree_test_store(mt, 1, (void *)0x3); in check_fuzzer()
2733 mtree_test_insert_range(mt, 1, 67, (void *)0x3); in check_fuzzer()
2734 mtree_test_load(mt, 67); in check_fuzzer()
2735 mtree_test_insert(mt, 1, (void *)0x3); in check_fuzzer()
2736 mtree_test_erase(mt, 67167); in check_fuzzer()
2737 mtree_destroy(mt); in check_fuzzer()
2747 mt_init_flags(mt, 0); in check_fuzzer()
2748 mtree_test_insert(mt, 21, (void *)0x2b); in check_fuzzer()
2749 mtree_test_insert(mt, 12, (void *)0x19); in check_fuzzer()
2750 mtree_test_insert(mt, 6, (void *)0xd); in check_fuzzer()
2751 mtree_test_insert(mt, 8, (void *)0x11); in check_fuzzer()
2752 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2753 mtree_test_insert(mt, 91, (void *)0xb7); in check_fuzzer()
2754 mtree_test_insert(mt, 18, (void *)0x25); in check_fuzzer()
2755 mtree_test_insert(mt, 81, (void *)0xa3); in check_fuzzer()
2756 mtree_test_store_range(mt, 0, 128, (void *)0x1); in check_fuzzer()
2757 mtree_test_store(mt, 1, (void *)0x3); in check_fuzzer()
2758 mtree_test_erase(mt, 8); in check_fuzzer()
2759 mtree_test_insert(mt, 11, (void *)0x17); in check_fuzzer()
2760 mtree_test_insert(mt, 8, (void *)0x11); in check_fuzzer()
2761 mtree_test_insert(mt, 21, (void *)0x2b); in check_fuzzer()
2762 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2763 mtree_test_insert(mt, ULONG_MAX - 10, (void *)0xffffffffffffffeb); in check_fuzzer()
2764 mtree_test_erase(mt, ULONG_MAX - 10); in check_fuzzer()
2765 mtree_test_store_range(mt, 0, 281, (void *)0x1); in check_fuzzer()
2766 mtree_test_erase(mt, 2); in check_fuzzer()
2767 mtree_test_insert(mt, 1211, (void *)0x977); in check_fuzzer()
2768 mtree_test_insert(mt, 111, (void *)0xdf); in check_fuzzer()
2769 mtree_test_insert(mt, 13, (void *)0x1b); in check_fuzzer()
2770 mtree_test_insert(mt, 211, (void *)0x1a7); in check_fuzzer()
2771 mtree_test_insert(mt, 11, (void *)0x17); in check_fuzzer()
2772 mtree_test_insert(mt, 5, (void *)0xb); in check_fuzzer()
2773 mtree_test_insert(mt, 1218, (void *)0x985); in check_fuzzer()
2774 mtree_test_insert(mt, 61, (void *)0x7b); in check_fuzzer()
2775 mtree_test_store(mt, 1, (void *)0x3); in check_fuzzer()
2776 mtree_test_insert(mt, 121, (void *)0xf3); in check_fuzzer()
2777 mtree_test_insert(mt, 8, (void *)0x11); in check_fuzzer()
2778 mtree_test_insert(mt, 21, (void *)0x2b); in check_fuzzer()
2779 mtree_test_insert(mt, 2, (void *)0x5); in check_fuzzer()
2780 mtree_test_insert(mt, ULONG_MAX - 10, (void *)0xffffffffffffffeb); in check_fuzzer()
2781 mtree_test_erase(mt, ULONG_MAX - 10); in check_fuzzer()
2784 static noinline void __init check_bnode_min_spanning(struct maple_tree *mt) in check_bnode_min_spanning() argument
2787 MA_STATE(mas, mt, 0, 0); in check_bnode_min_spanning()
2803 static noinline void __init check_empty_area_window(struct maple_tree *mt) in check_empty_area_window() argument
2806 MA_STATE(mas, mt, 0, 0); in check_empty_area_window()
2809 mtree_store_range(mt, i*10, i*10 + 9, in check_empty_area_window()
2813 mtree_store_range(mt, 160, 169, NULL, GFP_KERNEL); in check_empty_area_window()
2817 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 5, 90, 10) != -EBUSY); in check_empty_area_window()
2820 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 6, 90, 5) != -EBUSY); in check_empty_area_window()
2824 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 5, 90, 5) != 0); in check_empty_area_window()
2825 MT_BUG_ON(mt, mas.index != 5); in check_empty_area_window()
2826 MT_BUG_ON(mt, mas.last != 9); in check_empty_area_window()
2832 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 5, 217, 9) != 0); in check_empty_area_window()
2833 MT_BUG_ON(mt, mas.index != 161); in check_empty_area_window()
2834 MT_BUG_ON(mt, mas.last != 169); in check_empty_area_window()
2838 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 100, 218, 3) != 0); in check_empty_area_window()
2839 MT_BUG_ON(mt, mas.index != 216); in check_empty_area_window()
2840 MT_BUG_ON(mt, mas.last != 218); in check_empty_area_window()
2844 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 100, 218, 16) != -EBUSY); in check_empty_area_window()
2851 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 167, 200, 4) != -EBUSY); in check_empty_area_window()
2858 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 100, 162, 4) != -EBUSY); in check_empty_area_window()
2862 MT_BUG_ON(mt, mas_empty_area(&mas, 0, 100, 9) != 0); in check_empty_area_window()
2863 MT_BUG_ON(mt, mas.index != 0); in check_empty_area_window()
2864 MT_BUG_ON(mt, mas.last != 8); in check_empty_area_window()
2867 MT_BUG_ON(mt, mas_empty_area(&mas, 0, 100, 4) != 0); in check_empty_area_window()
2868 MT_BUG_ON(mt, mas.index != 0); in check_empty_area_window()
2869 MT_BUG_ON(mt, mas.last != 3); in check_empty_area_window()
2872 MT_BUG_ON(mt, mas_empty_area(&mas, 0, 100, 11) != -EBUSY); in check_empty_area_window()
2875 MT_BUG_ON(mt, mas_empty_area(&mas, 5, 100, 6) != -EBUSY); in check_empty_area_window()
2878 MT_BUG_ON(mt, mas_empty_area(&mas, 0, 8, 10) != -EINVAL); in check_empty_area_window()
2884 MT_BUG_ON(mt, mas_empty_area(&mas, 100, 163, 6) != -EBUSY); in check_empty_area_window()
2888 static noinline void __init check_empty_area_fill(struct maple_tree *mt) in check_empty_area_fill() argument
2893 MA_STATE(mas, mt, 0, 0); in check_empty_area_fill()
2902 MT_BUG_ON(mt, mas_empty_area(&mas, 0, max, size) != 0); in check_empty_area_fill()
2903 MT_BUG_ON(mt, mas.last != mas.index + size - 1); in check_empty_area_fill()
2913 MT_BUG_ON(mt, mas_empty_area(&mas, 0, max, size) != -EBUSY); in check_empty_area_fill()
2918 mtree_store_range(mt, i, i + 5, (void *)i, GFP_KERNEL); in check_empty_area_fill()
2920 mtree_erase(mt, 631668735); in check_empty_area_fill()
2922 mtree_erase(mt, 629506047); in check_empty_area_fill()
2926 MT_BUG_ON(mt, mas_empty_area(&mas, 629506048, 690000000, 0x5000) != 0); in check_empty_area_fill()
3076 static noinline void __init check_state_handling(struct maple_tree *mt) in check_state_handling() argument
3078 MA_STATE(mas, mt, 0, 0); in check_state_handling()
3085 mtree_store_range(mt, 0, 0, ptr, GFP_KERNEL); in check_state_handling()
3090 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3091 MT_BUG_ON(mt, mas.status != ma_underflow); in check_state_handling()
3096 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3097 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3098 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3099 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3105 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3106 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3107 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3108 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3113 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3114 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3115 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3116 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3121 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3122 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3123 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3124 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3129 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3130 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3131 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3132 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3136 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3137 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3138 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3139 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3143 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3144 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3145 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3146 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3151 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3152 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3153 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3154 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3158 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3159 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3160 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3161 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3166 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3167 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3168 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3169 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3173 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3174 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3175 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3176 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3180 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3181 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3182 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3183 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3188 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3189 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3190 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3191 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3196 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3197 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3198 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3199 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3205 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3206 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3207 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3208 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3213 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3214 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3215 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3216 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3220 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3221 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3222 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3223 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3228 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3229 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3230 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3231 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3237 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3238 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3239 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3240 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3245 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3246 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3247 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3248 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3252 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3253 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3254 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3255 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3260 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3261 MT_BUG_ON(mt, mas.index != 1); in check_state_handling()
3262 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3263 MT_BUG_ON(mt, mas.status != ma_none); in check_state_handling()
3268 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3269 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3270 MT_BUG_ON(mt, mas.last != 0); in check_state_handling()
3271 MT_BUG_ON(mt, mas.status != ma_root); in check_state_handling()
3276 mtree_store_range(mt, 0, 0, NULL, GFP_KERNEL); in check_state_handling()
3277 mtree_store_range(mt, 0x1000, 0x1500, ptr, GFP_KERNEL); in check_state_handling()
3278 mtree_store_range(mt, 0x2000, 0x2500, ptr2, GFP_KERNEL); in check_state_handling()
3279 mtree_store_range(mt, 0x3000, 0x3500, ptr3, GFP_KERNEL); in check_state_handling()
3286 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3287 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3288 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3289 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3295 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3296 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3297 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3298 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3305 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3306 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3307 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3308 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3312 MT_BUG_ON(mt, entry != ptr2); in check_state_handling()
3313 MT_BUG_ON(mt, mas.index != 0x2000); in check_state_handling()
3314 MT_BUG_ON(mt, mas.last != 0x2500); in check_state_handling()
3315 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3319 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3320 MT_BUG_ON(mt, mas.index != 0x2501); in check_state_handling()
3321 MT_BUG_ON(mt, mas.last != 0x2fff); in check_state_handling()
3322 MT_BUG_ON(mt, !mas_is_overflow(&mas)); in check_state_handling()
3326 MT_BUG_ON(mt, entry != ptr3); in check_state_handling()
3327 MT_BUG_ON(mt, mas.index != 0x3000); in check_state_handling()
3328 MT_BUG_ON(mt, mas.last != 0x3500); in check_state_handling()
3329 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3333 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3334 MT_BUG_ON(mt, mas.index != 0x3501); in check_state_handling()
3335 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3336 MT_BUG_ON(mt, !mas_is_overflow(&mas)); in check_state_handling()
3340 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3341 MT_BUG_ON(mt, mas.index != 0x3501); in check_state_handling()
3342 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3343 MT_BUG_ON(mt, !mas_is_overflow(&mas)); in check_state_handling()
3347 MT_BUG_ON(mt, entry != ptr3); in check_state_handling()
3348 MT_BUG_ON(mt, mas.index != 0x3000); in check_state_handling()
3349 MT_BUG_ON(mt, mas.last != 0x3500); in check_state_handling()
3350 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3358 MT_BUG_ON(mt, entry != ptr2); in check_state_handling()
3359 MT_BUG_ON(mt, mas.index != 0x2000); in check_state_handling()
3360 MT_BUG_ON(mt, mas.last != 0x2500); in check_state_handling()
3361 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3365 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3366 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3367 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3368 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3373 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3374 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3375 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3376 MT_BUG_ON(mt, !mas_is_active(&mas)); /* spanning limit */ in check_state_handling()
3378 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3379 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3380 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3381 MT_BUG_ON(mt, !mas_is_underflow(&mas)); in check_state_handling()
3385 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3386 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3387 MT_BUG_ON(mt, mas.last != 0x0FFF); in check_state_handling()
3388 MT_BUG_ON(mt, !mas_is_underflow(&mas)); in check_state_handling()
3392 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3393 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3394 MT_BUG_ON(mt, mas.last != 0x0FFF); in check_state_handling()
3395 MT_BUG_ON(mt, !mas_is_underflow(&mas)); in check_state_handling()
3399 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3400 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3401 MT_BUG_ON(mt, mas.last != 0x0FFF); in check_state_handling()
3402 MT_BUG_ON(mt, !mas_is_underflow(&mas)); in check_state_handling()
3406 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3407 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3408 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3409 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3413 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3414 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3415 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3416 MT_BUG_ON(mt, !mas_is_underflow(&mas)); in check_state_handling()
3420 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3421 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3422 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3423 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3428 MT_BUG_ON(mt, entry != ptr3); in check_state_handling()
3431 MT_BUG_ON(mt, entry != ptr2); in check_state_handling()
3432 MT_BUG_ON(mt, mas.index != 0x2000); in check_state_handling()
3433 MT_BUG_ON(mt, mas.last != 0x2500); in check_state_handling()
3434 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3438 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3439 MT_BUG_ON(mt, mas.index != 0x1501); in check_state_handling()
3440 MT_BUG_ON(mt, mas.last != 0x1FFF); in check_state_handling()
3441 MT_BUG_ON(mt, !mas_is_underflow(&mas)); in check_state_handling()
3445 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3446 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3447 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3448 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3453 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3454 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3455 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3456 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3462 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3463 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3464 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3465 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3470 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3471 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3472 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3473 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3477 MT_BUG_ON(mt, entry != ptr2); in check_state_handling()
3478 MT_BUG_ON(mt, mas.index != 0x2000); in check_state_handling()
3479 MT_BUG_ON(mt, mas.last != 0x2500); in check_state_handling()
3480 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3485 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3486 MT_BUG_ON(mt, mas.index != 0x2501); in check_state_handling()
3487 MT_BUG_ON(mt, mas.last != 0x2FFF); in check_state_handling()
3492 MT_BUG_ON(mt, entry != ptr3); in check_state_handling()
3493 MT_BUG_ON(mt, mas.index != 0x3000); in check_state_handling()
3494 MT_BUG_ON(mt, mas.last != 0x3500); in check_state_handling()
3495 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3499 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3500 MT_BUG_ON(mt, mas.index != 0x3501); in check_state_handling()
3501 MT_BUG_ON(mt, mas.last != ULONG_MAX); in check_state_handling()
3506 MT_BUG_ON(mt, entry != ptr3); in check_state_handling()
3507 MT_BUG_ON(mt, mas.index != 0x3000); in check_state_handling()
3508 MT_BUG_ON(mt, mas.last != 0x3500); in check_state_handling()
3509 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3513 MT_BUG_ON(mt, entry != ptr2); in check_state_handling()
3514 MT_BUG_ON(mt, mas.index != 0x2000); in check_state_handling()
3515 MT_BUG_ON(mt, mas.last != 0x2500); in check_state_handling()
3516 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3521 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3522 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3523 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3524 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3528 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3529 MT_BUG_ON(mt, mas.index != 0); in check_state_handling()
3530 MT_BUG_ON(mt, mas.last != 0x0FFF); in check_state_handling()
3531 MT_BUG_ON(mt, !mas_is_underflow(&mas)); in check_state_handling()
3536 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3537 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3538 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3539 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3544 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3545 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3546 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3547 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3552 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3553 MT_BUG_ON(mt, mas.index != 0x1501); in check_state_handling()
3554 MT_BUG_ON(mt, mas.last != 0x1fff); in check_state_handling()
3555 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3561 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3562 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3563 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3564 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3570 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3571 MT_BUG_ON(mt, mas.index != 0x1501); in check_state_handling()
3572 MT_BUG_ON(mt, mas.last != 0x1fff); in check_state_handling()
3573 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3579 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3580 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3581 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3582 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3588 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3589 MT_BUG_ON(mt, mas.index != 0x1501); in check_state_handling()
3590 MT_BUG_ON(mt, mas.last != 0x1fff); in check_state_handling()
3591 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3598 MT_BUG_ON(mt, entry != ptr); in check_state_handling()
3599 MT_BUG_ON(mt, mas.index != 0x1000); in check_state_handling()
3600 MT_BUG_ON(mt, mas.last != 0x1500); in check_state_handling()
3601 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3607 MT_BUG_ON(mt, entry != NULL); in check_state_handling()
3608 MT_BUG_ON(mt, mas.index != 0x1501); in check_state_handling()
3609 MT_BUG_ON(mt, mas.last != 0x1fff); in check_state_handling()
3610 MT_BUG_ON(mt, !mas_is_active(&mas)); in check_state_handling()
3613 mtree_destroy(mt); in check_state_handling()
3615 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in check_state_handling()
3627 MT_BUG_ON(mt, mas.status != ma_underflow); in check_state_handling()
3628 MT_BUG_ON(mt, mas_find(&mas, ULONG_MAX) != entry); in check_state_handling()
3634 MT_BUG_ON(mt, mas.status != ma_underflow); in check_state_handling()
3635 MT_BUG_ON(mt, mas_next(&mas, ULONG_MAX) != entry); in check_state_handling()
3640 MT_BUG_ON(mt, mas.status != ma_overflow); in check_state_handling()
3641 MT_BUG_ON(mt, mas_next(&mas, ULONG_MAX) != entry); in check_state_handling()
3646 static noinline void __init alloc_cyclic_testing(struct maple_tree *mt) in alloc_cyclic_testing() argument
3651 MA_STATE(mas, mt, 0, 0); in alloc_cyclic_testing()
3654 mtree_lock(mt); in alloc_cyclic_testing()
3656 mas_alloc_cyclic(&mas, &location, mt, 2, ULONG_MAX, &next, GFP_KERNEL); in alloc_cyclic_testing()
3663 mtree_unlock(mt); in alloc_cyclic_testing()
3664 mtree_destroy(mt); in alloc_cyclic_testing()
3666 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in alloc_cyclic_testing()
3668 mtree_alloc_cyclic(mt, &location, mt, 2, ULONG_MAX, &next, GFP_KERNEL); in alloc_cyclic_testing()
3669 MT_BUG_ON(mt, i != location - 2); in alloc_cyclic_testing()
3670 MT_BUG_ON(mt, i != next - 3); in alloc_cyclic_testing()
3671 MT_BUG_ON(mt, mtree_load(mt, location) != mt); in alloc_cyclic_testing()
3674 mtree_destroy(mt); in alloc_cyclic_testing()
3683 mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); in alloc_cyclic_testing()
3685 mtree_alloc_cyclic(mt, &location, mt, 2, 1024, &next, GFP_KERNEL); in alloc_cyclic_testing()
3686 MT_BUG_ON(mt, i != location - 2); in alloc_cyclic_testing()
3687 MT_BUG_ON(mt, i != next - 3); in alloc_cyclic_testing()
3688 MT_BUG_ON(mt, mtree_load(mt, location) != mt); in alloc_cyclic_testing()
3690 mtree_erase(mt, 123); in alloc_cyclic_testing()
3691 MT_BUG_ON(mt, mtree_load(mt, 123) != NULL); in alloc_cyclic_testing()
3692 mtree_alloc_cyclic(mt, &location, mt, 2, 1024, &next, GFP_KERNEL); in alloc_cyclic_testing()
3693 MT_BUG_ON(mt, 123 != location); in alloc_cyclic_testing()
3694 MT_BUG_ON(mt, 124 != next); in alloc_cyclic_testing()
3695 MT_BUG_ON(mt, mtree_load(mt, location) != mt); in alloc_cyclic_testing()
3696 mtree_erase(mt, 100); in alloc_cyclic_testing()
3697 mtree_alloc_cyclic(mt, &location, mt, 2, 1024, &next, GFP_KERNEL); in alloc_cyclic_testing()
3698 MT_BUG_ON(mt, 100 != location); in alloc_cyclic_testing()
3699 MT_BUG_ON(mt, 101 != next); in alloc_cyclic_testing()
3700 MT_BUG_ON(mt, mtree_load(mt, location) != mt); in alloc_cyclic_testing()
3701 mtree_destroy(mt); in alloc_cyclic_testing()
3705 ret = mtree_alloc_cyclic(mt, &location, mt, 2, ULONG_MAX, &next, GFP_KERNEL); in alloc_cyclic_testing()
3706 MT_BUG_ON(mt, ret != 0); in alloc_cyclic_testing()
3707 ret = mtree_alloc_cyclic(mt, &location, mt, 2, ULONG_MAX, &next, GFP_KERNEL); in alloc_cyclic_testing()
3708 MT_BUG_ON(mt, ret != 0); in alloc_cyclic_testing()
3709 ret = mtree_alloc_cyclic(mt, &location, mt, 2, ULONG_MAX, &next, GFP_KERNEL); in alloc_cyclic_testing()
3710 MT_BUG_ON(mt, ret != 1); in alloc_cyclic_testing()