linux/drivers/xen
Gustavo A. R. Silva e8dc73c9f9 xen: 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>
Link: https://lore.kernel.org/r/20200226212612.GA4663@embeddedor
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
2020-03-05 09:41:58 -06:00
..
events xen/events: remove event handling recursion detection 2019-12-02 07:04:30 +01:00
xen-pciback xen: Replace zero-length array with flexible-array member 2020-03-05 09:41:58 -06:00
xenbus xenbus/backend: Protect xenbus callback with lock 2020-01-29 07:35:49 -06:00
xenfs Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-07-19 10:42:02 -07:00
acpi.c
arm-device.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
balloon.c xen: branch for v5.5-rc2 2019-12-15 12:24:44 -08:00
biomerge.c block: pass page to xen_biovec_phys_mergeable 2019-04-01 12:11:13 -06:00
cpu_hotplug.c
dbgp.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
efi.c xen/efi: have a common runtime setup function 2019-10-02 10:31:07 -04:00
evtchn.c xen/events: fix binding user event channels to cpus 2019-07-17 08:09:57 +02:00
features.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
gntalloc.c
gntdev-common.h xen/gntdev: replace global limit of mapped pages by limit per call 2019-12-02 07:39:18 +01:00
gntdev-dmabuf.c drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
gntdev-dmabuf.h
gntdev.c xen/gntdev: Do not use mm notifiers with autotranslating guests 2020-01-28 12:22:48 -06:00
grant-table.c xen/grant-table: remove multiple BUG_ON on gnttab_interface 2019-12-20 13:54:56 +01:00
Kconfig xen: Fix Kconfig indentation 2019-11-24 11:55:31 +01:00
Makefile xen: remove tmem driver 2019-07-17 08:09:58 +02:00
manage.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
mcelog.c xen/mcelog: add PPIN to record when available 2019-11-14 10:01:57 +01:00
mem-reservation.c
pci.c xen/pci: reserve MCFG areas earlier 2019-09-12 15:02:55 -04:00
pcpu.c
platform-pci.c xen-platform: Convert to generic power management 2019-11-20 17:35:03 -06:00
preempt.c xen: branch for v5.6-rc3 2020-02-21 16:10:10 -08:00
privcmd-buf.c xen/privcmd-buf.c: convert to use vm_map_pages_zero() 2019-05-14 09:47:50 -07:00
privcmd.c xen: avoid link error on ARM 2019-07-31 08:14:12 +02:00
privcmd.h
pvcalls-back.c net: add {READ|WRITE}_ONCE() annotations on ->rskq_accept_head 2019-10-09 21:34:31 -07:00
pvcalls-front.c xen: fixes for 5.2-rc3 2019-05-31 10:53:34 -07:00
pvcalls-front.h
swiotlb-xen.c dma-direct: exclude dma_direct_map_resource from the min_low_pfn check 2019-11-20 20:31:41 +01:00
sys-hypervisor.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
time.c
xen-acpi-cpuhotplug.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 2019-05-21 11:28:45 +02:00
xen-acpi-memhotplug.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 2019-05-21 11:28:45 +02:00
xen-acpi-pad.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
xen-acpi-processor.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
xen-balloon.c xen/balloon: Support xend-based toolstack take two 2020-01-22 08:58:16 -06:00
xen-front-pgdir-shbuf.c
xen-scsiback.c
xen-stub.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 2019-05-21 11:28:45 +02:00
xlate_mmu.c xen: avoid link error on ARM 2019-07-31 08:14:12 +02:00