Skip to contentSkip to conversation

drm: Replace zero-length array with flexible-array member

PATCH In review Gustavo A. R. Silva 5 participants 8 messages Feb 25, 2020 – Mar 9, 2020

Subsystems (13)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drm: Replace zero-length array with flexible-array member

The current codebase makes use of the zero-length array language extension to the C90 standard, but the preferred mechanism to declare variable-length types such as these ones is a flexible array member[1][2], introduced in C99:

struct foo {
        int stuff;
        struct boo array[];
};

By making use of the mechanism above, we will get a compiler warning in case the flexible array does not occur last in the structure, which will help us prevent some kind of undefined behavior bugs from being inadvertently introduced[3] to the codebase from now on.

Also, notice that, dynamic memory allocations won't be affected by this change:

"Flexible array members have incomplete type, and so the sizeof operator may not be applied. As a quirk of the original implementation of zero-length arrays, sizeof evaluates to zero."[1]

This issue was found with the help of Coccinelle.

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
[2] https://github.com/KSPP/linux/issues/21
[3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

---
 drivers/gpu/drm/etnaviv/etnaviv_gem.h         | 2 +-
 drivers/gpu/drm/gma500/intel_bios.h           | 2 +-
 drivers/gpu/drm/i915/display/intel_vbt_defs.h | 4 ++--
 drivers/gpu/drm/i915/gt/intel_lrc.c           | 2 +-
 drivers/gpu/drm/i915/i915_gpu_error.h         | 2 +-
 drivers/gpu/drm/msm/msm_gem.h                 | 2 +-
 drivers/gpu/drm/qxl/qxl_cmd.c                 | 2 +-
 drivers/gpu/drm/vboxvideo/vboxvideo.h         | 2 +-
 drivers/gpu/drm/vc4/vc4_drv.h                 | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c    | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c       | 2 +-
 include/drm/bridge/mhl.h                      | 4 ++--
 include/drm/drm_displayid.h                   | 2 +-
 include/uapi/drm/i915_drm.h                   | 4 ++--
 14 files changed, 17 insertions(+), 17 deletions(-)
drivers/gpu/drm/etnaviv/etnaviv_gem.h +1 -1
index 6b68fe16041b..98e60df882b6 100644
@@ -105,7 +105,7 @@ struct etnaviv_gem_submit {
 	unsigned int nr_pmrs;
 	struct etnaviv_perfmon_request *pmrs;
 	unsigned int nr_bos;
-	struct etnaviv_gem_submit_bo bos[0];
+	struct etnaviv_gem_submit_bo bos[];
 	/* No new members here, the previous one is variable-length! */
 };
 
drivers/gpu/drm/gma500/intel_bios.h +1 -1
index a1f9ce9465a5..0e6facf21e33 100644
@@ -227,7 +227,7 @@ struct bdb_general_definitions {
 	 * number = (block_size - sizeof(bdb_general_definitions))/
 	 *	     sizeof(child_device_config);
 	 */
-	struct child_device_config devices[0];
+	struct child_device_config devices[];
 };
 
 struct bdb_lvds_options {
drivers/gpu/drm/i915/display/intel_vbt_defs.h +2 -2
index 05c7cbe32eb4..aef7fe932d1a 100644
@@ -462,7 +462,7 @@ struct bdb_general_definitions {
 	 * number = (block_size - sizeof(bdb_general_definitions))/
 	 *	     defs->child_dev_size;
 	 */
-	u8 devices[0];
+	u8 devices[];
 } __packed;
 
 /*
@@ -839,7 +839,7 @@ struct bdb_mipi_config {
 
 struct bdb_mipi_sequence {
 	u8 version;
-	u8 data[0]; /* up to 6 variable length blocks */
+	u8 data[]; /* up to 6 variable length blocks */
 } __packed;
 
 /*
drivers/gpu/drm/i915/gt/intel_lrc.c +1 -1
index 47561dc29304..5cec79152f17 100644
@@ -216,7 +216,7 @@ struct virtual_engine {
 
 	/* And finally, which physical engines this virtual engine maps onto. */
 	unsigned int num_siblings;
-	struct intel_engine_cs *siblings[0];
+	struct intel_engine_cs *siblings[];
 };
 
 static struct virtual_engine *to_virtual_engine(struct intel_engine_cs *engine)
