From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: igt-dev@lists.freedesktop.org,
George Zhang <george.zhang@amd.com>,
Tom Chung <chiahsuan.chung@amd.com>
Subject: Re: [PATCH i-g-t v2 05/23] tests/amdgpu/amd_abm: Don't use uninitialized 'pipe'
Date: Wed, 25 Feb 2026 11:18:27 +0200 [thread overview]
Message-ID: <aZ6-Yz943wkDtMPl@intel.com> (raw)
In-Reply-To: <f8bade0a295263013a0cf7f7dc6b399be3bd0040@intel.com>
On Tue, Feb 24, 2026 at 04:08:16PM +0200, Jani Nikula wrote:
> On Sat, 21 Feb 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > The for_each_valid_output_on_pipe() loops in amd_abm use an
> > uninitialized 'pipe' variable. Not entirely sure what the intention
> > was with the change to for_each_valid_output_on_pipe(), but eg.
> > set_abm_level() gets called from those loops and it operates on
> > data->pipe_id instead of whatever stack garbage pipe the loop
> > happens to use. So let's assume the intention was to use the same
> > fixed pipe for everything and just pass data->pipe_id to
> > for_each_valid_output_on_pipe().
>
> Would be great to get input from the authors, but in any case
>
> Acked-by: Jani Nikula <jani.nikula@intel.com>
Ta. I pushed the series as is, mainly to avoid conflicts creeping
in, and I want to finish the treewide refactoring (hopefully) this
week. We can revisit this test later if the change turns out to be
wrong.
>
> >
> > #include "scripts/iterators.cocci"
> >
> > @@
> > iterator name for_each_valid_output_on_pipe;
> > expression DISPLAY, OUTPUT;
> > identifier PIPE;
> > type T;
> > @@
> > - T PIPE;
> > <+... when != PIPE = ...
> > for_each_valid_output_on_pipe(DISPLAY,
> > - PIPE,
> > + data->pipe_id,
> > OUTPUT)
> > {...}
> > ...+>
> >
> > Cc: George Zhang <george.zhang@amd.com>
> > Cc: Tom Chung <chiahsuan.chung@amd.com>
> > Fixes: 1235576931b5 ("tests/amdgpu/amd_abm: Fixed tests to only run on one output per pipe")
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > tests/amdgpu/amd_abm.c | 18 ++++++------------
> > 1 file changed, 6 insertions(+), 12 deletions(-)
> >
> > diff --git a/tests/amdgpu/amd_abm.c b/tests/amdgpu/amd_abm.c
> > index 110dd89e3ac2..159f6c7c69e9 100644
> > --- a/tests/amdgpu/amd_abm.c
> > +++ b/tests/amdgpu/amd_abm.c
> > @@ -170,10 +170,9 @@ static void test_fini(data_t *data)
> > {
> > igt_display_t *display = &data->display;
> > igt_output_t *output;
> > - enum pipe pipe;
> >
> > /* Disable ABM before exit test */
> > - for_each_valid_output_on_pipe(&data->display, pipe, output) {
> > + for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
> > if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
> > continue;
> > set_abm_level(data, output, 0);
> > @@ -328,9 +327,8 @@ static void backlight_dpms_cycle(data_t *data)
> > int max_brightness;
> > int pwm_1, pwm_2;
> > igt_output_t *output;
> > - enum pipe pipe;
> >
> > - for_each_valid_output_on_pipe(&data->display, pipe, output) {
> > + for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
> > if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
> > continue;
> >
> > @@ -359,10 +357,9 @@ static void backlight_monotonic_basic(data_t *data)
> > int prev_pwm, pwm;
> > int brightness_step;
> > int brightness;
> > - enum pipe pipe;
> > igt_output_t *output;
> >
> > - for_each_valid_output_on_pipe(&data->display, pipe, output) {
> > + for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
> > if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
> > continue;
> > ret = backlight_read_max_brightness(&max_brightness);
> > @@ -393,10 +390,9 @@ static void backlight_monotonic_abm(data_t *data)
> > int prev_pwm, pwm;
> > int brightness_step;
> > int brightness;
> > - enum pipe pipe;
> > igt_output_t *output;
> >
> > - for_each_valid_output_on_pipe(&data->display, pipe, output) {
> > + for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
> > if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
> > continue;
> > ret = backlight_read_max_brightness(&max_brightness);
> > @@ -426,10 +422,9 @@ static void abm_enabled(data_t *data)
> > int ret, i;
> > int max_brightness;
> > int pwm, prev_pwm, pwm_without_abm;
> > - enum pipe pipe;
> > igt_output_t *output;
> >
> > - for_each_valid_output_on_pipe(&data->display, pipe, output) {
> > + for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
> > if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
> > continue;
> >
> > @@ -460,10 +455,9 @@ static void abm_gradual(data_t *data)
> > int convergence_delay = 10;
> > int prev_pwm, pwm, curr;
> > int max_brightness;
> > - enum pipe pipe;
> > igt_output_t *output;
> >
> > - for_each_valid_output_on_pipe(&data->display, pipe, output) {
> > + for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
> > if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
> > continue;
>
> --
> Jani Nikula, Intel
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2026-02-25 9:18 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-21 3:19 [PATCH i-g-t v2 00/23] tests/kms: More igt_crtc_t conversions Ville Syrjala
2026-02-21 3:19 ` [PATCH i-g-t v2 01/23] tests/intel/kms_psr: Don't pass uninitialized 'pipe' to intel_fbc_supported_on_chipset() Ville Syrjala
2026-02-23 11:22 ` Jani Nikula
2026-02-24 7:28 ` Ville Syrjälä
2026-02-23 11:23 ` Jani Nikula
2026-02-23 12:01 ` Jani Nikula
2026-02-24 8:49 ` [PATCH i-g-t v3 " Ville Syrjala
2026-02-24 8:53 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 02/23] tests/intel/kms_psr2_sf: Don't pass zero initialized 'data.pipe' " Ville Syrjala
2026-02-24 8:51 ` [PATCH i-g-t v3 " Ville Syrjala
2026-02-24 8:56 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 03/23] tests/intel/kms_flip_scaled_crc: Remove unused 'enum pipe pipe' Ville Syrjala
2026-02-23 11:34 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 04/23] tests/kms_concurrent: Actually run the test over all connected crtcs Ville Syrjala
2026-02-23 3:09 ` Karthik B S
2026-02-21 3:19 ` [PATCH i-g-t v2 05/23] tests/amdgpu/amd_abm: Don't use uninitialized 'pipe' Ville Syrjala
2026-02-24 14:08 ` Jani Nikula
2026-02-25 9:18 ` Ville Syrjälä [this message]
2026-02-21 3:19 ` [PATCH i-g-t v2 06/23] tests/kms: Use 'enum pipe' over int' Ville Syrjala
2026-02-23 11:44 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 07/23] lib/kms: Add igt_crtc_for_crtc_id() Ville Syrjala
2026-02-23 11:46 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 08/23] tests/kms_lease: Use igt_crtc_t instead of enum pipe Ville Syrjala
2026-02-23 11:48 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 09/23] tests/kms_lease: Pass lease_t to prepare_crtc() Ville Syrjala
2026-02-23 11:49 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 10/23] tests/intel/kms_frontbuffer_tracking: Use igt_crtc_t instead of enum pipe Ville Syrjala
2026-02-23 11:52 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 11/23] tests/kms_plane_scaling: " Ville Syrjala
2026-02-23 14:06 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 12/23] tests/drm_read: " Ville Syrjala
2026-02-24 8:58 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 13/23] tests/intel/kms_psr2_sf: Convert pipes[] to crtcs[] Ville Syrjala
2026-02-24 9:09 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 14/23] tests/kms_vblank: Use igt_crtc_t instead of enum pipe Ville Syrjala
2026-02-24 13:43 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 15/23] tests/kms_plane_multiple: " Ville Syrjala
2026-02-24 13:48 ` Jani Nikula
2026-02-25 7:44 ` Ville Syrjälä
2026-02-21 3:19 ` [PATCH i-g-t v2 16/23] tests/kms_tiled_display: " Ville Syrjala
2026-02-24 13:48 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 17/23] tests/intel/kms_psr: " Ville Syrjala
2026-02-24 13:49 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 18/23] tests/kms_prime: " Ville Syrjala
2026-02-24 13:50 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 19/23] tests/chamelium: " Ville Syrjala
2026-02-24 13:51 ` Jani Nikula
2026-02-21 3:19 ` [PATCH i-g-t v2 20/23] tests/kms: Use igt_crtc_t instead of enum pipe, part 1 Ville Syrjala
2026-02-24 13:56 ` Jani Nikula
2026-02-21 3:20 ` [PATCH i-g-t v2 21/23] tests/kms: Use igt_crtc_t instead of enum pipe, part 2 Ville Syrjala
2026-02-24 13:58 ` Jani Nikula
2026-02-21 3:20 ` [PATCH i-g-t v2 22/23] tests/kms: Use igt_crtc_t instead of enum pipe, part 3 Ville Syrjala
2026-02-24 8:51 ` [PATCH i-g-t v3 " Ville Syrjala
2026-02-24 14:04 ` Jani Nikula
2026-02-21 3:20 ` [PATCH i-g-t v2 23/23] tests/kms: Use igt_crtc_t instead of enum pipe, part 4 Ville Syrjala
2026-02-24 14:06 ` Jani Nikula
2026-02-21 3:59 ` ✓ Xe.CI.BAT: success for tests/kms: More igt_crtc_t conversions (rev2) Patchwork
2026-02-21 4:13 ` ✓ i915.CI.BAT: " Patchwork
2026-02-21 16:12 ` ✗ i915.CI.Full: failure " Patchwork
2026-02-23 13:25 ` ✗ Xe.CI.FULL: " Patchwork
2026-02-24 12:43 ` ✓ Xe.CI.BAT: success for tests/kms: More igt_crtc_t conversions (rev5) Patchwork
2026-02-24 12:58 ` ✓ i915.CI.BAT: " Patchwork
2026-02-24 18:52 ` ✗ i915.CI.Full: failure " Patchwork
2026-02-24 22:57 ` ✓ Xe.CI.FULL: success " Patchwork
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=aZ6-Yz943wkDtMPl@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=chiahsuan.chung@amd.com \
--cc=george.zhang@amd.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=jani.nikula@intel.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.