Suppose xas is pointing somewhere near the end of the multi-entry batch. Then it may happen that the computed slot already falls beyond the batch, thus breaking the loop due to !xa_is_sibling(), and computing the wrong order. Thus ensure that the caller is aware of this by triggering a BUG when the entry is a sibling entry. This patch is motivated by code inspection and not a real bug report. Signed-off-by: Dev Jain <dev.jain@xxxxxxx> --- The patch applies on 6.15 kernel. lib/xarray.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/xarray.c b/lib/xarray.c index 9644b18af18d..0f699766c24f 100644 --- a/lib/xarray.c +++ b/lib/xarray.c @@ -1917,6 +1917,8 @@ int xas_get_order(struct xa_state *xas) if (!xas->xa_node) return 0; + XA_NODE_BUG_ON(xas->xa_node, xa_is_sibling(xa_entry(xas->xa, + xas->xa_node, xas->xa_offset))); for (;;) { unsigned int slot = xas->xa_offset + (1 << order); -- 2.30.2