diff options
| author | Jani Nikula <jani.nikula@intel.com> | 2025-06-09 12:40:46 +0300 | 
|---|---|---|
| committer | Jani Nikula <jani.nikula@intel.com> | 2025-06-09 12:40:46 +0300 | 
| commit | 34c55367af96f62e89221444f04487440ebc6487 (patch) | |
| tree | fdb36ba67d7dea09455b55037e26043b7e051ef9 /lib/test_xarray.c | |
| parent | 7247efca0dcbc8ac6147db9200ed1549c0662465 (diff) | |
| parent | 19272b37aa4f83ca52bdf9c16d5d81bdd1354494 (diff) | |
| download | linux-34c55367af96f62e89221444f04487440ebc6487.tar.xz | |
Merge drm/drm-next into drm-intel-next
Sync to v6.16-rc1, among other things to get the fixed size GENMASK_U*()
and BIT_U*() macros.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'lib/test_xarray.c')
| -rw-r--r-- | lib/test_xarray.c | 17 | 
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/test_xarray.c b/lib/test_xarray.c index 080a39d22e73..5ca0aefee9aa 100644 --- a/lib/test_xarray.c +++ b/lib/test_xarray.c @@ -1040,6 +1040,7 @@ static noinline void check_xa_alloc_3(struct xarray *xa, unsigned int base)  	unsigned int i, id;  	unsigned long index;  	void *entry; +	int ret;  	XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, xa_mk_index(1), limit,  				&next, GFP_KERNEL) != 0); @@ -1059,7 +1060,7 @@ static noinline void check_xa_alloc_3(struct xarray *xa, unsigned int base)  		else  			entry = xa_mk_index(i - 0x3fff);  		XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, entry, limit, -					&next, GFP_KERNEL) != (id == 1)); +					&next, GFP_KERNEL) != 0);  		XA_BUG_ON(xa, xa_mk_index(id) != entry);  	} @@ -1072,7 +1073,7 @@ static noinline void check_xa_alloc_3(struct xarray *xa, unsigned int base)  				xa_limit_32b, &next, GFP_KERNEL) != 0);  	XA_BUG_ON(xa, id != UINT_MAX);  	XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, xa_mk_index(base), -				xa_limit_32b, &next, GFP_KERNEL) != 1); +				xa_limit_32b, &next, GFP_KERNEL) != 0);  	XA_BUG_ON(xa, id != base);  	XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, xa_mk_index(base + 1),  				xa_limit_32b, &next, GFP_KERNEL) != 0); @@ -1080,7 +1081,19 @@ static noinline void check_xa_alloc_3(struct xarray *xa, unsigned int base)  	xa_for_each(xa, index, entry)  		xa_erase_index(xa, index); +	XA_BUG_ON(xa, !xa_empty(xa)); +	/* check wrap-around return of __xa_alloc_cyclic() */ +	next = UINT_MAX; +	XA_BUG_ON(xa, xa_alloc_cyclic(xa, &id, xa_mk_index(UINT_MAX), +				      xa_limit_32b, &next, GFP_KERNEL) != 0); +	xa_lock(xa); +	ret = __xa_alloc_cyclic(xa, &id, xa_mk_index(base), xa_limit_32b, +				&next, GFP_KERNEL); +	xa_unlock(xa); +	XA_BUG_ON(xa, ret != 1); +	xa_for_each(xa, index, entry) +		xa_erase_index(xa, index);  	XA_BUG_ON(xa, !xa_empty(xa));  }  | 
