2021-02-11 11:23:25

by Muhammad Usama Anjum

[permalink] [raw]
Subject: [PATCH] staging: wfx: avoid defining array of flexible struct

In this particular case, the struct element is already flexible struct.
Thus struct element ie[] is ambiguous inside another struct. The members
of struct element ie aren't being accessed in code anywhere. The data of
u8 type is copied in it. So it has been changed to u8 ie[] to make the
sparse happy and code simple.

Warning from sparse:
drivers/stagingwfx/hif_tx.c: note: in included file (through drivers/stagingwfx/data_tx.h, drivers/staging//wfx/wfx.h):
drivers/staging//wfx/hif_api_cmd.h:103:26: warning: array of flexible structures

Signed-off-by: Muhammad Usama Anjum <[email protected]>
---
drivers/staging/wfx/hif_api_cmd.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/wfx/hif_api_cmd.h b/drivers/staging/wfx/hif_api_cmd.h
index 11bc1a58edae..58c9bb036011 100644
--- a/drivers/staging/wfx/hif_api_cmd.h
+++ b/drivers/staging/wfx/hif_api_cmd.h
@@ -100,7 +100,7 @@ struct hif_req_update_ie {
u8 reserved1:5;
u8 reserved2;
__le16 num_ies;
- struct element ie[];
+ u8 ie[];
} __packed;

struct hif_cnf_update_ie {
--
2.25.1


2021-02-11 13:10:00

by Jérôme Pouiller

[permalink] [raw]
Subject: Re: [PATCH] staging: wfx: avoid defining array of flexible struct

On Thursday 11 February 2021 11:50:26 CET Muhammad Usama Anjum wrote:
>
> In this particular case, the struct element is already flexible struct.
> Thus struct element ie[] is ambiguous inside another struct. The members
> of struct element ie aren't being accessed in code anywhere. The data of
> u8 type is copied in it. So it has been changed to u8 ie[] to make the
> sparse happy and code simple.

You may also mention that the driver code does not care of the type of
the ie attribute. It is only accessed from one place with memcpy().

>
> Warning from sparse:
> drivers/stagingwfx/hif_tx.c: note: in included file (through drivers/stagingwfx/data_tx.h, drivers/staging//wfx/wfx.h):
> drivers/staging//wfx/hif_api_cmd.h:103:26: warning: array of flexible structures
>
> Signed-off-by: Muhammad Usama Anjum <[email protected]>
> ---
> drivers/staging/wfx/hif_api_cmd.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/wfx/hif_api_cmd.h b/drivers/staging/wfx/hif_api_cmd.h
> index 11bc1a58edae..58c9bb036011 100644
> --- a/drivers/staging/wfx/hif_api_cmd.h
> +++ b/drivers/staging/wfx/hif_api_cmd.h
> @@ -100,7 +100,7 @@ struct hif_req_update_ie {
> u8 reserved1:5;
> u8 reserved2;
> __le16 num_ies;
> - struct element ie[];
> + u8 ie[];
> } __packed;
>
> struct hif_cnf_update_ie {
> --
> 2.25.1
>
>

I think that "#include <linux/ieee80211.h>" is no more necessary.

Else:

Reviewed-by: J?r?me Pouiller <[email protected]>

--
J?r?me Pouiller


2021-02-11 14:16:27

by Muhammad Usama Anjum

[permalink] [raw]
Subject: Re: [PATCH] staging: wfx: avoid defining array of flexible struct


> I think that "#include <linux/ieee80211.h>" is no more necessary.
Good catch. I'll send another patch.

Thanks,
Usama