> +#ifdef CONFIG_LOCKDEP_CROSSRELEASE
> +
> +#define idx(t)                       ((t)->xhlock_idx)
> +#define idx_prev(i)          ((i) ? (i) - 1 : MAX_XHLOCKS_NR - 1)
> +#define idx_next(i)          (((i) + 1) % MAX_XHLOCKS_NR)

Note that:

#define idx_prev(i)             (((i) - 1) % MAX_XHLOCKS_NR)
#define idx_next(i)             (((i) + 1) % MAX_XHLOCKS_NR)

is more symmetric and easier to understand.

> +
> +/* For easy access to xhlock */
> +#define xhlock(t, i)         ((t)->xhlocks + (i))
> +#define xhlock_prev(t, l)    xhlock(t, idx_prev((l) - (t)->xhlocks))
> +#define xhlock_curr(t)               xhlock(t, idx(t))

So these result in an xhlock pointer

> +#define xhlock_incr(t)               ({idx(t) = idx_next(idx(t));})

This does not; which is confusing seeing how they share the same
namespace; also incr is weird.

Reply via email to