linux/drivers/net/ethernet/intel/i40e
Gustavo A. R. Silva 040efdb14c intel: 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 7649773293 ("cxgb3/l2t: Fix undefined behaviour")

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-02-24 15:26:17 -08:00
..
i40e_adminq_cmd.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-09 11:04:37 -08:00
i40e_adminq.c i40e: Set PHY Access flag on X722 2020-01-09 09:21:40 -08:00
i40e_adminq.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_alloc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_client.c i40e: Use struct_size() in kzalloc() 2019-05-04 17:34:43 -07:00
i40e_client.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_common.c i40e: fix spelling mistake "to" -> "too" 2020-01-24 08:12:06 +01:00
i40e_dcb_nl.c i40e/i40evf: cleanup incorrect function doxygen comments 2018-04-30 09:09:04 -07:00
i40e_dcb.c i40e: Fix for persistent lldp support 2019-10-25 13:38:19 -07:00
i40e_dcb.h i40e: Fix for persistent lldp support 2019-10-25 13:38:19 -07:00
i40e_ddp.c i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00
i40e_debugfs.c i40e: Remove EMPR traces from debugfs facility 2019-09-09 11:36:43 -07:00
i40e_devids.h i40e: Fix LED blinking flow for X710T*L devices 2019-10-25 13:38:19 -07:00
i40e_diag.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_diag.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_ethtool.c treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
i40e_hmc.c i40e: Implement debug macro hw_dbg using dev_dbg 2019-09-09 11:22:20 -07:00
i40e_hmc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_lan_hmc.c treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
i40e_lan_hmc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_main.c i40e: Removing hung_queue variable to use txqueue function parameter 2020-01-17 09:55:34 -08:00
i40e_nvm.c i40e: Fix for persistent lldp support 2019-10-25 13:38:19 -07:00
i40e_osdep.h i40e: Implement debug macro hw_dbg using dev_dbg 2019-09-09 11:22:20 -07:00
i40e_prototype.h i40e: Extend PHY access with page change flag 2019-10-25 13:38:19 -07:00
i40e_ptp.c i40e: use ktime_get_real_ts64 instead of ktime_to_timespec64 2019-09-11 09:10:45 -07:00
i40e_register.h i40e: check_recovery_mode had wrong if statement 2019-08-22 13:24:13 -07:00
i40e_status.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_trace.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_txrx_common.h i40e: DRY rx_ptype handling code 2018-12-12 15:46:02 -08:00
i40e_txrx.c i40e: Add UDP segmentation offload support 2019-10-29 21:11:49 -07:00
i40e_txrx.h net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
i40e_type.h i40e: Extend PHY access with page change flag 2019-10-25 13:38:19 -07:00
i40e_virtchnl_pf.c i40e: Fix the conditional for i40e_vc_validate_vqs_bitmaps 2020-02-11 17:03:52 -08:00
i40e_virtchnl_pf.h i40e: implement VF stats NDO 2019-11-04 13:19:49 -08:00
i40e_xsk.c i40e: Relax i40e_xsk_wakeup's return value when PF is busy 2020-02-05 22:06:08 +01:00
i40e_xsk.h xsk: replace ndo_xsk_async_xmit with ndo_xsk_wakeup 2019-08-17 23:07:31 +02:00
i40e.h intel: Replace zero-length array with flexible-array member 2020-02-24 15:26:17 -08:00
Makefile i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00