struct mock_hwsp_freelist {
struct drm_i915_private *i915;
- struct radix_tree_root cachelines;
+ struct xarray cachelines;
struct i915_timeline **history;
unsigned long count, max;
struct rnd_state prng;
{
tl = xchg(&state->history[idx], tl);
if (tl) {
- radix_tree_delete(&state->cachelines, hwsp_cacheline(tl));
+ xa_erase(&state->cachelines, hwsp_cacheline(tl));
i915_timeline_put(tl);
}
}
return PTR_ERR(tl);
cacheline = hwsp_cacheline(tl);
- err = radix_tree_insert(&state->cachelines, cacheline, tl);
+ err = xa_insert(&state->cachelines, cacheline, tl, GFP_KERNEL);
if (err) {
- if (err == -EEXIST) {
+ if (err == -EBUSY) {
pr_err("HWSP cacheline %lu already used; duplicate allocation!\n",
cacheline);
}
unsigned int na;
int err = 0;
- INIT_RADIX_TREE(&state.cachelines, GFP_KERNEL);
+ xa_init(&state.cachelines);
state.prng = I915_RND_STATE_INITIALIZER(i915_selftest.random_seed);
state.i915 = mock_gem_device();