}
EXPORT_SYMBOL_GPL(mas_prev);
+static inline unsigned long _mas_rev_awalk_min(struct ma_state *mas,
+ unsigned char slot,
+ enum maple_type type)
+{
+ if (!slot)
+ return mas->min;
+ return _mte_get_pivot(mas->node, slot - 1, type) + 1;
+}
static inline bool _mas_rev_awalk(struct ma_state *mas, unsigned long size)
{
enum maple_type type;
do {
void *entry = NULL;
- if (!i)
- min = mas->min;
- else
- min = _mte_get_pivot(mas->node, i - 1,
- type) + 1;
+ min = _mas_rev_awalk_min(mas, i, type);
/* last is below this range */
if (mas->last < min)
default:
do {
- if (!i)
- min = mas->min;
- else
- min = _mte_get_pivot(mas->node, i - 1,
- type) + 1;
-
+ min = _mas_rev_awalk_min(mas, i, type);
/* last is too little for this range */
if (mas->last < min)