diff mbox series

drm/dp_mst: Fix drm_dp_mst_topology.c selftest compilation warning

Message ID 20200411141740.14584-1-tangbin@cmss.chinamobile.com (mailing list archive)
State New, archived
Headers show
Series drm/dp_mst: Fix drm_dp_mst_topology.c selftest compilation warning | expand

Commit Message

Tang Bin April 11, 2020, 2:17 p.m. UTC
The struct drm_dp_desc contains struct drm_dp_dpcd_ident, and the struct
drm_dp_dpcd_ident contains the array, so zero-initialization requires a 
more couple of braces. In the ARM compiler environment, the compile 
warning pointing it out:
    drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_mst_dsc_aux_for_port':
    drivers/gpu/drm/drm_dp_mst_topology.c:5494:9: warning: missing braces around initializer [-Wmissing-braces]
      struct drm_dp_desc desc = { 0 };

Signed-off-by: Tang Bin <tangbin@cmss.chinamobile.com>
Signed-off-by: Shengju Zhang <zhangshengju@cmss.chinamobile.com>
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Alex Deucher April 13, 2020, 2:08 p.m. UTC | #1
On Mon, Apr 13, 2020 at 5:29 AM Tang Bin <tangbin@cmss.chinamobile.com> wrote:
>
> The struct drm_dp_desc contains struct drm_dp_dpcd_ident, and the struct
> drm_dp_dpcd_ident contains the array, so zero-initialization requires a
> more couple of braces. In the ARM compiler environment, the compile
> warning pointing it out:
>     drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_mst_dsc_aux_for_port':
>     drivers/gpu/drm/drm_dp_mst_topology.c:5494:9: warning: missing braces around initializer [-Wmissing-braces]
>       struct drm_dp_desc desc = { 0 };
>

This seems to vary based on compilers.  Maybe a memset would be better.

Alex

> Signed-off-by: Tang Bin <tangbin@cmss.chinamobile.com>
> Signed-off-by: Shengju Zhang <zhangshengju@cmss.chinamobile.com>
> ---
>  drivers/gpu/drm/drm_dp_mst_topology.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
> index 70c4b7a..4d8d1fd 100644
> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
> @@ -5494,7 +5494,7 @@ struct drm_dp_aux *drm_dp_mst_dsc_aux_for_port(struct drm_dp_mst_port *port)
>  {
>         struct drm_dp_mst_port *immediate_upstream_port;
>         struct drm_dp_mst_port *fec_port;
> -       struct drm_dp_desc desc = { 0 };
> +       struct drm_dp_desc desc = { { { 0 } } };
>         u8 endpoint_fec;
>         u8 endpoint_dsc;
>
> --
> 2.7.4
>
>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Jani Nikula April 14, 2020, 11:08 a.m. UTC | #2
On Mon, 13 Apr 2020, Alex Deucher <alexdeucher@gmail.com> wrote:
> On Mon, Apr 13, 2020 at 5:29 AM Tang Bin <tangbin@cmss.chinamobile.com> wrote:
>>
>> The struct drm_dp_desc contains struct drm_dp_dpcd_ident, and the struct
>> drm_dp_dpcd_ident contains the array, so zero-initialization requires a
>> more couple of braces. In the ARM compiler environment, the compile
>> warning pointing it out:
>>     drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_mst_dsc_aux_for_port':
>>     drivers/gpu/drm/drm_dp_mst_topology.c:5494:9: warning: missing braces around initializer [-Wmissing-braces]
>>       struct drm_dp_desc desc = { 0 };
>>
>
> This seems to vary based on compilers.  Maybe a memset would be better.

= {}; will do the trick.

BR,
Jani.


>
> Alex
>
>> Signed-off-by: Tang Bin <tangbin@cmss.chinamobile.com>
>> Signed-off-by: Shengju Zhang <zhangshengju@cmss.chinamobile.com>
>> ---
>>  drivers/gpu/drm/drm_dp_mst_topology.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
>> index 70c4b7a..4d8d1fd 100644
>> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
>> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
>> @@ -5494,7 +5494,7 @@ struct drm_dp_aux *drm_dp_mst_dsc_aux_for_port(struct drm_dp_mst_port *port)
>>  {
>>         struct drm_dp_mst_port *immediate_upstream_port;
>>         struct drm_dp_mst_port *fec_port;
>> -       struct drm_dp_desc desc = { 0 };
>> +       struct drm_dp_desc desc = { { { 0 } } };
>>         u8 endpoint_fec;
>>         u8 endpoint_dsc;
>>
>> --
>> 2.7.4
>>
>>
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Tang Bin April 14, 2020, 12:39 p.m. UTC | #3
Hi Jani:

On 2020/4/14 19:08, Jani Nikula wrote:
> On Mon, 13 Apr 2020, Alex Deucher <alexdeucher@gmail.com> wrote:
>> On Mon, Apr 13, 2020 at 5:29 AM Tang Bin <tangbin@cmss.chinamobile.com> wrote:
>>> The struct drm_dp_desc contains struct drm_dp_dpcd_ident, and the struct
>>> drm_dp_dpcd_ident contains the array, so zero-initialization requires a
>>> more couple of braces. In the ARM compiler environment, the compile
>>> warning pointing it out:
>>>      drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_mst_dsc_aux_for_port':
>>>      drivers/gpu/drm/drm_dp_mst_topology.c:5494:9: warning: missing braces around initializer [-Wmissing-braces]
>>>        struct drm_dp_desc desc = { 0 };
>>>
>> This seems to vary based on compilers.  Maybe a memset would be better.
> = {}; will do the trick.

Yes, I had already confirmed this on the hardware before I mentioned the 
patch: '{}' or '{{{0}}}' are the same result in this file.But someone 
may query '{}' could not initialize all members, that's why I brought 
'{{{0}}}' up. Both initializations are validated on the hardware.

My environment:

   PC : Ubuntu 16.04

   Hardware : I.MX6ULL

   Tool Chain : arm-linux-gnueabihf-gcc (Linaro GCC 4.9-2017.01) 4.9.4


Thanks

Tang Bin
Jani Nikula April 14, 2020, 1 p.m. UTC | #4
On Tue, 14 Apr 2020, Tang Bin <tangbin@cmss.chinamobile.com> wrote:
> But someone may query '{}' could not initialize all members, that's
> why I brought '{{{0}}}' up.

{} *does* initialize everything. What are you trying to say?

BR,
Jani.
diff mbox series

Patch

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index 70c4b7a..4d8d1fd 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -5494,7 +5494,7 @@  struct drm_dp_aux *drm_dp_mst_dsc_aux_for_port(struct drm_dp_mst_port *port)
 {
 	struct drm_dp_mst_port *immediate_upstream_port;
 	struct drm_dp_mst_port *fec_port;
-	struct drm_dp_desc desc = { 0 };
+	struct drm_dp_desc desc = { { { 0 } } };
 	u8 endpoint_fec;
 	u8 endpoint_dsc;