* [PATCH v2 0/4] drm: Fix some memory leaks
@ 2024-10-14 12:52 Jinjie Ruan
2024-10-14 12:52 ` [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic() Jinjie Ruan
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Jinjie Ruan @ 2024-10-14 12:52 UTC (permalink / raw)
To: maarten.lankhorst, mripard, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, ruanjinjie, quic_jjohnson, skhan, davidgow,
karolina.stolarek, Arunpravin.PaneerSelvam, thomas.hellstrom,
asomalap, dri-devel, linux-kernel
Fix some memory leaks in drm.
Changes in v2:
- Fix it with new introduced helper instead of drm_mode_destroy().
- Update the commit message.
- Add Reviewed-by.
Jinjie Ruan (4):
drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic()
drm/connector: hdmi: Fix memory leak in
drm_display_mode_from_cea_vic()
drm/ttm/tests: Fix memory leak in ttm_tt_simple_create()
drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic()
drivers/gpu/drm/tests/drm_connector_test.c | 24 +++++------
.../drm/tests/drm_hdmi_state_helper_test.c | 8 ++--
drivers/gpu/drm/tests/drm_kunit_helpers.c | 40 +++++++++++++++++++
drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c | 1 +
include/drm/drm_kunit_helpers.h | 6 +++
5 files changed, 63 insertions(+), 16 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic()
2024-10-14 12:52 [PATCH v2 0/4] drm: Fix some memory leaks Jinjie Ruan
@ 2024-10-14 12:52 ` Jinjie Ruan
2024-10-16 9:35 ` Maxime Ripard
2024-10-14 12:52 ` [PATCH v2 2/4] drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic() Jinjie Ruan
` (2 subsequent siblings)
3 siblings, 1 reply; 12+ messages in thread
From: Jinjie Ruan @ 2024-10-14 12:52 UTC (permalink / raw)
To: maarten.lankhorst, mripard, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, ruanjinjie, quic_jjohnson, skhan, davidgow,
karolina.stolarek, Arunpravin.PaneerSelvam, thomas.hellstrom,
asomalap, dri-devel, linux-kernel
As Maxime suggested, add a new helper
drm_kunit_helper_display_mode_from_cea_vic(), it can replace
the direct call of drm_display_mode_from_cea_vic(), and it will
help solving the `mode` memory leaks.
Suggested-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
drivers/gpu/drm/tests/drm_kunit_helpers.c | 40 +++++++++++++++++++++++
include/drm/drm_kunit_helpers.h | 6 ++++
2 files changed, 46 insertions(+)
diff --git a/drivers/gpu/drm/tests/drm_kunit_helpers.c b/drivers/gpu/drm/tests/drm_kunit_helpers.c
index aa62719dab0e..dc70bafcd394 100644
--- a/drivers/gpu/drm/tests/drm_kunit_helpers.c
+++ b/drivers/gpu/drm/tests/drm_kunit_helpers.c
@@ -311,6 +311,46 @@ drm_kunit_helper_create_crtc(struct kunit *test,
}
EXPORT_SYMBOL_GPL(drm_kunit_helper_create_crtc);
+static void kunit_action_drm_mode_destroy(void *ptr)
+{
+ struct drm_display_mode *mode = ptr;
+
+ drm_mode_destroy(NULL, mode);
+}
+
+/**
+ * drm_kunit_helper_display_mode_from_cea_vic() - return a mode for CEA VIC
+ for a KUnit test
+ * @test: The test context object
+ * @dev: DRM device
+ * @video_code: CEA VIC of the mode
+ *
+ * Creates a new mode matching the specified CEA VIC for a KUnit test.
+ *
+ * Resources will be cleaned up automatically.
+ *
+ * Returns: A new drm_display_mode on success or NULL on failure
+ */
+struct drm_display_mode *
+drm_kunit_helper_display_mode_from_cea_vic(struct kunit *test,
+ struct drm_device *dev,
+ u8 video_code)
+{
+ struct drm_display_mode *mode;
+ int ret;
+
+ mode = drm_display_mode_from_cea_vic(dev, video_code);
+
+ ret = kunit_add_action_or_reset(test,
+ kunit_action_drm_mode_destroy,
+ mode);
+ if (ret)
+ return NULL;
+
+ return mode;
+}
+EXPORT_SYMBOL_GPL(drm_kunit_helper_display_mode_from_cea_vic);
+
MODULE_AUTHOR("Maxime Ripard <maxime@cerno.tech>");
MODULE_DESCRIPTION("KUnit test suite helper functions");
MODULE_LICENSE("GPL");
diff --git a/include/drm/drm_kunit_helpers.h b/include/drm/drm_kunit_helpers.h
index e7cc17ee4934..1e7fd4be550c 100644
--- a/include/drm/drm_kunit_helpers.h
+++ b/include/drm/drm_kunit_helpers.h
@@ -4,6 +4,7 @@
#define DRM_KUNIT_HELPERS_H_
#include <drm/drm_drv.h>
+#include <drm/drm_edid.h>
#include <linux/device.h>
@@ -120,4 +121,9 @@ drm_kunit_helper_create_crtc(struct kunit *test,
const struct drm_crtc_funcs *funcs,
const struct drm_crtc_helper_funcs *helper_funcs);
+struct drm_display_mode *
+drm_kunit_helper_display_mode_from_cea_vic(struct kunit *test,
+ struct drm_device *dev,
+ u8 video_code);
+
#endif // DRM_KUNIT_HELPERS_H_
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 2/4] drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic()
2024-10-14 12:52 [PATCH v2 0/4] drm: Fix some memory leaks Jinjie Ruan
2024-10-14 12:52 ` [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic() Jinjie Ruan
@ 2024-10-14 12:52 ` Jinjie Ruan
2024-10-16 9:36 ` mripard
2024-10-14 12:52 ` [PATCH v2 3/4] drm/ttm/tests: Fix memory leak in ttm_tt_simple_create() Jinjie Ruan
2024-10-14 12:52 ` [PATCH v2 4/4] drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic() Jinjie Ruan
3 siblings, 1 reply; 12+ messages in thread
From: Jinjie Ruan @ 2024-10-14 12:52 UTC (permalink / raw)
To: maarten.lankhorst, mripard, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, ruanjinjie, quic_jjohnson, skhan, davidgow,
karolina.stolarek, Arunpravin.PaneerSelvam, thomas.hellstrom,
asomalap, dri-devel, linux-kernel
modprobe drm_connector_test and then rmmod drm_connector_test,
the following memory leak occurs.
The `mode` allocated in drm_mode_duplicate() called by
drm_display_mode_from_cea_vic() is not freed, which cause the memory leak:
unreferenced object 0xffffff80cb0ee400 (size 128):
comm "kunit_try_catch", pid 1948, jiffies 4294950339
hex dump (first 32 bytes):
14 44 02 00 80 07 d8 07 04 08 98 08 00 00 38 04 .D............8.
3c 04 41 04 65 04 00 00 05 00 00 00 00 00 00 00 <.A.e...........
backtrace (crc 90e9585c):
[<00000000ec42e3d7>] kmemleak_alloc+0x34/0x40
[<00000000d0ef055a>] __kmalloc_cache_noprof+0x26c/0x2f4
[<00000000c2062161>] drm_mode_duplicate+0x44/0x19c
[<00000000f96c74aa>] drm_display_mode_from_cea_vic+0x88/0x98
[<00000000d8f2c8b4>] 0xffffffdc982a4868
[<000000005d164dbc>] kunit_try_run_case+0x13c/0x3ac
[<000000006fb23398>] kunit_generic_run_threadfn_adapter+0x80/0xec
[<000000006ea56ca0>] kthread+0x2e8/0x374
[<000000000676063f>] ret_from_fork+0x10/0x20
......
Free `mode` by using drm_kunit_helper_display_mode_from_cea_vic()
to fix it.
Cc: stable@vger.kernel.org
Fixes: abb6f74973e2 ("drm/tests: Add HDMI TDMS character rate tests")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
v2:
- Fix it with new introduced helper instead of drm_mode_destroy().
- Update the commit message.
---
drivers/gpu/drm/tests/drm_connector_test.c | 24 +++++++++++-----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/tests/drm_connector_test.c b/drivers/gpu/drm/tests/drm_connector_test.c
index 15e36a8db685..e12b39dc4fe7 100644
--- a/drivers/gpu/drm/tests/drm_connector_test.c
+++ b/drivers/gpu/drm/tests/drm_connector_test.c
@@ -996,7 +996,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb(struct kunit *test)
unsigned long long rate;
struct drm_device *drm = &priv->drm;
- mode = drm_display_mode_from_cea_vic(drm, 16);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 16);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1017,7 +1017,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc(struct kunit *test)
unsigned long long rate;
struct drm_device *drm = &priv->drm;
- mode = drm_display_mode_from_cea_vic(drm, 16);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 16);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1038,7 +1038,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1(struct kunit *t
unsigned long long rate;
struct drm_device *drm = &priv->drm;
- mode = drm_display_mode_from_cea_vic(drm, 1);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 1);
KUNIT_ASSERT_NOT_NULL(test, mode);
rate = drm_hdmi_compute_mode_clock(mode, 10, HDMI_COLORSPACE_RGB);
@@ -1056,7 +1056,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc(struct kunit *test)
unsigned long long rate;
struct drm_device *drm = &priv->drm;
- mode = drm_display_mode_from_cea_vic(drm, 16);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 16);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1077,7 +1077,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1(struct kunit *t
unsigned long long rate;
struct drm_device *drm = &priv->drm;
- mode = drm_display_mode_from_cea_vic(drm, 1);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 1);
KUNIT_ASSERT_NOT_NULL(test, mode);
rate = drm_hdmi_compute_mode_clock(mode, 12, HDMI_COLORSPACE_RGB);
@@ -1095,7 +1095,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_double(struct kunit *test)
unsigned long long rate;
struct drm_device *drm = &priv->drm;
- mode = drm_display_mode_from_cea_vic(drm, 6);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 6);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_TRUE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1118,7 +1118,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv420_valid(struct kunit
unsigned long long rate;
unsigned int vic = *(unsigned int *)test->param_value;
- mode = drm_display_mode_from_cea_vic(drm, vic);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, vic);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1155,7 +1155,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc(struct kuni
drm_hdmi_compute_mode_clock_yuv420_vic_valid_tests[0];
unsigned long long rate;
- mode = drm_display_mode_from_cea_vic(drm, vic);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, vic);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1180,7 +1180,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc(struct kuni
drm_hdmi_compute_mode_clock_yuv420_vic_valid_tests[0];
unsigned long long rate;
- mode = drm_display_mode_from_cea_vic(drm, vic);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, vic);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1203,7 +1203,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc(struct kunit
struct drm_device *drm = &priv->drm;
unsigned long long rate;
- mode = drm_display_mode_from_cea_vic(drm, 16);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 16);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1225,7 +1225,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc(struct kuni
struct drm_device *drm = &priv->drm;
unsigned long long rate;
- mode = drm_display_mode_from_cea_vic(drm, 16);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 16);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1247,7 +1247,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc(struct kuni
struct drm_device *drm = &priv->drm;
unsigned long long rate;
- mode = drm_display_mode_from_cea_vic(drm, 16);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 16);
KUNIT_ASSERT_NOT_NULL(test, mode);
KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 3/4] drm/ttm/tests: Fix memory leak in ttm_tt_simple_create()
2024-10-14 12:52 [PATCH v2 0/4] drm: Fix some memory leaks Jinjie Ruan
2024-10-14 12:52 ` [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic() Jinjie Ruan
2024-10-14 12:52 ` [PATCH v2 2/4] drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic() Jinjie Ruan
@ 2024-10-14 12:52 ` Jinjie Ruan
2024-10-14 13:38 ` Jeff Johnson
2024-10-14 12:52 ` [PATCH v2 4/4] drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic() Jinjie Ruan
3 siblings, 1 reply; 12+ messages in thread
From: Jinjie Ruan @ 2024-10-14 12:52 UTC (permalink / raw)
To: maarten.lankhorst, mripard, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, ruanjinjie, quic_jjohnson, skhan, davidgow,
karolina.stolarek, Arunpravin.PaneerSelvam, thomas.hellstrom,
asomalap, dri-devel, linux-kernel
modprobe ttm_device_test and then rmmod ttm_device_test, the fllowing
memory leaks occurs:
The ttm->pages allocated in ttm_tt_init() is not freed after calling
ttm_tt_simple_create(), which cause the memory leak:
unreferenced object 0xffffff80caf27750 (size 8):
comm "kunit_try_catch", pid 2242, jiffies 4295055735
hex dump (first 8 bytes):
c0 1e 3d c3 fe ff ff ff ..=.....
backtrace (crc 3d11615a):
[<000000007f57312a>] kmemleak_alloc+0x34/0x40
[<000000008c6c4c7e>] __kmalloc_node_noprof+0x304/0x3e4
[<00000000679c1182>] __kvmalloc_node_noprof+0x1c/0x144
[<000000006aed0a3d>] ttm_tt_init+0x138/0x28c [ttm]
[<000000005c331998>] drm_gem_shmem_free+0x60/0x534 [drm_shmem_helper]
[<0000000022b4f375>] kunit_try_run_case+0x13c/0x3ac
[<00000000c525d725>] kunit_generic_run_threadfn_adapter+0x80/0xec
[<000000002db94a1f>] kthread+0x2e8/0x374
[<000000002c457ad7>] ret_from_fork+0x10/0x20
......
Fix it by calling ttm_tt_fini() in the exit function.
Cc: stable@vger.kernel.org
Fixes: e6f7c641fae3 ("drm/ttm/tests: Add tests for ttm_tt")
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
v2:
- Add Reviewed-by.
---
drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c b/drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c
index b91c13f46225..9ff216ec58ef 100644
--- a/drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c
+++ b/drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c
@@ -54,6 +54,7 @@ static struct ttm_tt *ttm_tt_simple_create(struct ttm_buffer_object *bo, u32 pag
static void ttm_tt_simple_destroy(struct ttm_device *bdev, struct ttm_tt *ttm)
{
+ ttm_tt_fini(ttm);
kfree(ttm);
}
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 4/4] drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic()
2024-10-14 12:52 [PATCH v2 0/4] drm: Fix some memory leaks Jinjie Ruan
` (2 preceding siblings ...)
2024-10-14 12:52 ` [PATCH v2 3/4] drm/ttm/tests: Fix memory leak in ttm_tt_simple_create() Jinjie Ruan
@ 2024-10-14 12:52 ` Jinjie Ruan
2024-10-16 9:37 ` Maxime Ripard
3 siblings, 1 reply; 12+ messages in thread
From: Jinjie Ruan @ 2024-10-14 12:52 UTC (permalink / raw)
To: maarten.lankhorst, mripard, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, ruanjinjie, quic_jjohnson, skhan, davidgow,
karolina.stolarek, Arunpravin.PaneerSelvam, thomas.hellstrom,
asomalap, dri-devel, linux-kernel
modprobe drm_hdmi_state_helper_test and then rmmod it, the following
memory leak occurs.
The `mode` allocated in drm_mode_duplicate() called by
drm_display_mode_from_cea_vic() is not freed, which cause the memory leak:
unreferenced object 0xffffff80ccd18100 (size 128):
comm "kunit_try_catch", pid 1851, jiffies 4295059695
hex dump (first 32 bytes):
57 62 00 00 80 02 90 02 f0 02 20 03 00 00 e0 01 Wb........ .....
ea 01 ec 01 0d 02 00 00 0a 00 00 00 00 00 00 00 ................
backtrace (crc c2f1aa95):
[<000000000f10b11b>] kmemleak_alloc+0x34/0x40
[<000000001cd4cf73>] __kmalloc_cache_noprof+0x26c/0x2f4
[<00000000f1f3cffa>] drm_mode_duplicate+0x44/0x19c
[<000000008cbeef13>] drm_display_mode_from_cea_vic+0x88/0x98
[<0000000019daaacf>] 0xffffffedc11ae69c
[<000000000aad0f85>] kunit_try_run_case+0x13c/0x3ac
[<00000000a9210bac>] kunit_generic_run_threadfn_adapter+0x80/0xec
[<000000000a0b2e9e>] kthread+0x2e8/0x374
[<00000000bd668858>] ret_from_fork+0x10/0x20
......
Free `mode` by using drm_kunit_helper_display_mode_from_cea_vic()
to fix it.
Cc: stable@vger.kernel.org
Fixes: 4af70f19e559 ("drm/tests: Add RGB Quantization tests")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
v2:
- Fix it with new introduced helper instead of drm_mode_destroy().
- Update the commit message.
---
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
index 34ee95d41f29..bb9af542cb43 100644
--- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
+++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
@@ -441,7 +441,7 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode_vic_1(struct kunit *test)
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
- mode = drm_display_mode_from_cea_vic(drm, 1);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 1);
KUNIT_ASSERT_NOT_NULL(test, mode);
drm = &priv->drm;
@@ -555,7 +555,7 @@ static void drm_test_check_broadcast_rgb_full_cea_mode_vic_1(struct kunit *test)
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
- mode = drm_display_mode_from_cea_vic(drm, 1);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 1);
KUNIT_ASSERT_NOT_NULL(test, mode);
drm = &priv->drm;
@@ -671,7 +671,7 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode_vic_1(struct kunit *te
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
- mode = drm_display_mode_from_cea_vic(drm, 1);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 1);
KUNIT_ASSERT_NOT_NULL(test, mode);
drm = &priv->drm;
@@ -1263,7 +1263,7 @@ static void drm_test_check_output_bpc_format_vic_1(struct kunit *test)
ctx = drm_kunit_helper_acquire_ctx_alloc(test);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
- mode = drm_display_mode_from_cea_vic(drm, 1);
+ mode = drm_kunit_helper_display_mode_from_cea_vic(test, drm, 1);
KUNIT_ASSERT_NOT_NULL(test, mode);
/*
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 3/4] drm/ttm/tests: Fix memory leak in ttm_tt_simple_create()
2024-10-14 12:52 ` [PATCH v2 3/4] drm/ttm/tests: Fix memory leak in ttm_tt_simple_create() Jinjie Ruan
@ 2024-10-14 13:38 ` Jeff Johnson
0 siblings, 0 replies; 12+ messages in thread
From: Jeff Johnson @ 2024-10-14 13:38 UTC (permalink / raw)
To: Jinjie Ruan, maarten.lankhorst, mripard, tzimmermann, airlied,
simona, christian.koenig, ray.huang, dmitry.baryshkov,
dave.stevenson, mcanal, skhan, davidgow, karolina.stolarek,
Arunpravin.PaneerSelvam, thomas.hellstrom, asomalap, dri-devel,
linux-kernel
On 10/14/2024 5:52 AM, Jinjie Ruan wrote:
> modprobe ttm_device_test and then rmmod ttm_device_test, the fllowing
nit: s/fllowing/following/
> memory leaks occurs:
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic()
2024-10-14 12:52 ` [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic() Jinjie Ruan
@ 2024-10-16 9:35 ` Maxime Ripard
2024-10-17 1:33 ` Jinjie Ruan
0 siblings, 1 reply; 12+ messages in thread
From: Maxime Ripard @ 2024-10-16 9:35 UTC (permalink / raw)
To: Jinjie Ruan
Cc: maarten.lankhorst, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, quic_jjohnson, skhan, davidgow, karolina.stolarek,
Arunpravin.PaneerSelvam, thomas.hellstrom, asomalap, dri-devel,
linux-kernel
[-- Attachment #1: Type: text/plain, Size: 3363 bytes --]
On Mon, Oct 14, 2024 at 08:52:01PM GMT, Jinjie Ruan wrote:
> As Maxime suggested, add a new helper
> drm_kunit_helper_display_mode_from_cea_vic(), it can replace
> the direct call of drm_display_mode_from_cea_vic(), and it will
> help solving the `mode` memory leaks.
>
> Suggested-by: Maxime Ripard <mripard@kernel.org>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
> drivers/gpu/drm/tests/drm_kunit_helpers.c | 40 +++++++++++++++++++++++
> include/drm/drm_kunit_helpers.h | 6 ++++
> 2 files changed, 46 insertions(+)
>
> diff --git a/drivers/gpu/drm/tests/drm_kunit_helpers.c b/drivers/gpu/drm/tests/drm_kunit_helpers.c
> index aa62719dab0e..dc70bafcd394 100644
> --- a/drivers/gpu/drm/tests/drm_kunit_helpers.c
> +++ b/drivers/gpu/drm/tests/drm_kunit_helpers.c
> @@ -311,6 +311,46 @@ drm_kunit_helper_create_crtc(struct kunit *test,
> }
> EXPORT_SYMBOL_GPL(drm_kunit_helper_create_crtc);
>
> +static void kunit_action_drm_mode_destroy(void *ptr)
> +{
> + struct drm_display_mode *mode = ptr;
> +
> + drm_mode_destroy(NULL, mode);
> +}
> +
> +/**
> + * drm_kunit_helper_display_mode_from_cea_vic() - return a mode for CEA VIC
> + for a KUnit test
> + * @test: The test context object
> + * @dev: DRM device
> + * @video_code: CEA VIC of the mode
> + *
> + * Creates a new mode matching the specified CEA VIC for a KUnit test.
> + *
> + * Resources will be cleaned up automatically.
> + *
> + * Returns: A new drm_display_mode on success or NULL on failure
> + */
> +struct drm_display_mode *
> +drm_kunit_helper_display_mode_from_cea_vic(struct kunit *test,
> + struct drm_device *dev,
> + u8 video_code)
> +{
> + struct drm_display_mode *mode;
> + int ret;
> +
> + mode = drm_display_mode_from_cea_vic(dev, video_code);
> +
> + ret = kunit_add_action_or_reset(test,
> + kunit_action_drm_mode_destroy,
> + mode);
> + if (ret)
> + return NULL;
> +
> + return mode;
> +}
> +EXPORT_SYMBOL_GPL(drm_kunit_helper_display_mode_from_cea_vic);
> +
I think you can drop the "helper" name there, it's usually reserved for
blanket implementation of DRM hooks. This one isn't a hook, so just
calling it drm_kunit_display_mode_from_cea_vic makes a bit more sense to
me.
> MODULE_AUTHOR("Maxime Ripard <maxime@cerno.tech>");
> MODULE_DESCRIPTION("KUnit test suite helper functions");
> MODULE_LICENSE("GPL");
> diff --git a/include/drm/drm_kunit_helpers.h b/include/drm/drm_kunit_helpers.h
> index e7cc17ee4934..1e7fd4be550c 100644
> --- a/include/drm/drm_kunit_helpers.h
> +++ b/include/drm/drm_kunit_helpers.h
> @@ -4,6 +4,7 @@
> #define DRM_KUNIT_HELPERS_H_
>
> #include <drm/drm_drv.h>
> +#include <drm/drm_edid.h>
>
> #include <linux/device.h>
>
> @@ -120,4 +121,9 @@ drm_kunit_helper_create_crtc(struct kunit *test,
> const struct drm_crtc_funcs *funcs,
> const struct drm_crtc_helper_funcs *helper_funcs);
>
> +struct drm_display_mode *
> +drm_kunit_helper_display_mode_from_cea_vic(struct kunit *test,
> + struct drm_device *dev,
> + u8 video_code);
It's not clear to me what you need the drm_edid header, you just return
a drm_display_mode pointer so you can just forward declare the structure
Once fixed
Acked-by: Maxime Ripard <mripard@kernel.org>
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/4] drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic()
2024-10-14 12:52 ` [PATCH v2 2/4] drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic() Jinjie Ruan
@ 2024-10-16 9:36 ` mripard
0 siblings, 0 replies; 12+ messages in thread
From: mripard @ 2024-10-16 9:36 UTC (permalink / raw)
To: Jinjie Ruan
Cc: maarten.lankhorst, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, quic_jjohnson, skhan, davidgow, karolina.stolarek,
Arunpravin.PaneerSelvam, thomas.hellstrom, asomalap, dri-devel,
linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1481 bytes --]
On Mon, Oct 14, 2024 at 08:52:02PM GMT, Jinjie Ruan wrote:
> modprobe drm_connector_test and then rmmod drm_connector_test,
> the following memory leak occurs.
>
> The `mode` allocated in drm_mode_duplicate() called by
> drm_display_mode_from_cea_vic() is not freed, which cause the memory leak:
>
> unreferenced object 0xffffff80cb0ee400 (size 128):
> comm "kunit_try_catch", pid 1948, jiffies 4294950339
> hex dump (first 32 bytes):
> 14 44 02 00 80 07 d8 07 04 08 98 08 00 00 38 04 .D............8.
> 3c 04 41 04 65 04 00 00 05 00 00 00 00 00 00 00 <.A.e...........
> backtrace (crc 90e9585c):
> [<00000000ec42e3d7>] kmemleak_alloc+0x34/0x40
> [<00000000d0ef055a>] __kmalloc_cache_noprof+0x26c/0x2f4
> [<00000000c2062161>] drm_mode_duplicate+0x44/0x19c
> [<00000000f96c74aa>] drm_display_mode_from_cea_vic+0x88/0x98
> [<00000000d8f2c8b4>] 0xffffffdc982a4868
> [<000000005d164dbc>] kunit_try_run_case+0x13c/0x3ac
> [<000000006fb23398>] kunit_generic_run_threadfn_adapter+0x80/0xec
> [<000000006ea56ca0>] kthread+0x2e8/0x374
> [<000000000676063f>] ret_from_fork+0x10/0x20
> ......
>
> Free `mode` by using drm_kunit_helper_display_mode_from_cea_vic()
> to fix it.
>
> Cc: stable@vger.kernel.org
> Fixes: abb6f74973e2 ("drm/tests: Add HDMI TDMS character rate tests")
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 4/4] drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic()
2024-10-14 12:52 ` [PATCH v2 4/4] drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic() Jinjie Ruan
@ 2024-10-16 9:37 ` Maxime Ripard
0 siblings, 0 replies; 12+ messages in thread
From: Maxime Ripard @ 2024-10-16 9:37 UTC (permalink / raw)
To: Jinjie Ruan
Cc: maarten.lankhorst, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, quic_jjohnson, skhan, davidgow, karolina.stolarek,
Arunpravin.PaneerSelvam, thomas.hellstrom, asomalap, dri-devel,
linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1465 bytes --]
On Mon, Oct 14, 2024 at 08:52:04PM GMT, Jinjie Ruan wrote:
> modprobe drm_hdmi_state_helper_test and then rmmod it, the following
> memory leak occurs.
>
> The `mode` allocated in drm_mode_duplicate() called by
> drm_display_mode_from_cea_vic() is not freed, which cause the memory leak:
>
> unreferenced object 0xffffff80ccd18100 (size 128):
> comm "kunit_try_catch", pid 1851, jiffies 4295059695
> hex dump (first 32 bytes):
> 57 62 00 00 80 02 90 02 f0 02 20 03 00 00 e0 01 Wb........ .....
> ea 01 ec 01 0d 02 00 00 0a 00 00 00 00 00 00 00 ................
> backtrace (crc c2f1aa95):
> [<000000000f10b11b>] kmemleak_alloc+0x34/0x40
> [<000000001cd4cf73>] __kmalloc_cache_noprof+0x26c/0x2f4
> [<00000000f1f3cffa>] drm_mode_duplicate+0x44/0x19c
> [<000000008cbeef13>] drm_display_mode_from_cea_vic+0x88/0x98
> [<0000000019daaacf>] 0xffffffedc11ae69c
> [<000000000aad0f85>] kunit_try_run_case+0x13c/0x3ac
> [<00000000a9210bac>] kunit_generic_run_threadfn_adapter+0x80/0xec
> [<000000000a0b2e9e>] kthread+0x2e8/0x374
> [<00000000bd668858>] ret_from_fork+0x10/0x20
> ......
>
> Free `mode` by using drm_kunit_helper_display_mode_from_cea_vic()
> to fix it.
>
> Cc: stable@vger.kernel.org
> Fixes: 4af70f19e559 ("drm/tests: Add RGB Quantization tests")
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic()
2024-10-16 9:35 ` Maxime Ripard
@ 2024-10-17 1:33 ` Jinjie Ruan
2024-10-17 12:13 ` Maxime Ripard
0 siblings, 1 reply; 12+ messages in thread
From: Jinjie Ruan @ 2024-10-17 1:33 UTC (permalink / raw)
To: Maxime Ripard
Cc: maarten.lankhorst, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, quic_jjohnson, skhan, davidgow, karolina.stolarek,
Arunpravin.PaneerSelvam, thomas.hellstrom, asomalap, dri-devel,
linux-kernel
On 2024/10/16 17:35, Maxime Ripard wrote:
> On Mon, Oct 14, 2024 at 08:52:01PM GMT, Jinjie Ruan wrote:
>> As Maxime suggested, add a new helper
>> drm_kunit_helper_display_mode_from_cea_vic(), it can replace
>> the direct call of drm_display_mode_from_cea_vic(), and it will
>> help solving the `mode` memory leaks.
>>
>> Suggested-by: Maxime Ripard <mripard@kernel.org>
>> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
>> ---
>> drivers/gpu/drm/tests/drm_kunit_helpers.c | 40 +++++++++++++++++++++++
>> include/drm/drm_kunit_helpers.h | 6 ++++
>> 2 files changed, 46 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/tests/drm_kunit_helpers.c b/drivers/gpu/drm/tests/drm_kunit_helpers.c
>> index aa62719dab0e..dc70bafcd394 100644
>> --- a/drivers/gpu/drm/tests/drm_kunit_helpers.c
>> +++ b/drivers/gpu/drm/tests/drm_kunit_helpers.c
>> @@ -311,6 +311,46 @@ drm_kunit_helper_create_crtc(struct kunit *test,
>> }
>> EXPORT_SYMBOL_GPL(drm_kunit_helper_create_crtc);
>>
>> +static void kunit_action_drm_mode_destroy(void *ptr)
>> +{
>> + struct drm_display_mode *mode = ptr;
>> +
>> + drm_mode_destroy(NULL, mode);
>> +}
>> +
>> +/**
>> + * drm_kunit_helper_display_mode_from_cea_vic() - return a mode for CEA VIC
>> + for a KUnit test
>> + * @test: The test context object
>> + * @dev: DRM device
>> + * @video_code: CEA VIC of the mode
>> + *
>> + * Creates a new mode matching the specified CEA VIC for a KUnit test.
>> + *
>> + * Resources will be cleaned up automatically.
>> + *
>> + * Returns: A new drm_display_mode on success or NULL on failure
>> + */
>> +struct drm_display_mode *
>> +drm_kunit_helper_display_mode_from_cea_vic(struct kunit *test,
>> + struct drm_device *dev,
>> + u8 video_code)
>> +{
>> + struct drm_display_mode *mode;
>> + int ret;
>> +
>> + mode = drm_display_mode_from_cea_vic(dev, video_code);
>> +
>> + ret = kunit_add_action_or_reset(test,
>> + kunit_action_drm_mode_destroy,
>> + mode);
>> + if (ret)
>> + return NULL;
>> +
>> + return mode;
>> +}
>> +EXPORT_SYMBOL_GPL(drm_kunit_helper_display_mode_from_cea_vic);
>> +
>
> I think you can drop the "helper" name there, it's usually reserved for
> blanket implementation of DRM hooks. This one isn't a hook, so just
> calling it drm_kunit_display_mode_from_cea_vic makes a bit more sense to
> me.
>
>> MODULE_AUTHOR("Maxime Ripard <maxime@cerno.tech>");
>> MODULE_DESCRIPTION("KUnit test suite helper functions");
>> MODULE_LICENSE("GPL");
>> diff --git a/include/drm/drm_kunit_helpers.h b/include/drm/drm_kunit_helpers.h
>> index e7cc17ee4934..1e7fd4be550c 100644
>> --- a/include/drm/drm_kunit_helpers.h
>> +++ b/include/drm/drm_kunit_helpers.h
>> @@ -4,6 +4,7 @@
>> #define DRM_KUNIT_HELPERS_H_
>>
>> #include <drm/drm_drv.h>
>> +#include <drm/drm_edid.h>
>>
>> #include <linux/device.h>
>>
>> @@ -120,4 +121,9 @@ drm_kunit_helper_create_crtc(struct kunit *test,
>> const struct drm_crtc_funcs *funcs,
>> const struct drm_crtc_helper_funcs *helper_funcs);
>>
>> +struct drm_display_mode *
>> +drm_kunit_helper_display_mode_from_cea_vic(struct kunit *test,
>> + struct drm_device *dev,
>> + u8 video_code);
>
> It's not clear to me what you need the drm_edid header, you just return
> a drm_display_mode pointer so you can just forward declare the structure
There is a compile error without the header,because there is no
"drm_display_mode_from_cea_vic()" declare.
drivers/gpu/drm/tests/drm_kunit_helpers.c:341:16: error: implicit
declaration of function ‘drm_display_mode_from_cea_vic’; did you mean
‘drm_kunit_display_mode_from_cea_vic’?
[-Werror=implicit-function-declaration]
341 | mode = drm_display_mode_from_cea_vic(dev, video_code);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| drm_kunit_display_mode_from_cea_vic
drivers/gpu/drm/tests/drm_kunit_helpers.c:341:14: warning: assignment to
‘struct drm_display_mode *’ from ‘int’ makes pointer from integer
without a cast [-Wint-conversion]
341 | mode = drm_display_mode_from_cea_vic(dev, video_code);
| ^
>
> Once fixed
> Acked-by: Maxime Ripard <mripard@kernel.org>
>
> Maxime
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic()
2024-10-17 1:33 ` Jinjie Ruan
@ 2024-10-17 12:13 ` Maxime Ripard
2024-10-17 12:16 ` Jinjie Ruan
0 siblings, 1 reply; 12+ messages in thread
From: Maxime Ripard @ 2024-10-17 12:13 UTC (permalink / raw)
To: Jinjie Ruan
Cc: maarten.lankhorst, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, quic_jjohnson, skhan, davidgow, karolina.stolarek,
Arunpravin.PaneerSelvam, thomas.hellstrom, asomalap, dri-devel,
linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1903 bytes --]
On Thu, Oct 17, 2024 at 09:33:07AM GMT, Jinjie Ruan wrote:
> >> diff --git a/include/drm/drm_kunit_helpers.h b/include/drm/drm_kunit_helpers.h
> >> index e7cc17ee4934..1e7fd4be550c 100644
> >> --- a/include/drm/drm_kunit_helpers.h
> >> +++ b/include/drm/drm_kunit_helpers.h
> >> @@ -4,6 +4,7 @@
> >> #define DRM_KUNIT_HELPERS_H_
> >>
> >> #include <drm/drm_drv.h>
> >> +#include <drm/drm_edid.h>
> >>
> >> #include <linux/device.h>
> >>
> >> @@ -120,4 +121,9 @@ drm_kunit_helper_create_crtc(struct kunit *test,
> >> const struct drm_crtc_funcs *funcs,
> >> const struct drm_crtc_helper_funcs *helper_funcs);
> >>
> >> +struct drm_display_mode *
> >> +drm_kunit_helper_display_mode_from_cea_vic(struct kunit *test,
> >> + struct drm_device *dev,
> >> + u8 video_code);
> >
> > It's not clear to me what you need the drm_edid header, you just return
> > a drm_display_mode pointer so you can just forward declare the structure
>
>
> There is a compile error without the header,because there is no
> "drm_display_mode_from_cea_vic()" declare.
>
> drivers/gpu/drm/tests/drm_kunit_helpers.c:341:16: error: implicit
> declaration of function ‘drm_display_mode_from_cea_vic’; did you mean
> ‘drm_kunit_display_mode_from_cea_vic’?
> [-Werror=implicit-function-declaration]
> 341 | mode = drm_display_mode_from_cea_vic(dev, video_code);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | drm_kunit_display_mode_from_cea_vic
> drivers/gpu/drm/tests/drm_kunit_helpers.c:341:14: warning: assignment to
> ‘struct drm_display_mode *’ from ‘int’ makes pointer from integer
> without a cast [-Wint-conversion]
> 341 | mode = drm_display_mode_from_cea_vic(dev, video_code);
> | ^
Right, but the error is in the C file, not the header.
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic()
2024-10-17 12:13 ` Maxime Ripard
@ 2024-10-17 12:16 ` Jinjie Ruan
0 siblings, 0 replies; 12+ messages in thread
From: Jinjie Ruan @ 2024-10-17 12:16 UTC (permalink / raw)
To: Maxime Ripard
Cc: maarten.lankhorst, tzimmermann, airlied, simona,
christian.koenig, ray.huang, dmitry.baryshkov, dave.stevenson,
mcanal, quic_jjohnson, skhan, davidgow, karolina.stolarek,
Arunpravin.PaneerSelvam, thomas.hellstrom, asomalap, dri-devel,
linux-kernel
On 2024/10/17 20:13, Maxime Ripard wrote:
> On Thu, Oct 17, 2024 at 09:33:07AM GMT, Jinjie Ruan wrote:
>>>> diff --git a/include/drm/drm_kunit_helpers.h b/include/drm/drm_kunit_helpers.h
>>>> index e7cc17ee4934..1e7fd4be550c 100644
>>>> --- a/include/drm/drm_kunit_helpers.h
>>>> +++ b/include/drm/drm_kunit_helpers.h
>>>> @@ -4,6 +4,7 @@
>>>> #define DRM_KUNIT_HELPERS_H_
>>>>
>>>> #include <drm/drm_drv.h>
>>>> +#include <drm/drm_edid.h>
>>>>
>>>> #include <linux/device.h>
>>>>
>>>> @@ -120,4 +121,9 @@ drm_kunit_helper_create_crtc(struct kunit *test,
>>>> const struct drm_crtc_funcs *funcs,
>>>> const struct drm_crtc_helper_funcs *helper_funcs);
>>>>
>>>> +struct drm_display_mode *
>>>> +drm_kunit_helper_display_mode_from_cea_vic(struct kunit *test,
>>>> + struct drm_device *dev,
>>>> + u8 video_code);
>>>
>>> It's not clear to me what you need the drm_edid header, you just return
>>> a drm_display_mode pointer so you can just forward declare the structure
>>
>>
>> There is a compile error without the header,because there is no
>> "drm_display_mode_from_cea_vic()" declare.
>>
>> drivers/gpu/drm/tests/drm_kunit_helpers.c:341:16: error: implicit
>> declaration of function ‘drm_display_mode_from_cea_vic’; did you mean
>> ‘drm_kunit_display_mode_from_cea_vic’?
>> [-Werror=implicit-function-declaration]
>> 341 | mode = drm_display_mode_from_cea_vic(dev, video_code);
>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> | drm_kunit_display_mode_from_cea_vic
>> drivers/gpu/drm/tests/drm_kunit_helpers.c:341:14: warning: assignment to
>> ‘struct drm_display_mode *’ from ‘int’ makes pointer from integer
>> without a cast [-Wint-conversion]
>> 341 | mode = drm_display_mode_from_cea_vic(dev, video_code);
>> | ^
> > Right, but the error is in the C file, not the header.
Yes, I have updated it to C file in V3, thank you!
>
> Maxime
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-10-17 12:16 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-14 12:52 [PATCH v2 0/4] drm: Fix some memory leaks Jinjie Ruan
2024-10-14 12:52 ` [PATCH v2 1/4] drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic() Jinjie Ruan
2024-10-16 9:35 ` Maxime Ripard
2024-10-17 1:33 ` Jinjie Ruan
2024-10-17 12:13 ` Maxime Ripard
2024-10-17 12:16 ` Jinjie Ruan
2024-10-14 12:52 ` [PATCH v2 2/4] drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic() Jinjie Ruan
2024-10-16 9:36 ` mripard
2024-10-14 12:52 ` [PATCH v2 3/4] drm/ttm/tests: Fix memory leak in ttm_tt_simple_create() Jinjie Ruan
2024-10-14 13:38 ` Jeff Johnson
2024-10-14 12:52 ` [PATCH v2 4/4] drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic() Jinjie Ruan
2024-10-16 9:37 ` Maxime Ripard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®