diff options
| author | Joonas Lahtinen <joonas.lahtinen@linux.intel.com> | 2022-02-03 09:53:49 +0200 |
|---|---|---|
| committer | Joonas Lahtinen <joonas.lahtinen@linux.intel.com> | 2022-02-03 09:53:49 +0200 |
| commit | 876f7a438e4247a948268ad77b67c494f709cc30 (patch) | |
| tree | c3fa2548657920df9d80822d08ff24666e62d37d /include/linux/xarray.h | |
| parent | 86df4141869350edaa53fb994b3db2c2cca5065d (diff) | |
| parent | 53dbee4926d3706ca9e03f3928fa85b5ec3bc0cc (diff) | |
| download | cachepc-linux-876f7a438e4247a948268ad77b67c494f709cc30.tar.gz cachepc-linux-876f7a438e4247a948268ad77b67c494f709cc30.zip | |
Merge drm/drm-next into drm-intel-gt-next
Backmerge to bring in 5.17-rc2 to introduce a common baseline
to merge i915_regs changes from drm-intel-next.
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Diffstat (limited to 'include/linux/xarray.h')
| -rw-r--r-- | include/linux/xarray.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/xarray.h b/include/linux/xarray.h index a91e3d90df8a..d6d5da6ed735 100644 --- a/include/linux/xarray.h +++ b/include/linux/xarray.h @@ -1581,6 +1581,24 @@ static inline void xas_set(struct xa_state *xas, unsigned long index) } /** + * xas_advance() - Skip over sibling entries. + * @xas: XArray operation state. + * @index: Index of last sibling entry. + * + * Move the operation state to refer to the last sibling entry. + * This is useful for loops that normally want to see sibling + * entries but sometimes want to skip them. Use xas_set() if you + * want to move to an index which is not part of this entry. + */ +static inline void xas_advance(struct xa_state *xas, unsigned long index) +{ + unsigned char shift = xas_is_node(xas) ? xas->xa_node->shift : 0; + + xas->xa_index = index; + xas->xa_offset = (index >> shift) & XA_CHUNK_MASK; +} + +/** * xas_set_order() - Set up XArray operation state for a multislot entry. * @xas: XArray operation state. * @index: Target of the operation. |
