Skip to content

Commit 30188df

Browse files
committed
drm/tests: Drop drm_kunit_helper_acquire_ctx_alloc()
lockdep complains when a lock is released in a separate thread the lock is taken in, and it turns out that kunit does run its actions in a separate thread than the test ran in. This means that drm_kunit_helper_acquire_ctx_alloc() just cannot work as it's supposed to, so let's just get rid of it. Suggested-by: Simona Vetter <[email protected]> Reviewed-by: Dmitry Baryshkov <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Maxime Ripard <[email protected]>
1 parent db505ff commit 30188df

File tree

5 files changed

+191
-176
lines changed

5 files changed

+191
-176
lines changed

drivers/gpu/drm/tests/drm_atomic_state_test.c

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ static int set_up_atomic_state(struct kunit *test,
189189
static void drm_test_check_connector_changed_modeset(struct kunit *test)
190190
{
191191
struct drm_atomic_test_priv *priv;
192-
struct drm_modeset_acquire_ctx *ctx;
192+
struct drm_modeset_acquire_ctx ctx;
193193
struct drm_connector *old_conn, *new_conn;
194194
struct drm_atomic_state *state;
195195
struct drm_device *drm;
@@ -203,14 +203,13 @@ static void drm_test_check_connector_changed_modeset(struct kunit *test)
203203
old_conn = &priv->connectors[0];
204204
new_conn = &priv->connectors[1];
205205

206-
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
207-
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
206+
drm_modeset_acquire_init(&ctx, 0);
208207

209208
// first modeset to enable
210-
ret = set_up_atomic_state(test, priv, old_conn, ctx);
209+
ret = set_up_atomic_state(test, priv, old_conn, &ctx);
211210
KUNIT_ASSERT_EQ(test, ret, 0);
212211

213-
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
212+
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
214213
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
215214

216215
new_conn_state = drm_atomic_get_connector_state(state, new_conn);
@@ -231,6 +230,9 @@ static void drm_test_check_connector_changed_modeset(struct kunit *test)
231230
ret = drm_atomic_commit(state);
232231
KUNIT_ASSERT_EQ(test, ret, 0);
233232
KUNIT_ASSERT_EQ(test, modeset_counter, initial_modeset_count + 1);
233+
234+
drm_modeset_drop_locks(&ctx);
235+
drm_modeset_acquire_fini(&ctx);
234236
}
235237

236238
/*
@@ -263,7 +265,7 @@ static void drm_test_check_valid_clones(struct kunit *test)
263265
int ret;
264266
const struct drm_clone_mode_test *param = test->param_value;
265267
struct drm_atomic_test_priv *priv;
266-
struct drm_modeset_acquire_ctx *ctx;
268+
struct drm_modeset_acquire_ctx ctx;
267269
struct drm_device *drm;
268270
struct drm_atomic_state *state;
269271
struct drm_crtc_state *crtc_state;
@@ -273,13 +275,12 @@ static void drm_test_check_valid_clones(struct kunit *test)
273275

274276
drm = &priv->drm;
275277

276-
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
277-
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
278+
drm_modeset_acquire_init(&ctx, 0);
278279

279-
ret = set_up_atomic_state(test, priv, NULL, ctx);
280+
ret = set_up_atomic_state(test, priv, NULL, &ctx);
280281
KUNIT_ASSERT_EQ(test, ret, 0);
281282

282-
state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
283+
state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx);
283284
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
284285

285286
crtc_state = drm_atomic_get_crtc_state(state, priv->crtc);
@@ -292,6 +293,9 @@ static void drm_test_check_valid_clones(struct kunit *test)
292293

293294
ret = drm_atomic_helper_check_modeset(drm, state);
294295
KUNIT_ASSERT_EQ(test, ret, param->expected_result);
296+
297+
drm_modeset_drop_locks(&ctx);
298+
drm_modeset_acquire_fini(&ctx);
295299
}
296300

297301
static void drm_check_in_clone_mode_desc(const struct drm_clone_mode_test *t,

0 commit comments

Comments
 (0)