Lines Matching refs:mas
22 #define mas_dump(mas) do {} while (0)
23 #define mas_wr_dump(mas) do {} while (0)
346 MA_STATE(mas, mt, 0, 0);
353 mas_set(&mas, 1000);
354 val = mas_find_rev(&mas, 1000);
356 val = mas_find_rev(&mas, 1000);
359 mas_set(&mas, 999);
360 val = mas_find_rev(&mas, 997);
363 mas_set(&mas, 1000);
364 val = mas_find_rev(&mas, 900);
366 val = mas_find_rev(&mas, 900);
369 mas_set(&mas, 20);
370 val = mas_find_rev(&mas, 0);
372 val = mas_find_rev(&mas, 0);
374 val = mas_find_rev(&mas, 0);
376 val = mas_find_rev(&mas, 0);
390 MA_STATE(mas, mt, 0, 0);
418 mas_set(&mas, val);
419 mas_lock(&mas);
420 while ((entry = mas_find(&mas, 268435456)) != NULL) {
431 mas_unlock(&mas);
434 mas_set(&mas, val);
435 mas_lock(&mas);
436 mas_for_each(&mas, entry, ULONG_MAX) {
446 mas_unlock(&mas);
450 mas_set(&mas, val);
451 mas_lock(&mas);
452 mas_for_each(&mas, entry, ULONG_MAX) {
462 mas_pause(&mas);
463 mas_unlock(&mas);
464 mas_lock(&mas);
466 mas_unlock(&mas);
506 mas_reset(&mas);
511 mas_reset(&mas);
522 mas_set(&mas, 0);
523 mas_lock(&mas);
524 mas_for_each(&mas, entry, ULONG_MAX) {
541 mas_pause(&mas);
542 mas_unlock(&mas);
543 mas_lock(&mas);
545 mas_unlock(&mas);
547 mas_set(&mas, 1048576);
548 mas_lock(&mas);
549 entry = mas_find(&mas, 1048576);
550 mas_unlock(&mas);
551 MT_BUG_ON(mas.tree, entry == NULL);
561 mas_lock(&mas);
562 mas_reset(&mas);
563 mas.index = ULONG_MAX; /* start at max.. */
564 entry = mas_find(&mas, ULONG_MAX);
565 entry = mas_prev(&mas, 0);
566 index = mas.index;
567 last = mas.last;
570 mas_reset(&mas);
571 mas.index = ULONG_MAX;
572 mas.last = ULONG_MAX;
573 mas_erase(&mas);
576 mas_reset(&mas);
577 entry2 = mas_prev(&mas, 0);
581 MT_BUG_ON(mt, index != mas.index);
582 MT_BUG_ON(mt, last != mas.last);
585 mas.node = MAS_NONE;
586 mas.index = ULONG_MAX;
587 mas.last = ULONG_MAX;
588 entry2 = mas_prev(&mas, 0);
591 mas_set(&mas, 0);
592 MT_BUG_ON(mt, mas_prev(&mas, 0) != NULL);
594 mas_unlock(&mas);
603 MA_STATE(mas, mt, 0, 0);
605 mas_for_each(&mas, entry, ULONG_MAX)
612 mas_set(&mas, 0);
614 mas_for_each(&mas, entry, ULONG_MAX) {
625 mas_set(&mas, 0);
627 mas_for_each(&mas, entry, ULONG_MAX) {
750 MA_STATE(mas, mt, 0, 0);
768 mas_lock(&mas);
775 MT_BUG_ON(mt, mas_empty_area_rev(&mas, min,
779 pr_debug("Found %lu %lu\n", mas.index, mas.last);
783 MT_BUG_ON(mt, mas.last + 1 != (holes[i+1] >> 12));
784 MT_BUG_ON(mt, mas.index != (holes[i+1] >> 12) - (holes[i+2] >> 12));
786 mas_reset(&mas);
789 mas_unlock(&mas);
925 MA_STATE(mas, mt, 0, 0);
943 mas_lock(&mas);
951 MT_BUG_ON(mt, mas_empty_area(&mas, min >> 12,
954 MT_BUG_ON(mt, mas.index != holes[i] >> 12);
956 mas_reset(&mas);
958 mas_unlock(&mas);
1320 MA_STATE(mas, mt, i, i);
1328 MT_BUG_ON(mt, mas_walk(&mas) != xa_mk_value(i++));
1330 entry = mas_next(&mas, limit);
1346 MA_STATE(mas, mt, index, index);
1352 value = mas_find(&mas, ULONG_MAX);
1354 value = mas_prev(&mas, 0);
1361 mas_lock(&mas);
1363 mas_set_range(&mas, i*10, i*10+5);
1364 mas_store_gfp(&mas, xa_mk_value(i), GFP_KERNEL);
1367 mas_set(&mas, 20);
1368 value = mas_walk(&mas);
1371 value = mas_prev(&mas, 19);
1374 mas_set(&mas, 80);
1375 value = mas_walk(&mas);
1378 value = mas_prev(&mas, 76);
1381 mas_unlock(&mas);
1386 MA_STATE(mas, mt, 0, 0);
1390 mas_lock(&mas);
1391 mas_set(&mas, 3);
1392 ptr = mas_walk(&mas);
1393 MT_BUG_ON(mt, mas.index != 0);
1395 MT_BUG_ON(mt, mas.index != 0);
1396 MT_BUG_ON(mt, mas.last != ULONG_MAX);
1399 mas_set(&mas, 1);
1400 mas_store_gfp(&mas, ptr, GFP_KERNEL);
1402 mas_set(&mas, 0);
1403 ptr = mas_walk(&mas);
1406 mas_set(&mas, 1);
1407 ptr = mas_walk(&mas);
1410 mas_set(&mas, 2);
1411 ptr = mas_walk(&mas);
1413 mas_unlock(&mas);
1418 mas_lock(&mas);
1420 mas_set(&mas, 0);
1422 mas_store_gfp(&mas, ptr, GFP_KERNEL);
1424 mas_set(&mas, 5);
1425 ptr = mas_walk(&mas);
1427 MT_BUG_ON(mt, mas.index != 1);
1428 MT_BUG_ON(mt, mas.last != ULONG_MAX);
1430 mas_set_range(&mas, 0, 100);
1431 ptr = mas_walk(&mas);
1433 MT_BUG_ON(mt, mas.last != 0);
1434 mas_unlock(&mas);
1438 mas_lock(&mas);
1440 mas_set(&mas, 0);
1442 mas_store_gfp(&mas, ptr, GFP_KERNEL);
1443 ptr = mas_next(&mas, ULONG_MAX);
1445 MT_BUG_ON(mt, (mas.index != 1) && (mas.last != ULONG_MAX));
1447 mas_set(&mas, 1);
1448 ptr = mas_prev(&mas, 0);
1449 MT_BUG_ON(mt, (mas.index != 0) && (mas.last != 0));
1452 mas_unlock(&mas);
1457 mas_lock(&mas);
1458 mas_set(&mas, 0);
1460 mas_store_gfp(&mas, ptr, GFP_KERNEL);
1461 ptr = mas_next(&mas, ULONG_MAX);
1463 MT_BUG_ON(mt, (mas.index != ULONG_MAX) && (mas.last != ULONG_MAX));
1465 mas_set(&mas, 1);
1466 ptr = mas_prev(&mas, 0);
1467 MT_BUG_ON(mt, (mas.index != 0) && (mas.last != 0));
1471 mas_unlock(&mas);
1520 MA_STATE(mas, mt, 0, 0);
1528 mas_set(&mas, index);
1539 entry = mas_find(&mas, ULONG_MAX);
1541 mn1 = mas.node;
1542 mas_next(&mas, ULONG_MAX);
1543 entry = mas_next(&mas, ULONG_MAX);
1545 mn2 = mas.node;
1553 mas_reset(&mas);
1554 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq100[3], seq100[4],
1556 MT_BUG_ON(mt, mas.index != index + 1);
1567 mas.index = index;
1568 mas.last = index;
1569 mas_reset(&mas);
1570 entry = mas_find(&mas, ULONG_MAX);
1572 mn1 = mas.node;
1573 entry = mas_next(&mas, ULONG_MAX);
1575 mas_next(&mas, ULONG_MAX); /* go to the next entry. */
1576 mn2 = mas.node;
1583 mas_reset(&mas);
1584 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq100[10], seq100[11],
1586 MT_BUG_ON(mt, mas.index != seq100[6]);
1597 mas_reset(&mas);
1599 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq100[16], seq100[15],
1601 MT_BUG_ON(mt, mas.index != seq100[13]);
1612 mas_reset(&mas);
1614 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq100[16], seq100[19],
1617 MT_BUG_ON(mt, mas.index != seq100[18]);
1629 mas_reset(&mas);
1631 MT_BUG_ON(mt, mas_empty_area_rev(&mas, seq2000[2], seq2000[3],
1633 MT_BUG_ON(mt, mas.index != seq2000[1]);
1722 MA_STATE(mas, mt, 1470, 1470);
1730 mas_empty_area_rev(&mas, 0, 2000, 10);
1731 mas_reset(&mas);
1739 MA_STATE(mas, mt, 1470, 1470);
1745 mas_walk(&mas);
1746 mas_reset(&mas);
1782 MA_STATE(mas, mt, 0, 0);
1796 mas_for_each(&mas, entry, max) {
1800 mas_set(&mas, 0);
1812 MA_STATE(mas, mt, 0, 0);
1826 mas_set(&mas, ULONG_MAX);
1827 while ((entry = mas_prev(&mas, 0)) != NULL) {
1843 MA_STATE(mas, mt, 0, 0);
1858 mas_reset(&mas);
1860 mas.index = 0;
1861 mas.last = 0;
1867 mas_for_each(&mas, val, ULONG_MAX) {
1868 newmas.index = mas.index;
1869 newmas.last = mas.last;
1884 MA_STATE(mas, mt, 0, 0);
1893 mas_lock(&mas);
1894 mas_for_each(&mas, val, 925) {
1895 MT_BUG_ON(mt, mas.index != i * 10);
1896 MT_BUG_ON(mt, mas.last != i * 10 + 9);
1899 mas.index = 925;
1900 mas.last = 929;
1901 mas_store(&mas, val);
1906 val = mas_find(&mas, ULONG_MAX);
1909 mas_set(&mas, 0);
1911 mas_for_each(&mas, val, 785) {
1912 MT_BUG_ON(mt, mas.index != i * 10);
1913 MT_BUG_ON(mt, mas.last != i * 10 + 9);
1916 mas.index = 780;
1917 mas.last = 785;
1918 mas_store(&mas, val);
1923 val = mas_find(&mas, ULONG_MAX);
1926 mas_set(&mas, 0);
1928 mas_for_each(&mas, val, 765) {
1929 MT_BUG_ON(mt, mas.index != i * 10);
1930 MT_BUG_ON(mt, mas.last != i * 10 + 9);
1933 mas.index = 760;
1934 mas.last = 765;
1935 mas_store(&mas, val);
1940 val = mas_find(&mas, ULONG_MAX);
1942 mas_unlock(&mas);
1943 mas_destroy(&mas);
1953 MA_STATE(mas, mt, 0, 0);
1966 mas_set(&mas, 0);
1967 mas_for_each(&mas, val, ULONG_MAX) {
1968 newmas.index = mas.index;
1969 newmas.last = mas.last;
1986 MA_STATE(mas, mt, 0, 0);
2002 mas_reset(&mas);
2003 mas.index = 0;
2004 mas.last = 0;
2011 mas_for_each(&mas, val, ULONG_MAX) {
2012 newmas.index = mas.index;
2013 newmas.last = mas.last;
2030 MA_STATE(mas, mt, 0, 0);
2053 mas_lock(&mas);
2055 mas_next(&mas, 1000);
2056 if (mas_is_none(&mas))
2060 mas_reset(&mas);
2061 mas_set(&mas, 0);
2063 mas_for_each(&mas, val, 1000) {
2067 mas_reset(&mas);
2068 mas_set(&mas, 0);
2070 mas_for_each(&mas, val, 1000) {
2071 mas_pause(&mas);
2081 mas_set(&mas, 686);
2082 val = mas_walk(&mas);
2085 val = mas_next(&mas, 1000);
2087 MT_BUG_ON(mt, mas.index != 690);
2088 MT_BUG_ON(mt, mas.last != 695);
2090 val = mas_prev(&mas, 0);
2092 MT_BUG_ON(mt, mas.index != 680);
2093 MT_BUG_ON(mt, mas.last != 685);
2095 val = mas_next(&mas, 1000);
2097 MT_BUG_ON(mt, mas.index != 690);
2098 MT_BUG_ON(mt, mas.last != 695);
2100 val = mas_next(&mas, 1000);
2102 MT_BUG_ON(mt, mas.index != 700);
2103 MT_BUG_ON(mt, mas.last != 705);
2106 mas_set(&mas, 70);
2107 val = mas_walk(&mas);
2109 MT_BUG_ON(mt, mas.index != 70);
2110 MT_BUG_ON(mt, mas.last != 75);
2112 val = mas_next(&mas, 1000);
2114 MT_BUG_ON(mt, mas.index != 80);
2115 MT_BUG_ON(mt, mas.last != 85);
2117 val = mas_prev(&mas, 70);
2119 MT_BUG_ON(mt, mas.index != 70);
2120 MT_BUG_ON(mt, mas.last != 75);
2123 mas_reset(&mas);
2124 mas_set(&mas, level2[0]);
2125 val = mas_walk(&mas);
2127 val = mas_next(&mas, level2[1]);
2129 MT_BUG_ON(mt, mas.index != level2[2]);
2130 MT_BUG_ON(mt, mas.last != level2[3]);
2131 mn = mas.node;
2133 val = mas_next(&mas, level2[1]);
2135 MT_BUG_ON(mt, mas.index != level2[4]);
2136 MT_BUG_ON(mt, mas.last != level2[5]);
2137 MT_BUG_ON(mt, mn == mas.node);
2139 val = mas_prev(&mas, 0);
2141 MT_BUG_ON(mt, mas.index != level2[2]);
2142 MT_BUG_ON(mt, mas.last != level2[3]);
2145 mas_set(&mas, nr_entries * 10);
2146 val = mas_walk(&mas);
2148 MT_BUG_ON(mt, mas.index != (nr_entries * 10));
2149 MT_BUG_ON(mt, mas.last != (nr_entries * 10 + 5));
2151 val = mas_next(&mas, ULONG_MAX);
2153 MT_BUG_ON(mt, mas.index != last_index);
2154 MT_BUG_ON(mt, mas.last != ULONG_MAX);
2156 val = mas_prev(&mas, 0);
2158 MT_BUG_ON(mt, mas.index != (nr_entries * 10));
2159 MT_BUG_ON(mt, mas.last != (nr_entries * 10 + 5));
2162 mas_reset(&mas);
2163 mas_set(&mas, 10);
2164 val = mas_walk(&mas);
2166 MT_BUG_ON(mt, mas.index != 10);
2167 MT_BUG_ON(mt, mas.last != 15);
2169 val = mas_prev(&mas, 0);
2171 MT_BUG_ON(mt, mas.index != 0);
2172 MT_BUG_ON(mt, mas.last != 5);
2174 val = mas_prev(&mas, 0);
2176 MT_BUG_ON(mt, mas.index != 0);
2177 MT_BUG_ON(mt, mas.last != 5);
2178 MT_BUG_ON(mt, mas.node != MAS_UNDERFLOW);
2180 mas.index = 0;
2181 mas.last = 5;
2182 mas_store(&mas, NULL);
2183 mas_reset(&mas);
2184 mas_set(&mas, 10);
2185 mas_walk(&mas);
2187 val = mas_prev(&mas, 0);
2189 MT_BUG_ON(mt, mas.index != 0);
2190 MT_BUG_ON(mt, mas.last != 9);
2191 mas_unlock(&mas);
2199 mas_set(&mas, 5);
2200 val = mas_prev(&mas, 4);
2333 * Fixed by checking the last pivot for the mas->max and clear
2626 MA_STATE(mas, mt, 0, 0);
2649 mas_for_each(&mas, tmp, ULONG_MAX) {
2650 newmas.index = mas.index;
2651 newmas.last = mas.last;
2753 MA_STATE(mas, mt, 0, 0);
2756 mas_lock(&mas);
2758 mas_set_range(&mas, i*10, i*10+9);
2759 mas_store(&mas, check_bnode_min_spanning);
2762 mas_set_range(&mas, 240, 509);
2763 mas_store(&mas, NULL);
2764 mas_unlock(&mas);
2765 mas_destroy(&mas);
2772 MA_STATE(mas, mt, 0, 0);
2783 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 5, 90, 10) != -EBUSY);
2785 mas_reset(&mas);
2786 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 6, 90, 5) != -EBUSY);
2789 mas_reset(&mas);
2790 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 5, 90, 5) != 0);
2791 MT_BUG_ON(mt, mas.index != 5);
2792 MT_BUG_ON(mt, mas.last != 9);
2797 mas_reset(&mas);
2798 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 5, 217, 9) != 0);
2799 MT_BUG_ON(mt, mas.index != 161);
2800 MT_BUG_ON(mt, mas.last != 169);
2803 mas_reset(&mas);
2804 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 100, 218, 3) != 0);
2805 MT_BUG_ON(mt, mas.index != 216);
2806 MT_BUG_ON(mt, mas.last != 218);
2809 mas_reset(&mas);
2810 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 100, 218, 16) != -EBUSY);
2816 mas_reset(&mas);
2817 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 167, 200, 4) != -EBUSY);
2823 mas_reset(&mas);
2824 MT_BUG_ON(mt, mas_empty_area_rev(&mas, 100, 162, 4) != -EBUSY);
2827 mas_reset(&mas);
2828 MT_BUG_ON(mt, mas_empty_area(&mas, 0, 100, 9) != 0);
2829 MT_BUG_ON(mt, mas.index != 0);
2830 MT_BUG_ON(mt, mas.last != 8);
2832 mas_reset(&mas);
2833 MT_BUG_ON(mt, mas_empty_area(&mas, 0, 100, 4) != 0);
2834 MT_BUG_ON(mt, mas.index != 0);
2835 MT_BUG_ON(mt, mas.last != 3);
2837 mas_reset(&mas);
2838 MT_BUG_ON(mt, mas_empty_area(&mas, 0, 100, 11) != -EBUSY);
2840 mas_reset(&mas);
2841 MT_BUG_ON(mt, mas_empty_area(&mas, 5, 100, 6) != -EBUSY);
2843 mas_reset(&mas);
2844 MT_BUG_ON(mt, mas_empty_area(&mas, 0, 8, 10) != -EINVAL);
2846 mas_reset(&mas);
2847 mas_empty_area(&mas, 100, 165, 3);
2849 mas_reset(&mas);
2850 MT_BUG_ON(mt, mas_empty_area(&mas, 100, 163, 6) != -EBUSY);
2859 MA_STATE(mas, mt, 0, 0);
2866 mas_set(&mas, 0);
2867 mas_lock(&mas);
2868 MT_BUG_ON(mt, mas_empty_area(&mas, 0, max, size) != 0);
2869 MT_BUG_ON(mt, mas.last != mas.index + size - 1);
2870 mas_store_gfp(&mas, (void *)size, GFP_KERNEL);
2871 mas_unlock(&mas);
2872 mas_reset(&mas);
2879 MT_BUG_ON(mt, mas_empty_area(&mas, 0, max, size) != -EBUSY);
2889 mas_reset(&mas);
2892 MT_BUG_ON(mt, mas_empty_area(&mas, 629506048, 690000000, 0x5000) != 0);
3048 MA_STATE(mas, mt, 0, 0);
3056 mas_lock(&mas);
3058 entry = mas_prev(&mas, 0);
3060 MT_BUG_ON(mt, mas.node != MAS_UNDERFLOW);
3063 mas_set(&mas, 10);
3064 entry = mas_prev(&mas, 0);
3066 MT_BUG_ON(mt, mas.index != 0);
3067 MT_BUG_ON(mt, mas.last != 0);
3068 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3071 mas_set(&mas, 10);
3072 mas_pause(&mas);
3073 entry = mas_prev(&mas, 0);
3075 MT_BUG_ON(mt, mas.index != 0);
3076 MT_BUG_ON(mt, mas.last != 0);
3077 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3080 mas_set(&mas, 0);
3081 entry = mas_next(&mas, ULONG_MAX);
3082 MT_BUG_ON(mt, mas.index != 1);
3083 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3085 MT_BUG_ON(mt, mas.node != MAS_NONE);
3088 mas_set(&mas, 10);
3089 entry = mas_next(&mas, ULONG_MAX);
3090 MT_BUG_ON(mt, mas.index != 1);
3091 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3093 MT_BUG_ON(mt, mas.node != MAS_NONE);
3096 mas_set(&mas, 0);
3097 entry = mas_find(&mas, ULONG_MAX);
3099 MT_BUG_ON(mt, mas.index != 0);
3100 MT_BUG_ON(mt, mas.last != 0);
3101 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3104 entry = mas_find(&mas, ULONG_MAX);
3106 MT_BUG_ON(mt, mas.index != 1);
3107 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3108 MT_BUG_ON(mt, mas.node != MAS_NONE);
3111 entry = mas_find(&mas, ULONG_MAX);
3113 MT_BUG_ON(mt, mas.index != 1);
3114 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3115 MT_BUG_ON(mt, mas.node != MAS_NONE);
3118 mas_set(&mas, 10);
3119 entry = mas_find(&mas, ULONG_MAX);
3121 MT_BUG_ON(mt, mas.index != 1);
3122 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3123 MT_BUG_ON(mt, mas.node != MAS_NONE);
3126 entry = mas_find_rev(&mas, 0);
3128 MT_BUG_ON(mt, mas.index != 0);
3129 MT_BUG_ON(mt, mas.last != 0);
3130 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3133 mas_set(&mas, 0);
3134 entry = mas_find_rev(&mas, 0);
3136 MT_BUG_ON(mt, mas.index != 0);
3137 MT_BUG_ON(mt, mas.last != 0);
3138 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3141 entry = mas_find_rev(&mas, 0);
3143 MT_BUG_ON(mt, mas.index != 0);
3144 MT_BUG_ON(mt, mas.last != 0);
3145 MT_BUG_ON(mt, mas.node != MAS_NONE);
3148 entry = mas_find_rev(&mas, 0);
3150 MT_BUG_ON(mt, mas.index != 0);
3151 MT_BUG_ON(mt, mas.last != 0);
3152 MT_BUG_ON(mt, mas.node != MAS_NONE);
3155 mas_set(&mas, 10);
3156 entry = mas_find_rev(&mas, 0);
3158 MT_BUG_ON(mt, mas.index != 0);
3159 MT_BUG_ON(mt, mas.last != 0);
3160 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3163 mas_set(&mas, 10);
3164 entry = mas_walk(&mas);
3166 MT_BUG_ON(mt, mas.index != 1);
3167 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3168 MT_BUG_ON(mt, mas.node != MAS_NONE);
3171 mas_set(&mas, 10);
3172 mas_pause(&mas);
3173 entry = mas_walk(&mas);
3175 MT_BUG_ON(mt, mas.index != 1);
3176 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3177 MT_BUG_ON(mt, mas.node != MAS_NONE);
3180 mas.index = mas.last = 10;
3181 entry = mas_walk(&mas);
3183 MT_BUG_ON(mt, mas.index != 1);
3184 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3185 MT_BUG_ON(mt, mas.node != MAS_NONE);
3188 entry = mas_walk(&mas);
3190 MT_BUG_ON(mt, mas.index != 1);
3191 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3192 MT_BUG_ON(mt, mas.node != MAS_NONE);
3195 mas_set(&mas, 0);
3196 entry = mas_walk(&mas);
3198 MT_BUG_ON(mt, mas.index != 0);
3199 MT_BUG_ON(mt, mas.last != 0);
3200 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3203 mas_set(&mas, 0);
3204 mas_pause(&mas);
3205 entry = mas_walk(&mas);
3207 MT_BUG_ON(mt, mas.index != 0);
3208 MT_BUG_ON(mt, mas.last != 0);
3209 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3212 mas.node = MAS_NONE;
3213 entry = mas_walk(&mas);
3215 MT_BUG_ON(mt, mas.index != 0);
3216 MT_BUG_ON(mt, mas.last != 0);
3217 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3220 entry = mas_walk(&mas);
3222 MT_BUG_ON(mt, mas.index != 0);
3223 MT_BUG_ON(mt, mas.last != 0);
3224 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3227 mas_set(&mas, 10);
3228 entry = mas_walk(&mas);
3230 MT_BUG_ON(mt, mas.index != 1);
3231 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3232 MT_BUG_ON(mt, mas.node != MAS_NONE);
3235 mas.index = mas.last = 0;
3236 entry = mas_walk(&mas);
3238 MT_BUG_ON(mt, mas.index != 0);
3239 MT_BUG_ON(mt, mas.last != 0);
3240 MT_BUG_ON(mt, mas.node != MAS_ROOT);
3242 mas_unlock(&mas);
3250 mas_lock(&mas);
3253 mas_set(&mas, 0);
3254 entry = mas_next(&mas, ULONG_MAX);
3256 MT_BUG_ON(mt, mas.index != 0x1000);
3257 MT_BUG_ON(mt, mas.last != 0x1500);
3258 MT_BUG_ON(mt, !mas_active(mas));
3261 mas_set(&mas, 0);
3262 mas_pause(&mas);
3263 entry = mas_next(&mas, ULONG_MAX);
3265 MT_BUG_ON(mt, mas.index != 0x1000);
3266 MT_BUG_ON(mt, mas.last != 0x1500);
3267 MT_BUG_ON(mt, !mas_active(mas));
3270 mas.index = mas.last = 0;
3271 mas.offset = 0;
3272 mas.node = MAS_NONE;
3273 entry = mas_next(&mas, ULONG_MAX);
3275 MT_BUG_ON(mt, mas.index != 0x1000);
3276 MT_BUG_ON(mt, mas.last != 0x1500);
3277 MT_BUG_ON(mt, !mas_active(mas));
3280 entry = mas_next(&mas, ULONG_MAX);
3282 MT_BUG_ON(mt, mas.index != 0x2000);
3283 MT_BUG_ON(mt, mas.last != 0x2500);
3284 MT_BUG_ON(mt, !mas_active(mas));
3287 entry = mas_next(&mas, 0x2999);
3289 MT_BUG_ON(mt, mas.index != 0x2501);
3290 MT_BUG_ON(mt, mas.last != 0x2fff);
3291 MT_BUG_ON(mt, !mas_active(mas));
3294 entry = mas_next(&mas, ULONG_MAX);
3296 MT_BUG_ON(mt, mas.index != 0x3000);
3297 MT_BUG_ON(mt, mas.last != 0x3500);
3298 MT_BUG_ON(mt, !mas_active(mas));
3301 entry = mas_next(&mas, ULONG_MAX);
3303 MT_BUG_ON(mt, mas.index != 0x3501);
3304 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3305 MT_BUG_ON(mt, !mas_active(mas));
3308 entry = mas_next(&mas, ULONG_MAX);
3310 MT_BUG_ON(mt, mas.index != 0x3501);
3311 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3312 MT_BUG_ON(mt, mas.node != MAS_OVERFLOW);
3315 entry = mas_next(&mas, ULONG_MAX);
3317 MT_BUG_ON(mt, mas.index != 0x3501);
3318 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3319 MT_BUG_ON(mt, mas.node != MAS_OVERFLOW);
3322 entry = mas_prev(&mas, 0);
3324 MT_BUG_ON(mt, mas.index != 0x3000);
3325 MT_BUG_ON(mt, mas.last != 0x3500);
3326 MT_BUG_ON(mt, !mas_active(mas));
3329 mas_set(&mas, 0);
3330 entry = mas_next(&mas, ULONG_MAX);
3331 mas.node = MAS_NONE;
3332 mas.offset = 0;
3333 entry = mas_next(&mas, ULONG_MAX);
3335 MT_BUG_ON(mt, mas.index != 0x2000);
3336 MT_BUG_ON(mt, mas.last != 0x2500);
3337 MT_BUG_ON(mt, !mas_active(mas));
3340 entry = mas_prev(&mas, 0);
3342 MT_BUG_ON(mt, mas.index != 0x1000);
3343 MT_BUG_ON(mt, mas.last != 0x1500);
3344 MT_BUG_ON(mt, !mas_active(mas));
3347 entry = mas_prev(&mas, 0x0100);
3349 MT_BUG_ON(mt, mas.index != 0);
3350 MT_BUG_ON(mt, mas.last != 0x0FFF);
3351 MT_BUG_ON(mt, !mas_active(mas));
3354 entry = mas_prev(&mas, 0);
3356 MT_BUG_ON(mt, mas.index != 0);
3357 MT_BUG_ON(mt, mas.last != 0x0FFF);
3358 MT_BUG_ON(mt, mas.node != MAS_UNDERFLOW);
3361 entry = mas_prev(&mas, 0);
3363 MT_BUG_ON(mt, mas.index != 0);
3364 MT_BUG_ON(mt, mas.last != 0x0FFF);
3365 MT_BUG_ON(mt, mas.node != MAS_UNDERFLOW);
3368 entry = mas_next(&mas, ULONG_MAX);
3370 MT_BUG_ON(mt, mas.index != 0x1000);
3371 MT_BUG_ON(mt, mas.last != 0x1500);
3372 MT_BUG_ON(mt, !mas_active(mas));
3375 entry = mas_prev(&mas, 0x1000);
3377 MT_BUG_ON(mt, mas.index != 0x1000);
3378 MT_BUG_ON(mt, mas.last != 0x1500);
3379 MT_BUG_ON(mt, mas.node != MAS_UNDERFLOW);
3382 entry = mas_find(&mas, ULONG_MAX);
3384 MT_BUG_ON(mt, mas.index != 0x1000);
3385 MT_BUG_ON(mt, mas.last != 0x1500);
3386 MT_BUG_ON(mt, !mas_active(mas));
3389 mas_set(&mas, 0x3600);
3390 entry = mas_prev(&mas, 0);
3392 mas_pause(&mas);
3393 entry = mas_prev(&mas, 0);
3395 MT_BUG_ON(mt, mas.index != 0x2000);
3396 MT_BUG_ON(mt, mas.last != 0x2500);
3397 MT_BUG_ON(mt, !mas_active(mas));
3400 entry = mas_prev(&mas, 0x1600);
3402 MT_BUG_ON(mt, mas.index != 0x1501);
3403 MT_BUG_ON(mt, mas.last != 0x1FFF);
3404 MT_BUG_ON(mt, !mas_active(mas));
3407 entry = mas_prev(&mas, 0);
3409 MT_BUG_ON(mt, mas.index != 0x1000);
3410 MT_BUG_ON(mt, mas.last != 0x1500);
3411 MT_BUG_ON(mt, !mas_active(mas));
3414 mas_set(&mas, 0);
3415 entry = mas_find(&mas, ULONG_MAX);
3417 MT_BUG_ON(mt, mas.index != 0x1000);
3418 MT_BUG_ON(mt, mas.last != 0x1500);
3419 MT_BUG_ON(mt, !mas_active(mas));
3422 mas_set(&mas, 0);
3423 mas_pause(&mas);
3424 entry = mas_find(&mas, ULONG_MAX);
3426 MT_BUG_ON(mt, mas.index != 0x1000);
3427 MT_BUG_ON(mt, mas.last != 0x1500);
3428 MT_BUG_ON(mt, !mas_active(mas));
3431 mas_set(&mas, 1200);
3432 entry = mas_find(&mas, ULONG_MAX);
3434 MT_BUG_ON(mt, mas.index != 0x1000);
3435 MT_BUG_ON(mt, mas.last != 0x1500);
3436 MT_BUG_ON(mt, !mas_active(mas));
3439 entry = mas_find(&mas, ULONG_MAX);
3441 MT_BUG_ON(mt, mas.index != 0x2000);
3442 MT_BUG_ON(mt, mas.last != 0x2500);
3443 MT_BUG_ON(mt, !mas_active(mas));
3447 entry = mas_find(&mas, 0x2700);
3449 MT_BUG_ON(mt, mas.index != 0x2501);
3450 MT_BUG_ON(mt, mas.last != 0x2FFF);
3451 MT_BUG_ON(mt, !mas_active(mas));
3454 entry = mas_find(&mas, 0x5000);
3456 MT_BUG_ON(mt, mas.index != 0x3000);
3457 MT_BUG_ON(mt, mas.last != 0x3500);
3458 MT_BUG_ON(mt, !mas_active(mas));
3461 entry = mas_find(&mas, ULONG_MAX);
3463 MT_BUG_ON(mt, mas.index != 0x3501);
3464 MT_BUG_ON(mt, mas.last != ULONG_MAX);
3465 MT_BUG_ON(mt, !mas_active(mas));
3468 entry = mas_find_rev(&mas, 0);
3470 MT_BUG_ON(mt, mas.index != 0x3000);
3471 MT_BUG_ON(mt, mas.last != 0x3500);
3472 MT_BUG_ON(mt, !mas_active(mas));
3475 entry = mas_find_rev(&mas, 0);
3477 MT_BUG_ON(mt, mas.index != 0x2000);
3478 MT_BUG_ON(mt, mas.last != 0x2500);
3479 MT_BUG_ON(mt, !mas_active(mas));
3482 mas_pause(&mas);
3483 entry = mas_find_rev(&mas, 0);
3485 MT_BUG_ON(mt, mas.index != 0x1000);
3486 MT_BUG_ON(mt, mas.last != 0x1500);
3487 MT_BUG_ON(mt, !mas_active(mas));
3490 entry = mas_find_rev(&mas, 0);
3492 MT_BUG_ON(mt, mas.index != 0);
3493 MT_BUG_ON(mt, mas.last != 0x0FFF);
3494 MT_BUG_ON(mt, !mas_active(mas));
3497 mas_set(&mas, 0x1200);
3498 entry = mas_find_rev(&mas, 0);
3500 MT_BUG_ON(mt, mas.index != 0x1000);
3501 MT_BUG_ON(mt, mas.last != 0x1500);
3502 MT_BUG_ON(mt, !mas_active(mas));
3505 mas_set(&mas, 0x1200);
3506 entry = mas_walk(&mas);
3508 MT_BUG_ON(mt, mas.index != 0x1000);
3509 MT_BUG_ON(mt, mas.last != 0x1500);
3510 MT_BUG_ON(mt, !mas_active(mas));
3513 mas_set(&mas, 0x1600);
3514 entry = mas_walk(&mas);
3516 MT_BUG_ON(mt, mas.index != 0x1501);
3517 MT_BUG_ON(mt, mas.last != 0x1fff);
3518 MT_BUG_ON(mt, !mas_active(mas));
3521 mas_set(&mas, 0x1200);
3522 mas_pause(&mas);
3523 entry = mas_walk(&mas);
3525 MT_BUG_ON(mt, mas.index != 0x1000);
3526 MT_BUG_ON(mt, mas.last != 0x1500);
3527 MT_BUG_ON(mt, !mas_active(mas));
3530 mas_set(&mas, 0x1600);
3531 mas_pause(&mas);
3532 entry = mas_walk(&mas);
3534 MT_BUG_ON(mt, mas.index != 0x1501);
3535 MT_BUG_ON(mt, mas.last != 0x1fff);
3536 MT_BUG_ON(mt, !mas_active(mas));
3539 mas_set(&mas, 0x1200);
3540 mas.node = MAS_NONE;
3541 entry = mas_walk(&mas);
3543 MT_BUG_ON(mt, mas.index != 0x1000);
3544 MT_BUG_ON(mt, mas.last != 0x1500);
3545 MT_BUG_ON(mt, !mas_active(mas));
3548 mas_set(&mas, 0x1600);
3549 mas.node = MAS_NONE;
3550 entry = mas_walk(&mas);
3552 MT_BUG_ON(mt, mas.index != 0x1501);
3553 MT_BUG_ON(mt, mas.last != 0x1fff);
3554 MT_BUG_ON(mt, !mas_active(mas));
3557 mas.index = 0x1200;
3558 mas.last = 0x1200;
3559 mas.offset = 0;
3560 entry = mas_walk(&mas);
3562 MT_BUG_ON(mt, mas.index != 0x1000);
3563 MT_BUG_ON(mt, mas.last != 0x1500);
3564 MT_BUG_ON(mt, !mas_active(mas));
3567 mas.index = 0x1600;
3568 mas.last = 0x1600;
3569 entry = mas_walk(&mas);
3571 MT_BUG_ON(mt, mas.index != 0x1501);
3572 MT_BUG_ON(mt, mas.last != 0x1fff);
3573 MT_BUG_ON(mt, !mas_active(mas));
3575 mas_unlock(&mas);