linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH][next] drm: Replace zero-length array with flexible-array member
@ 2020-02-25 14:03 Gustavo A. R. Silva
  2020-02-25 14:17 ` Jani Nikula
  2020-02-25 15:04 ` Chris Wilson
  0 siblings, 2 replies; 5+ messages in thread
From: Gustavo A. R. Silva @ 2020-02-25 14:03 UTC (permalink / raw)
  To: Lucas Stach, Russell King, Christian Gmeiner, David Airlie,
	Daniel Vetter, Patrik Jakobsson, Jani Nikula, Joonas Lahtinen,
	Rodrigo Vivi, Rob Clark, Sean Paul, Dave Airlie, Gerd Hoffmann,
	Hans de Goede, Eric Anholt, VMware Graphics, Thomas Hellstrom,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
  Cc: etnaviv, dri-devel, linux-kernel, intel-gfx, linux-arm-msm,
	freedreno, virtualization, spice-devel, 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")

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
 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(-)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.h b/drivers/gpu/drm/etnaviv/etnaviv_gem.h
index 6b68fe16041b..98e60df882b6 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem.h
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.h
@@ -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! */
 };
 
diff --git a/drivers/gpu/drm/gma500/intel_bios.h b/drivers/gpu/drm/gma500/intel_bios.h
index a1f9ce9465a5..0e6facf21e33 100644
--- a/drivers/gpu/drm/gma500/intel_bios.h
+++ b/drivers/gpu/drm/gma500/intel_bios.h
@@ -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 {
diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
index 05c7cbe32eb4..aef7fe932d1a 100644
--- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
@@ -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;
 
 /*
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 47561dc29304..5cec79152f17 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -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)
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.h b/drivers/gpu/drm/i915/i915_gpu_error.h
index 0d1f6c8ff355..5a6561f7a210 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.h
+++ b/drivers/gpu/drm/i915/i915_gpu_error.h
@@ -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 {
diff --git a/drivers/gpu/drm/msm/msm_gem.h b/drivers/gpu/drm/msm/msm_gem.h
index 9e0953c2b7ce..37aa556c5f92 100644
--- a/drivers/gpu/drm/msm/msm_gem.h
+++ b/drivers/gpu/drm/msm/msm_gem.h
@@ -157,7 +157,7 @@ struct msm_gem_submit {
 			uint32_t handle;
 		};
 		uint64_t iova;
-	} bos[0];
+	} bos[];
 };
 
 #endif /* __MSM_GEM_H__ */
diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c
index ef09dc6bc635..d1086b2a6892 100644
--- a/drivers/gpu/drm/qxl/qxl_cmd.c
+++ b/drivers/gpu/drm/qxl/qxl_cmd.c
@@ -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 {
diff --git a/drivers/gpu/drm/vboxvideo/vboxvideo.h b/drivers/gpu/drm/vboxvideo/vboxvideo.h
index 0592004f71aa..a5de40fe1a76 100644
--- a/drivers/gpu/drm/vboxvideo/vboxvideo.h
+++ b/drivers/gpu/drm/vboxvideo/vboxvideo.h
@@ -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)
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 6627b20c99e9..282293e6f751 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -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 {
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c b/drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c
index f07aa857587c..60cfbfadd3f2 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c
@@ -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[];
 };
 
 /**
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
index 3ce630aa4fde..ec893cd17b50 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
@@ -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);
diff --git a/include/drm/bridge/mhl.h b/include/drm/bridge/mhl.h
index 1cc77bf38324..d96626a0e3fa 100644
--- a/include/drm/bridge/mhl.h
+++ b/include/drm/bridge/mhl.h
@@ -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 {
diff --git a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h
index 9d3b745c3107..94b4390bf990 100644
--- a/include/drm/drm_displayid.h
+++ b/include/drm/drm_displayid.h
@@ -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) \
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index 829c0a48577f..33de5dfadaf5 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -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 { \
-- 
2.25.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH][next] drm: Replace zero-length array with flexible-array member
  2020-02-25 14:03 [PATCH][next] drm: Replace zero-length array with flexible-array member Gustavo A. R. Silva
@ 2020-02-25 14:17 ` Jani Nikula
  2020-03-03 18:20   ` Gustavo A. R. Silva
  2020-02-25 15:04 ` Chris Wilson
  1 sibling, 1 reply; 5+ messages in thread
From: Jani Nikula @ 2020-02-25 14:17 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Lucas Stach, Russell King,
	Christian Gmeiner, David Airlie, Daniel Vetter, Patrik Jakobsson,
	Joonas Lahtinen, Rodrigo Vivi, Rob Clark, Sean Paul, Dave Airlie,
	Gerd Hoffmann, Hans de Goede, Eric Anholt, VMware Graphics,
	Thomas Hellstrom, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann
  Cc: etnaviv, dri-devel, linux-kernel, intel-gfx, linux-arm-msm,
	freedreno, virtualization, spice-devel, Gustavo A. R. Silva

On Tue, 25 Feb 2020, "Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote:
> 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")
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
>  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.

>  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.


-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][next] drm: Replace zero-length array with flexible-array member
  2020-02-25 14:03 [PATCH][next] drm: Replace zero-length array with flexible-array member Gustavo A. R. Silva
  2020-02-25 14:17 ` Jani Nikula
@ 2020-02-25 15:04 ` Chris Wilson
  1 sibling, 0 replies; 5+ messages in thread
From: Chris Wilson @ 2020-02-25 15:04 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Christian Gmeiner, Daniel Vetter,
	Dave Airlie, David Airlie, Eric Anholt, Gerd Hoffmann,
	Hans de Goede, Jani Nikula, Joonas Lahtinen, Lucas Stach,
	Maarten Lankhorst, Maxime Ripard, Patrik Jakobsson, Rob Clark,
	Rodrigo Vivi, Russell King, Sean Paul, Thomas Hellstrom,
	Thomas Zimmermann, VMware Graphics
  Cc: Gustavo A. R. Silva, linux-arm-msm, intel-gfx, etnaviv,
	dri-devel, linux-kernel, spice-devel, virtualization, freedreno

Quoting Gustavo A. R. Silva (2020-02-25 14:03:47)
> 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][next] drm: Replace zero-length array with flexible-array member
  2020-02-25 14:17 ` Jani Nikula
@ 2020-03-03 18:20   ` Gustavo A. R. Silva
  2020-03-09  7:49     ` Thomas Zimmermann
  0 siblings, 1 reply; 5+ messages in thread
From: Gustavo A. R. Silva @ 2020-03-03 18:20 UTC (permalink / raw)
  To: Jani Nikula, Lucas Stach, Russell King, Christian Gmeiner,
	David Airlie, Daniel Vetter, Patrik Jakobsson, Joonas Lahtinen,
	Rodrigo Vivi, Rob Clark, Sean Paul, Dave Airlie, Gerd Hoffmann,
	Hans de Goede, Eric Anholt, VMware Graphics, Thomas Hellstrom,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
  Cc: etnaviv, dri-devel, linux-kernel, intel-gfx, linux-arm-msm,
	freedreno, virtualization, spice-devel



On 2/25/20 08:17, Jani Nikula wrote:
> On Tue, 25 Feb 2020, "Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote:
>> 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")
>>
>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>> ---
>>  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.
> 

Sure thing. I can do that.

>>  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.
> 

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

Thanks
--
Gustavo


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][next] drm: Replace zero-length array with flexible-array member
  2020-03-03 18:20   ` Gustavo A. R. Silva
@ 2020-03-09  7:49     ` Thomas Zimmermann
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Zimmermann @ 2020-03-09  7:49 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Jani Nikula, Lucas Stach, Russell King,
	Christian Gmeiner, David Airlie, Daniel Vetter, Patrik Jakobsson,
	Joonas Lahtinen, Rodrigo Vivi, Rob Clark, Sean Paul, Dave Airlie,
	Gerd Hoffmann, Hans de Goede, Eric Anholt, VMware Graphics,
	Thomas Hellstrom, Maarten Lankhorst, Maxime Ripard
  Cc: etnaviv, dri-devel, linux-kernel, intel-gfx, linux-arm-msm,
	freedreno, virtualization, spice-devel


[-- Attachment #1.1: Type: text/plain, Size: 3000 bytes --]

Hi Gustavo

Am 03.03.20 um 19:20 schrieb Gustavo A. R. Silva:
> 
> 
> On 2/25/20 08:17, Jani Nikula wrote:
>> On Tue, 25 Feb 2020, "Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote:
>>> 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")
>>>
>>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>>> ---
>>>  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.
>>
> 
> Sure thing. I can do that.

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

Best regards
Thomas

> 
>>>  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.
>>
> 
> Yeah, it's worth it; the purpose of these patches is to replace [0] with [] across
> the whole tree.
> 
> Thanks
> --
> Gustavo
> 

-- 
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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-03-09  7:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-25 14:03 [PATCH][next] drm: Replace zero-length array with flexible-array member Gustavo A. R. Silva
2020-02-25 14:17 ` Jani Nikula
2020-03-03 18:20   ` Gustavo A. R. Silva
2020-03-09  7:49     ` Thomas Zimmermann
2020-02-25 15:04 ` Chris Wilson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).