linux/drivers/hv
Gustavo A. R. Silva 032d4a4802 hv: hyperv_vmbus.h: 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: Wei Liu <wei.liu@kernel.org>
2020-03-21 16:26:12 +00:00
..
channel_mgmt.c Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23) 2020-01-25 16:52:11 -05:00
channel.c Drivers: hv: vmbus: Fix virt_to_hvpfn() for X86_PAE 2019-08-20 12:49:57 -04:00
connection.c Drivers: hv: vmbus: Remove dependencies on guest page size 2019-11-21 20:10:45 -05:00
hv_balloon.c hv_balloon: Balloon up according to request page number 2020-01-25 16:51:49 -05:00
hv_debugfs.c drivers: hv: vmbus: Introduce latency testing 2019-11-21 20:10:44 -05:00
hv_fcopy.c hv_utils: Add the support of hibernation 2020-01-26 22:10:17 -05:00
hv_kvp.c hv_utils: Add the support of hibernation 2020-01-26 22:10:17 -05:00
hv_snapshot.c hv_utils: Add the support of hibernation 2020-01-26 22:10:17 -05:00
hv_trace_balloon.h hv_balloon: trace post_status 2018-03-06 09:57:17 -08:00
hv_trace.c hv: add SPDX license to trace 2018-03-28 13:24:56 +02:00
hv_trace.h tools: hv: Use the correct style for SPDX License Identifier 2019-08-17 15:29:34 -04:00
hv_util.c - Most of the commits here are work to enable host-initiated hibernation 2020-02-03 14:42:03 +00:00
hv_utils_transport.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 280 2019-06-05 17:36:36 +02:00
hv_utils_transport.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 280 2019-06-05 17:36:36 +02:00
hv.c x86/hyperv: Initialize clockevents earlier in CPU onlining 2019-11-15 10:33:49 +01:00
hyperv_vmbus.h hv: hyperv_vmbus.h: Replace zero-length array with flexible-array member 2020-03-21 16:26:12 +00:00
Kconfig clocksource/drivers/hyperv: Enable TSC page clocksource on 32bit 2019-08-23 16:59:54 +02:00
Makefile drivers: hv: vmbus: Introduce latency testing 2019-11-21 20:10:44 -05:00
ring_buffer.c drivers: hv: vmbus: Introduce latency testing 2019-11-21 20:10:44 -05:00
vmbus_drv.c Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23) 2020-01-25 16:52:11 -05:00