All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.