On Wednesday, 10 June 2026 12:32:29 Central European Summer Time Jani Nikula 
wrote:
> On Tue, 09 Jun 2026, Nicolas Frattaroli <[email protected]> 
> wrote:
> > diff --git a/drivers/gpu/drm/tests/drm_bridge_test.c 
> > b/drivers/gpu/drm/tests/drm_bridge_test.c
> > index 64b665580a88..92f142ca6695 100644
> > --- a/drivers/gpu/drm/tests/drm_bridge_test.c
> > +++ b/drivers/gpu/drm/tests/drm_bridge_test.c
> > @@ -2,15 +2,23 @@
> >  /*
> >   * Kunit test for drm_bridge functions
> >   */
> > +#include <linux/cleanup.h>
> > +#include <linux/media-bus-format.h>
> > +
> >  #include <drm/drm_atomic_state_helper.h>
> > +#include <drm/drm_atomic_uapi.h>
> >  #include <drm/drm_bridge.h>
> >  #include <drm/drm_bridge_connector.h>
> >  #include <drm/drm_bridge_helper.h>
> > +#include <drm/drm_edid.h>
> >  #include <drm/drm_kunit_helpers.h>
> > +#include <drm/drm_managed.h>
> >  
> >  #include <kunit/device.h>
> >  #include <kunit/test.h>
> >  
> > +#include "drm_kunit_edid.h"
> 
> So here's the problem with adding *any* arrays into headers: every
> compilation unit that includes them duplicates all the arrays. It's only
> really okay for single use.
> 
> And, in this case, most of the included arrays are unused, leading to
> build failures:
> 
>   CC [M]  drivers/gpu/drm/tests/drm_bridge_test.o
> In file included from ../drivers/gpu/drm/tests/drm_bridge_test.c:21:
> ../drivers/gpu/drm/tests/drm_kunit_edid.h:958:28: error: 
> ‘test_edid_hdmi_4k_rgb_yuv420_dc_max_340mhz’ defined but not used 
> [-Werror=unused-const-variable=]
>   958 | static const unsigned char 
> test_edid_hdmi_4k_rgb_yuv420_dc_max_340mhz[] = {
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/gpu/drm/tests/drm_kunit_edid.h:726:28: error: 
> ‘test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz’ defined but not used 
> [-Werror=unused-const-variable=]
>   726 | static const unsigned char 
> test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz[] = {
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/gpu/drm/tests/drm_kunit_edid.h:612:28: error: 
> ‘test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz’ defined but not used 
> [-Werror=unused-const-variable=]
>   612 | static const unsigned char 
> test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz[] = {
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/gpu/drm/tests/drm_kunit_edid.h:498:28: error: 
> ‘test_edid_hdmi_1080p_rgb_max_340mhz’ defined but not used 
> [-Werror=unused-const-variable=]
>   498 | static const unsigned char test_edid_hdmi_1080p_rgb_max_340mhz[] = {
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/gpu/drm/tests/drm_kunit_edid.h:390:28: error: 
> ‘test_edid_hdmi_1080p_rgb_max_200mhz_hdr’ defined but not used 
> [-Werror=unused-const-variable=]
>   390 | static const unsigned char test_edid_hdmi_1080p_rgb_max_200mhz_hdr[] 
> = {
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/gpu/drm/tests/drm_kunit_edid.h:271:28: error: 
> ‘test_edid_hdmi_1080p_rgb_max_200mhz’ defined but not used 
> [-Werror=unused-const-variable=]
>   271 | static const unsigned char test_edid_hdmi_1080p_rgb_max_200mhz[] = {
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/gpu/drm/tests/drm_kunit_edid.h:163:28: error: 
> ‘test_edid_hdmi_1080p_rgb_max_100mhz’ defined but not used 
> [-Werror=unused-const-variable=]
>   163 | static const unsigned char test_edid_hdmi_1080p_rgb_max_100mhz[] = {
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/gpu/drm/tests/drm_kunit_edid.h:57:28: error: ‘test_edid_dvi_1080p’ 
> defined but not used [-Werror=unused-const-variable=]
>    57 | static const unsigned char test_edid_dvi_1080p[] = {
>       |                            ^~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> 
> This breaks the build for me, I don't know how it didn't for any of you.

It broke the build for me in the past[1], but then I couldn't repro
it anymore when challenged on my fix[2].

> 
> Reverting these two fixes it:
> 
> ce1d0139adac ("drm/tests: bridge: Add test for HDMI output bus formats 
> helper")
> 082fbc179c01 ("drm/tests: bridge: Add KUnit tests for bridge chain format 
> selection")
> 
> I think the proper fix would be to move the arrays into a .c file, and
> only have declarations in the headers. But that needs to happen real
> soon or the commits need to be reverted.

If you don't want __maybe_unused, then sure, I'll move them into a new
.c file. Though I think the two are roughly equivalent in that I don't
think anyone is really trying to minimise the size of their KUnit
binaries.

I'll send a patch to move them to a .c

[1]: 
https://lore.kernel.org/dri-devel/[email protected]/
[2]: 
https://lore.kernel.org/dri-devel/20260210-didactic-okapi-of-modernism-ff00d9@houat/

Kind regards,
Nicolas Frattaroli

> 
> BR,
> Jani.
> 
> 
> 




Reply via email to