public inbox for linux-staging@lists.linux.dev
 help / color / mirror / Atom feed
* staging/wlan-ng query: convert to flexible array member
@ 2022-11-08 15:12 Deepak R Varma
  2022-11-08 15:34 ` Greg Kroah-Hartman
  2022-11-13  6:33 ` Gustavo A. R. Silva
  0 siblings, 2 replies; 11+ messages in thread
From: Deepak R Varma @ 2022-11-08 15:12 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-staging, linux-kernel

Hello,

First, my apologies for the long email.
I am requesting guidance on how to approach resolving the zero element flexible
VLO struct implementation in this driver in file drivers/staging/waln-ng/hfa384x.f

The struct hfa384x_pdrec contains nested structs with zero element arrays.  These
zero element structs are part of a union 'data' inside the struct container. This
union 'data' is the last element of this container. Please see the code snip below:

<snip>

	1068 struct hfa384x_pdrec {
	   1         __le16 len;             /* in words */
	   2         __le16 code;
	   3         union pdr {
	   4                 struct hfa384x_pdr_pcb_partnum pcb_partnum;
	  11                 struct hfa384x_pdr_nicid nicid;
	  12                 struct hfa384x_pdr_refdac_measurements refdac_measurements;
	  13                 struct hfa384x_pdr_vgdac_measurements vgdac_measurements;
	  14                 struct hfa384x_pdr_level_comp_measurements level_compc_measurements;
	  15                 struct hfa384x_pdr_mac_address mac_address;
	  39         } data;
	  40 } __packed;

</snip>

The three structures in question are declared as follows in the same file:

<snip>
	962  struct hfa384x_pdr_refdac_measurements {
	   1         u16 value[0];
	   2 } __packed;
	   3
	   4 struct hfa384x_pdr_vgdac_measurements {
	   5         u16 value[0];
	   6 } __packed;
	   7
	   8 struct hfa384x_pdr_level_comp_measurements {
	   9         u16 value[0];
	  10 } __packed;
</snip>

As per the C99 specifications, the flexible array struct should have at least
one member other than the true flexible array member. So converting these from
[0] to [] is not feasible in the current form.

I did not find these struct variables being used for memory allocation in the
code directly. My find may be short since the implementation appears to get very
complex as I tried to get deeper.

Can you please suggest how should I approach correcting the zero element flex
array implementation here? Can these structs be removed if they are unused?

Thank you.
./drv




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

end of thread, other threads:[~2022-11-13  7:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-08 15:12 staging/wlan-ng query: convert to flexible array member Deepak R Varma
2022-11-08 15:34 ` Greg Kroah-Hartman
2022-11-08 15:45   ` Deepak R Varma
2022-11-08 15:52     ` Greg Kroah-Hartman
2022-11-08 17:37       ` Deepak R Varma
2022-11-08 18:32         ` Greg Kroah-Hartman
2022-11-08 18:38           ` Deepak R Varma
2022-11-08 19:43             ` Greg Kroah-Hartman
2022-11-09  6:51               ` Deepak R Varma
2022-11-13  6:33 ` Gustavo A. R. Silva
2022-11-13  7:38   ` Deepak R Varma

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox