From: Dan Carpenter <dan.carpenter@linaro.org>
To: "José Expósito" <jose.exposito89@gmail.com>
Cc: dri-devel@lists.freedesktop.org
Subject: [bug report] drm/vkms: Allow to configure multiple CRTCs
Date: Thu, 7 Aug 2025 18:53:12 +0300 [thread overview]
Message-ID: <aJTL6IFEBaI8gqtH@stanley.mountain> (raw)
Hello José Expósito,
Commit 600df32dac40 ("drm/vkms: Allow to configure multiple CRTCs")
from Feb 18, 2025 (linux-next), leads to the following Smatch static
checker warning:
drivers/gpu/drm/vkms/tests/vkms_config_test.c:220 vkms_config_test_get_planes() error: 'plane_cfg1' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:258 vkms_config_test_get_crtcs() error: 'crtc_cfg2' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:300 vkms_config_test_get_encoders() error: 'encoder_cfg2' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:345 vkms_config_test_get_connectors() error: 'connector_cfg2' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:672 vkms_config_test_plane_attach_crtc() error: 'overlay_cfg' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:674 vkms_config_test_plane_attach_crtc() error: 'primary_cfg' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:676 vkms_config_test_plane_attach_crtc() error: 'cursor_cfg' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:685 vkms_config_test_plane_attach_crtc() error: 'crtc_cfg' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:746 vkms_config_test_plane_get_possible_crtcs() error: 'crtc_cfg1' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:746 vkms_config_test_plane_get_possible_crtcs() error: 'plane_cfg1' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:748 vkms_config_test_plane_get_possible_crtcs() error: 'crtc_cfg2' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:810 vkms_config_test_encoder_get_possible_crtcs() error: 'crtc_cfg1' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:810 vkms_config_test_encoder_get_possible_crtcs() error: 'encoder_cfg1' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:812 vkms_config_test_encoder_get_possible_crtcs() error: 'crtc_cfg2' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:876 vkms_config_test_connector_get_possible_encoders() error: 'connector_cfg1' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:876 vkms_config_test_connector_get_possible_encoders() error: 'encoder_cfg1' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c:878 vkms_config_test_connector_get_possible_encoders() error: 'encoder_cfg2' dereferencing possible ERR_PTR()
drivers/gpu/drm/vkms/tests/vkms_config_test.c
231 static void vkms_config_test_get_crtcs(struct kunit *test)
232 {
233 struct vkms_config *config;
234 struct vkms_config_crtc *crtc_cfg;
235 struct vkms_config_crtc *crtc_cfg1, *crtc_cfg2;
236
237 config = vkms_config_create("test");
238 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, config);
239
240 KUNIT_ASSERT_EQ(test, vkms_config_get_num_crtcs(config), 0);
241 vkms_config_for_each_crtc(config, crtc_cfg)
242 KUNIT_FAIL(test, "Unexpected CRTC");
243
244 crtc_cfg1 = vkms_config_create_crtc(config);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This file has no error checking.
I didn't send an email about it at first because this is just test code so
who cares, but I was recently burned by ignoring errors so now I'm going
through a bunch of old warnings to say that, "Hey, if the author ignores the
error checking that's fine, but I'm in the clear."
245 KUNIT_ASSERT_EQ(test, vkms_config_get_num_crtcs(config), 1);
246 vkms_config_for_each_crtc(config, crtc_cfg) {
247 if (crtc_cfg != crtc_cfg1)
248 KUNIT_FAIL(test, "Unexpected CRTC");
249 }
250
251 crtc_cfg2 = vkms_config_create_crtc(config);
252 KUNIT_ASSERT_EQ(test, vkms_config_get_num_crtcs(config), 2);
253 vkms_config_for_each_crtc(config, crtc_cfg) {
254 if (crtc_cfg != crtc_cfg1 && crtc_cfg != crtc_cfg2)
255 KUNIT_FAIL(test, "Unexpected CRTC");
256 }
257
--> 258 vkms_config_destroy_crtc(config, crtc_cfg2);
259 KUNIT_ASSERT_EQ(test, vkms_config_get_num_crtcs(config), 1);
260 vkms_config_for_each_crtc(config, crtc_cfg) {
261 if (crtc_cfg != crtc_cfg1)
262 KUNIT_FAIL(test, "Unexpected CRTC");
263 }
264
265 vkms_config_destroy(config);
266 }
regards,
dan carpenter
next reply other threads:[~2025-08-07 15:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-07 15:53 Dan Carpenter [this message]
2025-08-08 11:15 ` [bug report] drm/vkms: Allow to configure multiple CRTCs José Expósito
2025-08-08 14:01 ` Dan Carpenter
2025-08-11 10:20 ` José Expósito
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aJTL6IFEBaI8gqtH@stanley.mountain \
--to=dan.carpenter@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jose.exposito89@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.