drivers/gpu/drm/i915/i915_gpu_error.h +1 -1
index 0d1f6c8ff355..5a6561f7a210 100644
@@ -42,7 +42,7 @@ struct i915_vma_coredump {
 	int num_pages;
 	int page_count;
 	int unused;
-	u32 *pages[0];
+	u32 *pages[];
 };
 
 struct i915_request_coredump {
drivers/gpu/drm/msm/msm_gem.h +1 -1
index 9e0953c2b7ce..37aa556c5f92 100644
@@ -157,7 +157,7 @@ struct msm_gem_submit {
 			uint32_t handle;
 		};
 		uint64_t iova;
-	} bos[0];
+	} bos[];
 };
 
 #endif /* __MSM_GEM_H__ */
drivers/gpu/drm/qxl/qxl_cmd.c +1 -1
index ef09dc6bc635..d1086b2a6892 100644
@@ -36,7 +36,7 @@ static int qxl_reap_surface_id(struct qxl_device *qdev, int max_to_reap);
 
 struct ring {
 	struct qxl_ring_header      header;
-	uint8_t                     elements[0];
+	uint8_t                     elements[];
 };
 
 struct qxl_ring {
drivers/gpu/drm/vboxvideo/vboxvideo.h +1 -1
index 0592004f71aa..a5de40fe1a76 100644
@@ -138,7 +138,7 @@ struct vbva_buffer {
 
 	u32 data_len;
 	/* variable size for the rest of the vbva_buffer area in VRAM. */
-	u8 data[0];
+	u8 data[];
 } __packed;
 
 #define VBVA_MAX_RECORD_SIZE (128 * 1024 * 1024)
drivers/gpu/drm/vc4/vc4_drv.h +1 -1
index 6627b20c99e9..282293e6f751 100644
@@ -65,7 +65,7 @@ struct vc4_perfmon {
 	 * Note that counter values can't be reset, but you can fake a reset by
 	 * destroying the perfmon and creating a new one.
 	 */
-	u64 counters[0];
+	u64 counters[];
 };
 
 struct vc4_dev {
drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c +1 -1
index f07aa857587c..60cfbfadd3f2 100644
@@ -69,7 +69,7 @@ struct vmw_bo_dirty {
 	unsigned int ref_count;
 	unsigned long bitmap_size;
 	size_t size;
-	unsigned long bitmap[0];
+	unsigned long bitmap[];
 };
 
 /**
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c +1 -1
index 3ce630aa4fde..ec893cd17b50 100644
@@ -79,7 +79,7 @@ struct vmw_surface_dirty {
 	struct svga3dsurface_cache cache;
 	size_t size;
 	u32 num_subres;
-	SVGA3dBox boxes[0];
+	SVGA3dBox boxes[];
 };
 
 static void vmw_user_surface_free(struct vmw_resource *res);
include/drm/bridge/mhl.h +2 -2
index 1cc77bf38324..d96626a0e3fa 100644
@@ -327,13 +327,13 @@ struct mhl_burst_bits_per_pixel_fmt {
 	struct {
 		u8 stream_id;
 		u8 pixel_format;
-	} __packed desc[0];
+	} __packed desc[];
 } __packed;
 
 struct mhl_burst_emsc_support {
 	struct mhl3_burst_header hdr;
 	u8 num_entries;
-	__be16 burst_id[0];
+	__be16 burst_id[];
 } __packed;
 
 struct mhl_burst_audio_descr {
include/drm/drm_displayid.h +1 -1
index 9d3b745c3107..94b4390bf990 100644
@@ -89,7 +89,7 @@ struct displayid_detailed_timings_1 {
 
 struct displayid_detailed_timing_block {
 	struct displayid_block base;
-	struct displayid_detailed_timings_1 timings[0];
+	struct displayid_detailed_timings_1 timings[];
 };
 
 #define for_each_displayid_db(displayid, block, idx, length) \
include/uapi/drm/i915_drm.h +2 -2
index 829c0a48577f..33de5dfadaf5 100644
@@ -1708,7 +1708,7 @@ struct i915_context_engines_load_balance {
 
 	__u64 mbz64; /* reserved for future use; must be zero */
 
-	struct i915_engine_class_instance engines[0];
+	struct i915_engine_class_instance engines[];
 } __attribute__((packed));
 
 #define I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(name__, N__) struct { \
@@ -1746,7 +1746,7 @@ struct i915_context_engines_bond {
 	__u64 flags; /* all undefined flags must be zero */
 	__u64 mbz64[4]; /* reserved for future use; must be zero */
 
-	struct i915_engine_class_instance engines[0];
+	struct i915_engine_class_instance engines[];
 } __attribute__((packed));
 
 #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__, N__) struct { \
Signature · 1 line
2.25.0
maintainer
#1 lore raw
Quoted 28 lines · Gustavo A. R. Silva

The current codebase makes use of the zero-length array language extension to the C90 standard, but the preferred mechanism to declare variable-length types such as these ones is a flexible array member[1][2], introduced in C99:

struct foo {
        int stuff;
        struct boo array[];
};

By making use of the mechanism above, we will get a compiler warning in case the flexible array does not occur last in the structure, which will help us prevent some kind of undefined behavior bugs from being inadvertently introduced[3] to the codebase from now on.

Also, notice that, dynamic memory allocations won't be affected by this change:

"Flexible array members have incomplete type, and so the sizeof operator may not be applied. As a quirk of the original implementation of zero-length arrays, sizeof evaluates to zero."[1]

This issue was found with the help of Coccinelle.

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
[2] https://github.com/KSPP/linux/issues/21
[3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

Quoted 7 lines
---
 drivers/gpu/drm/etnaviv/etnaviv_gem.h         | 2 +-
 drivers/gpu/drm/gma500/intel_bios.h           | 2 +-
 drivers/gpu/drm/i915/display/intel_vbt_defs.h | 4 ++--
 drivers/gpu/drm/i915/gt/intel_lrc.c           | 2 +-
 drivers/gpu/drm/i915/i915_gpu_error.h         | 2 +-

Please split out the i915 changes to a separate patch.

Quoted 9 lines
 drivers/gpu/drm/msm/msm_gem.h                 | 2 +-
 drivers/gpu/drm/qxl/qxl_cmd.c                 | 2 +-
 drivers/gpu/drm/vboxvideo/vboxvideo.h         | 2 +-
 drivers/gpu/drm/vc4/vc4_drv.h                 | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c    | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c       | 2 +-
 include/drm/bridge/mhl.h                      | 4 ++--
 include/drm/drm_displayid.h                   | 2 +-
 include/uapi/drm/i915_drm.h                   | 4 ++--

Not sure it's worth touching uapi headers. They're full of both [0] and []. Again, please at least split it to a separate patch to be decided separately.

BR,
Jani.

Signature · 1 line
Jani Nikula, Intel Open Source Graphics Center
#2 lore raw
Quoted 37 lines · Jani Nikula
Quoted 28 lines · Gustavo A. R. Silva

The current codebase makes use of the zero-length array language extension to the C90 standard, but the preferred mechanism to declare variable-length types such as these ones is a flexible array member[1][2], introduced in C99:

struct foo {
        int stuff;
        struct boo array[];
};

By making use of the mechanism above, we will get a compiler warning in case the flexible array does not occur last in the structure, which will help us prevent some kind of undefined behavior bugs from being inadvertently introduced[3] to the codebase from now on.

Also, notice that, dynamic memory allocations won't be affected by this change:

"Flexible array members have incomplete type, and so the sizeof operator may not be applied. As a quirk of the original implementation of zero-length arrays, sizeof evaluates to zero."[1]

This issue was found with the help of Coccinelle.

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
[2] https://github.com/KSPP/linux/issues/21
[3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

Quoted 7 lines
---
 drivers/gpu/drm/etnaviv/etnaviv_gem.h         | 2 +-
 drivers/gpu/drm/gma500/intel_bios.h           | 2 +-
 drivers/gpu/drm/i915/display/intel_vbt_defs.h | 4 ++--
 drivers/gpu/drm/i915/gt/intel_lrc.c           | 2 +-
 drivers/gpu/drm/i915/i915_gpu_error.h         | 2 +-
Quoted 2 lines

Please split out the i915 changes to a separate patch.

Sure thing. I can do that.

Quoted 10 lines
Quoted 9 lines
 drivers/gpu/drm/msm/msm_gem.h                 | 2 +-
 drivers/gpu/drm/qxl/qxl_cmd.c                 | 2 +-
 drivers/gpu/drm/vboxvideo/vboxvideo.h         | 2 +-
 drivers/gpu/drm/vc4/vc4_drv.h                 | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c    | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c       | 2 +-
 include/drm/bridge/mhl.h                      | 4 ++--
 include/drm/drm_displayid.h                   | 2 +-
 include/uapi/drm/i915_drm.h                   | 4 ++--
Quoted 4 lines

Not sure it's worth touching uapi headers. They're full of both [0] and []. Again, please at least split it to a separate patch to be decided separately.

Yeah, it's worth it; the purpose of these patches is to replace [0] with [] across the whole tree.

Thanks
--
Gustavo

#3 lore raw

Hi Gustavo

Am 03.03.20 um 19:20 schrieb Gustavo A. R. Silva:

Quoted 40 lines · Jani Nikula
Quoted 37 lines · Gustavo A. R. Silva
Quoted 35 lines

The current codebase makes use of the zero-length array language extension to the C90 standard, but the preferred mechanism to declare variable-length types such as these ones is a flexible array member[1][2], introduced in C99:

struct foo {
        int stuff;
        struct boo array[];
};

By making use of the mechanism above, we will get a compiler warning in case the flexible array does not occur last in the structure, which will help us prevent some kind of undefined behavior bugs from being inadvertently introduced[3] to the codebase from now on.

Also, notice that, dynamic memory allocations won't be affected by this change:

"Flexible array members have incomplete type, and so the sizeof operator may not be applied. As a quirk of the original implementation of zero-length arrays, sizeof evaluates to zero."[1]

This issue was found with the help of Coccinelle.

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
[2] https://github.com/KSPP/linux/issues/21
[3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

---
 drivers/gpu/drm/etnaviv/etnaviv_gem.h         | 2 +-
 drivers/gpu/drm/gma500/intel_bios.h           | 2 +-
 drivers/gpu/drm/i915/display/intel_vbt_defs.h | 4 ++--
 drivers/gpu/drm/i915/gt/intel_lrc.c           | 2 +-
 drivers/gpu/drm/i915/i915_gpu_error.h         | 2 +-
Quoted 4 lines
Quoted 2 lines

Please split out the i915 changes to a separate patch.

Sure thing. I can do that.

I think each driver deserves it's own patch. Makes backporting easier.

Best regards
Thomas

Quoted 23 lines
Quoted 11 lines
Quoted 10 lines
 drivers/gpu/drm/msm/msm_gem.h                 | 2 +-
 drivers/gpu/drm/qxl/qxl_cmd.c                 | 2 +-
 drivers/gpu/drm/vboxvideo/vboxvideo.h         | 2 +-
 drivers/gpu/drm/vc4/vc4_drv.h                 | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c    | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c       | 2 +-
 include/drm/bridge/mhl.h                      | 4 ++--
 include/drm/drm_displayid.h                   | 2 +-
 include/uapi/drm/i915_drm.h                   | 4 ++--
Quoted 4 lines

Not sure it's worth touching uapi headers. They're full of both [0] and []. Again, please at least split it to a separate patch to be decided separately.

Yeah, it's worth it; the purpose of these patches is to replace [0] with [] across the whole tree.

Thanks
--
Gustavo

Signature · 6 lines
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer

_______________________________________________
Freedreno mailing list [email protected]
https://lists.freedesktop.org/mailman/listinfo/freedreno

#4 lore raw
In reply to Gustavo A. R. Silva

Quoting Gustavo A. R. Silva (2020-02-25 14:03:47)

Quoted 4 lines

The current codebase makes use of the zero-length array language extension to the C90 standard, but the preferred mechanism to declare variable-length types such as these ones is a flexible array member[1][2], introduced in C99:

I remember when gcc didn't support []. For the record, it appears support for flexible arrays landed in gcc-3.0. So passes the minimum compiler spec. That would be useful to mention for old farts with forgetful memories.
-Chris

#5 lore raw

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm: Replace zero-length array with flexible-array member

In reply to Gustavo A. R. Silva
== Series Details ==

== Series Details ==

Series: drm: Replace zero-length array with flexible-array member
URL : https://patchwork.freedesktop.org/series/73916/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
bdffb4ce0539 drm: Replace zero-length array with flexible-array member
-:171: CHECK:CAMELCASE: Avoid CamelCase: <SVGA3dBox>
#171: FILE: drivers/gpu/drm/vmwgfx/vmwgfx_surface.c:82:
+	SVGA3dBox boxes[];

total: 0 errors, 0 warnings, 1 checks, 127 lines checked

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#6 lore raw

[Intel-gfx] ✓ Fi.CI.BAT: success for drm: Replace zero-length array with flexible-array member

In reply to Gustavo A. R. Silva
== Series Details ==

== Series Details ==

Series: drm: Replace zero-length array with flexible-array member
URL : https://patchwork.freedesktop.org/series/73916/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8008 -> Patchwork_16708
====================================================

Summary
-------

**SUCCESS**

No regressions found.

External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/index.html

Possible new issues
-------------------

Here are the unknown changes that may have been introduced in Patchwork_16708:

### IGT changes ###

#### Suppressed ####

The following results come from untrusted machines, tests, or statuses. They do not affect the overall result.

* igt@kms_chamelium@hdmi-edid-read:
- {fi-ehl-1}: [SKIP][1] ([fdo#111827]) -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/fi-ehl-1/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/fi-ehl-1/igt@[email protected]

Known issues
------------

Here are the changes found in Patchwork_16708 that come from known issues:

### IGT changes ###

#### Issues hit ####

* igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y: [PASS][3] -> [FAIL][4] ([CI#94])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/fi-tgl-y/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/fi-tgl-y/igt@[email protected]

* igt@i915_selftest@live_gem_contexts:
- fi-cfl-guc: [PASS][5] -> [DMESG-FAIL][6] ([i915#623])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/fi-cfl-guc/igt@i915_selftest@live_gem_contexts.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/fi-cfl-guc/igt@i915_selftest@live_gem_contexts.html

* igt@kms_addfb_basic@framebuffer-vs-set-tiling:
- fi-tgl-y: [PASS][7] -> [DMESG-WARN][8] ([CI#94] / [i915#402])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/fi-tgl-y/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/fi-tgl-y/igt@[email protected]

#### Possible fixes ####

* igt@i915_selftest@live_execlists:
- fi-icl-y: [DMESG-FAIL][9] ([fdo#108569]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/fi-icl-y/igt@i915_selftest@live_execlists.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/fi-icl-y/igt@i915_selftest@live_execlists.html

* igt@kms_addfb_basic@bad-pitch-0:
- fi-tgl-y: [DMESG-WARN][11] ([CI#94] / [i915#402]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/fi-tgl-y/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/fi-tgl-y/igt@[email protected]

* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: [FAIL][13] ([fdo#111407]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/fi-kbl-7500u/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/fi-kbl-7500u/igt@[email protected]

{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).

[CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[i915#623]: https://gitlab.freedesktop.org/drm/intel/issues/623

Participating hosts (52 -> 40)
------------------------------

Additional (1): fi-byt-n2820
Missing (13): fi-ilk-m540 fi-bdw-5557u fi-hsw-4200u fi-hsw-peppy fi-skl-6770hq fi-byt-squawks fi-bsw-cyan fi-ilk-650 fi-ctg-p8600 fi-ivb-3770 fi-bsw-kefka fi-byt-clapper fi-bdw-samus

Build changes
-------------

* CI: CI-20190529 -> None
* Linux: CI_DRM_8008 -> Patchwork_16708

CI-20190529: 20190529
CI_DRM_8008: 13b6e2575f2c05722679bc1c9d0b97c13bde49a1 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5469: 4f875016eb1ebc211b8aadb280ae16c7e6cdc8ba @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_16708: bdffb4ce0539293c70c3d140d5981a8e80979c4f @ git://anongit.freedesktop.org/gfx-ci/linux

== Linux commits ==

bdffb4ce0539 drm: Replace zero-length array with flexible-array member

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/index.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#7 lore raw

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm: Replace zero-length array with flexible-array member

In reply to Gustavo A. R. Silva
== Series Details ==

== Series Details ==

Series: drm: Replace zero-length array with flexible-array member
URL : https://patchwork.freedesktop.org/series/73916/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8008_full -> Patchwork_16708_full
====================================================

Summary
-------

**FAILURE**

Serious unknown changes coming with Patchwork_16708_full absolutely need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in Patchwork_16708_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

Possible new issues
-------------------

Here are the unknown changes that may have been introduced in Patchwork_16708_full:

### IGT changes ###

#### Possible regressions ####

* igt@gem_exec_whisper@basic-fds-priority:
- shard-tglb: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-tglb8/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-tglb6/igt@[email protected]

* igt@sw_sync@sync_multi_producer_single_consumer:
- shard-skl: [PASS][3] -> [TIMEOUT][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl8/igt@sw_sync@sync_multi_producer_single_consumer.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl8/igt@sw_sync@sync_multi_producer_single_consumer.html

Known issues
------------

Here are the changes found in Patchwork_16708_full that come from known issues:

### IGT changes ###

#### Issues hit ####

* igt@gem_ctx_persistence@legacy-engines-mixed-process@default:
- shard-skl: [PASS][5] -> [FAIL][6] ([i915#679])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl8/igt@gem_ctx_persistence@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl8/igt@gem_ctx_persistence@[email protected]

* igt@gem_ctx_persistence@legacy-engines-mixed-process@render:
- shard-skl: [PASS][7] -> [INCOMPLETE][8] ([i915#1239])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl8/igt@gem_ctx_persistence@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl8/igt@gem_ctx_persistence@[email protected]

* igt@gem_exec_parallel@vcs1-fds:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#112080]) +9 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb4/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb6/igt@[email protected]

* igt@gem_exec_schedule@implicit-read-write-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276] / [i915#677])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb4/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb8/igt@[email protected]

* igt@gem_exec_schedule@preempt-other-chain-bsd:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#112146]) +4 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb5/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb1/igt@[email protected]

* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-glk: [PASS][15] -> [FAIL][16] ([i915#644])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-glk7/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-glk1/igt@[email protected]
- shard-kbl: [PASS][17] -> [FAIL][18] ([i915#644])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-kbl2/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-kbl3/igt@[email protected]

* igt@gem_workarounds@suspend-resume-context:
- shard-apl: [PASS][19] -> [DMESG-WARN][20] ([i915#180]) +1 similar issue
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-apl4/igt@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-apl4/igt@[email protected]

* igt@i915_selftest@live_gt_heartbeat:
- shard-skl: [PASS][21] -> [DMESG-FAIL][22] ([fdo#112406])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl1/igt@i915_selftest@live_gt_heartbeat.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl10/igt@i915_selftest@live_gt_heartbeat.html

* igt@i915_selftest@live_gt_lrc:
- shard-tglb: [PASS][23] -> [DMESG-FAIL][24] ([i915#1233])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-tglb7/igt@i915_selftest@live_gt_lrc.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-tglb8/igt@i915_selftest@live_gt_lrc.html

* igt@kms_flip@flip-vs-expired-vblank:
- shard-glk: [PASS][25] -> [FAIL][26] ([i915#79])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-glk3/igt@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-glk7/igt@[email protected]

* igt@kms_hdr@bpc-switch:
- shard-skl: [PASS][27] -> [FAIL][28] ([i915#1188])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl3/igt@[email protected]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl6/igt@[email protected]

* igt@kms_hdr@bpc-switch-suspend:
- shard-kbl: [PASS][29] -> [DMESG-WARN][30] ([i915#180]) +7 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-kbl6/igt@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-kbl4/igt@[email protected]

* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [PASS][31] -> [FAIL][32] ([fdo#108145] / [i915#265])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl1/igt@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl10/igt@[email protected]

* igt@kms_plane_lowres@pipe-a-tiling-y:
- shard-glk: [PASS][33] -> [FAIL][34] ([i915#899])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-glk3/igt@[email protected]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-glk7/igt@[email protected]

* igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
- shard-skl: [PASS][35] -> [DMESG-WARN][36] ([IGT#6])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl2/igt@[email protected]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl5/igt@[email protected]

* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [PASS][37] -> [SKIP][38] ([fdo#109441]) +1 similar issue
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb3/igt@kms_psr@psr2_primary_mmap_cpu.html

* igt@prime_busy@hang-bsd2:
- shard-iclb: [PASS][39] -> [SKIP][40] ([fdo#109276]) +16 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb4/igt@[email protected]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb7/igt@[email protected]

#### Possible fixes ####

* igt@gem_exec_balancer@hang:
- shard-iclb: [FAIL][41] ([i915#1277]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb1/igt@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb8/igt@[email protected]

* igt@gem_exec_schedule@implicit-write-read-bsd1:
- shard-iclb: [SKIP][43] ([fdo#109276] / [i915#677]) -> [PASS][44] +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb6/igt@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb2/igt@[email protected]

* igt@gem_exec_schedule@pi-distinct-iova-bsd:
- shard-iclb: [SKIP][45] ([i915#677]) -> [PASS][46] +1 similar issue
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb1/igt@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb8/igt@[email protected]

* igt@gem_exec_schedule@preempt-queue-bsd1:
- shard-iclb: [SKIP][47] ([fdo#109276]) -> [PASS][48] +15 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb8/igt@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb1/igt@[email protected]

* igt@gem_exec_schedule@preemptive-hang-bsd:
- shard-iclb: [SKIP][49] ([fdo#112146]) -> [PASS][50] +3 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb4/igt@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb6/igt@[email protected]

* igt@gem_exec_whisper@basic-contexts-forked:
- shard-apl: [INCOMPLETE][51] ([fdo#103927]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-apl7/igt@[email protected]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-apl2/igt@[email protected]

* igt@i915_pm_rps@reset:
- shard-tglb: [FAIL][53] ([i915#413]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-tglb3/igt@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-tglb1/igt@[email protected]

* igt@i915_pm_rps@waitboost:
- shard-iclb: [FAIL][55] ([i915#413]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb6/igt@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb3/igt@[email protected]

* igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding:
- shard-skl: [FAIL][57] ([i915#54]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl6/igt@[email protected]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl3/igt@[email protected]

* igt@kms_cursor_crc@pipe-c-cursor-suspend:
- shard-kbl: [DMESG-WARN][59] ([i915#180]) -> [PASS][60] +4 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-kbl7/igt@[email protected]
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-kbl7/igt@[email protected]

* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-skl: [FAIL][61] ([IGT#5]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl3/igt@[email protected]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl2/igt@[email protected]

* igt@kms_flip@flip-vs-suspend:
- shard-snb: [DMESG-WARN][63] ([i915#42]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-snb4/igt@[email protected]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-snb5/igt@[email protected]

* igt@kms_hdr@bpc-switch-suspend:
- shard-skl: [FAIL][65] ([i915#1188]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl9/igt@[email protected]
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl1/igt@[email protected]

* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
- shard-skl: [INCOMPLETE][67] ([i915#69]) -> [PASS][68] +1 similar issue
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl5/igt@[email protected]
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl10/igt@[email protected]

* igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
- shard-skl: [FAIL][69] ([fdo#108145]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-skl10/igt@[email protected]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-skl10/igt@[email protected]

* igt@kms_psr@psr2_sprite_mmap_gtt:
- shard-iclb: [SKIP][71] ([fdo#109441]) -> [PASS][72] +1 similar issue
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb5/igt@kms_psr@psr2_sprite_mmap_gtt.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html

* igt@kms_vblank@pipe-b-ts-continuation-suspend:
- shard-apl: [DMESG-WARN][73] ([i915#180]) -> [PASS][74] +1 similar issue
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-apl4/igt@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-apl2/igt@[email protected]

* igt@perf_pmu@init-busy-vcs1:
- shard-iclb: [SKIP][75] ([fdo#112080]) -> [PASS][76] +7 similar issues
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-iclb8/igt@[email protected]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-iclb1/igt@[email protected]

#### Warnings ####

* igt@i915_pm_dc@dc6-psr:
- shard-tglb: [FAIL][77] ([i915#454]) -> [SKIP][78] ([i915#468])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-tglb3/igt@[email protected]
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-tglb2/igt@[email protected]

* igt@kms_content_protection@legacy:
- shard-kbl: [TIMEOUT][79] ([i915#1319]) -> [TIMEOUT][80] ([i915#1319] / [i915#727]) +1 similar issue
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8008/shard-kbl2/igt@[email protected]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/shard-kbl6/igt@[email protected]

[IGT#5]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/5
[IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
[fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
[fdo#112406]: https://bugs.freedesktop.org/show_bug.cgi?id=112406
[i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
[i915#1233]: https://gitlab.freedesktop.org/drm/intel/issues/1233
[i915#1239]: https://gitlab.freedesktop.org/drm/intel/issues/1239
[i915#1277]: https://gitlab.freedesktop.org/drm/intel/issues/1277
[i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#413]: https://gitlab.freedesktop.org/drm/intel/issues/413
[i915#42]: https://gitlab.freedesktop.org/drm/intel/issues/42
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#468]: https://gitlab.freedesktop.org/drm/intel/issues/468
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
[i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
[i915#679]: https://gitlab.freedesktop.org/drm/intel/issues/679
[i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
[i915#727]: https://gitlab.freedesktop.org/drm/intel/issues/727
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899

Participating hosts (10 -> 10)
------------------------------

No changes in participating hosts

Build changes
-------------

* CI: CI-20190529 -> None
* Linux: CI_DRM_8008 -> Patchwork_16708

CI-20190529: 20190529
CI_DRM_8008: 13b6e2575f2c05722679bc1c9d0b97c13bde49a1 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5469: 4f875016eb1ebc211b8aadb280ae16c7e6cdc8ba @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_16708: bdffb4ce0539293c70c3d140d5981a8e80979c4f @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16708/index.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx