Skip to content

Commit 9b0827b

Browse files
committed
drm/tests: modeset: Fix drm_display_mode memory leak
drm_analog_tv_mode() and its variants return a drm_display_mode that needs to be destroyed later one. The drm_test_pick_cmdline_named() test never does however, which leads to a memory leak. Let's make sure it's freed. Reported-by: Philipp Stanner <phasta@mailbox.org> Closes: https://lore.kernel.org/dri-devel/a7655158a6367ac46194d57f4b7433ef0772a73e.camel@mailbox.org/ Fixes: fedcaf7 ("drm/modes: Properly generate a drm_display_mode from a named mode") Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://lore.kernel.org/r/20250408-drm-kunit-drm-display-mode-memleak-v1-3-996305a2e75a@kernel.org Signed-off-by: Maxime Ripard <mripard@kernel.org>
1 parent dacafdc commit 9b0827b

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

drivers/gpu/drm/tests/drm_client_modeset_test.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,8 @@ static void drm_test_pick_cmdline_named(struct kunit *test)
132132
struct drm_device *drm = priv->drm;
133133
struct drm_connector *connector = &priv->connector;
134134
struct drm_cmdline_mode *cmdline_mode = &connector->cmdline_mode;
135-
const struct drm_display_mode *expected_mode, *mode;
135+
const struct drm_display_mode *mode;
136+
struct drm_display_mode *expected_mode;
136137
const char *cmdline = params->cmdline;
137138
int ret;
138139

@@ -152,6 +153,9 @@ static void drm_test_pick_cmdline_named(struct kunit *test)
152153
expected_mode = params->func(drm);
153154
KUNIT_ASSERT_NOT_NULL(test, expected_mode);
154155

156+
ret = drm_kunit_add_mode_destroy_action(test, expected_mode);
157+
KUNIT_ASSERT_EQ(test, ret, 0);
158+
155159
KUNIT_EXPECT_TRUE(test, drm_mode_equal(expected_mode, mode));
156160
}
157161

0 commit comments

Comments
 (0)