1. 21 Feb, 2020 19 commits
  2. 16 Feb, 2020 10 commits
    • Linus Torvalds's avatar
      Linux 5.6-rc2 · 11a48a5a
      Linus Torvalds authored
      11a48a5a
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.6-1' of https://github.com/cminyard/linux-ipmi · ab02b61f
      Linus Torvalds authored
      Pull IPMI update from Corey Minyard:
       "Minor bug fixes for IPMI
      
        I know this is late; I've been travelling and, well, I've been
        distracted.
      
        This is just a few bug fixes and adding i2c support to the IPMB
        driver, which is something I wanted from the beginning for it"
      
      * tag 'for-linus-5.6-1' of https://github.com/cminyard/linux-ipmi:
        drivers: ipmi: fix off-by-one bounds check that leads to a out-of-bounds write
        ipmi:ssif: Handle a possible NULL pointer reference
        drivers: ipmi: Modify max length of IPMB packet
        drivers: ipmi: Support raw i2c packet in IPMB
      ab02b61f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 44024adb
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "Bugfixes and improvements to selftests.
      
        On top of this, Mauro converted the KVM documentation to rst format,
        which was very welcome"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (44 commits)
        docs: virt: guest-halt-polling.txt convert to ReST
        docs: kvm: review-checklist.txt: rename to ReST
        docs: kvm: Convert timekeeping.txt to ReST format
        docs: kvm: Convert s390-diag.txt to ReST format
        docs: kvm: Convert ppc-pv.txt to ReST format
        docs: kvm: Convert nested-vmx.txt to ReST format
        docs: kvm: Convert mmu.txt to ReST format
        docs: kvm: Convert locking.txt to ReST format
        docs: kvm: Convert hypercalls.txt to ReST format
        docs: kvm: arm/psci.txt: convert to ReST
        docs: kvm: convert arm/hyp-abi.txt to ReST
        docs: kvm: Convert api.txt to ReST format
        docs: kvm: convert devices/xive.txt to ReST
        docs: kvm: convert devices/xics.txt to ReST
        docs: kvm: convert devices/vm.txt to ReST
        docs: kvm: convert devices/vfio.txt to ReST
        docs: kvm: convert devices/vcpu.txt to ReST
        docs: kvm: convert devices/s390_flic.txt to ReST
        docs: kvm: convert devices/mpic.txt to ReST
        docs: kvm: convert devices/arm-vgit.txt to ReST
        ...
      44024adb
    • Linus Torvalds's avatar
      Merge tag 'edac_urgent_for_5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · b982df72
      Linus Torvalds authored
      Pull EDAC fixes from Borislav Petkov:
       "Two fixes for use-after-free and memory leaking in the EDAC core, by
        Robert Richter.
      
        Debug options like DEBUG_TEST_DRIVER_REMOVE, KASAN and DEBUG_KMEMLEAK
        unearthed issues with the lifespan of memory allocated by the EDAC
        memory controller descriptor due to misdesigned memory freeing, done
        partially by the EDAC core *and* the driver core, which is problematic
        to say the least.
      
        These two are minimal fixes to take care of stable - a proper rework
        is following which cleans up that mess properly"
      
      * tag 'edac_urgent_for_5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/sysfs: Remove csrow objects on errors
        EDAC/mc: Fix use-after-free and memleaks during device removal
      b982df72
    • Linus Torvalds's avatar
      Merge tag 'block-5.6-2020-02-16' of git://git.kernel.dk/linux-block · e29c6a13
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Not a lot here, which is great, basically just three small bcache
        fixes from Coly, and four NVMe fixes via Keith"
      
      * tag 'block-5.6-2020-02-16' of git://git.kernel.dk/linux-block:
        nvme: fix the parameter order for nvme_get_log in nvme_get_fw_slot_info
        nvme/pci: move cqe check after device shutdown
        nvme: prevent warning triggered by nvme_stop_keep_alive
        nvme/tcp: fix bug on double requeue when send fails
        bcache: remove macro nr_to_fifo_front()
        bcache: Revert "bcache: shrink btree node cache after bch_btree_check()"
        bcache: ignore pending signals when creating gc and allocator thread
      e29c6a13
    • Linus Torvalds's avatar
      Merge tag 'for-5.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 713db356
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "Two races fixed, memory leak fix, sysfs directory fixup and two new
        log messages:
      
         - two fixed race conditions: extent map merging and truncate vs
           fiemap
      
         - create the right sysfs directory with device information and move
           the individual device dirs under it
      
         - print messages when the tree-log is replayed at mount time or
           cannot be replayed on remount"
      
      * tag 'for-5.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: sysfs, move device id directories to UUID/devinfo
        btrfs: sysfs, add UUID/devinfo kobject
        Btrfs: fix race between shrinking truncate and fiemap
        btrfs: log message when rw remount is attempted with unclean tree-log
        btrfs: print message when tree-log replay starts
        Btrfs: fix race between using extent maps and merging them
        btrfs: ref-verify: fix memory leaks
      713db356
    • Linus Torvalds's avatar
      Merge tag '5.6-rc1-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 288b27a0
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Four small CIFS/SMB3 fixes. One (the EA overflow fix) for stable"
      
      * tag '5.6-rc1-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: make sure we do not overflow the max EA buffer size
        cifs: enable change notification for SMB2.1 dialect
        cifs: Fix mode output in debugging statements
        cifs: fix mount option display for sec=krb5i
      288b27a0
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 8a8b8096
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Miscellaneous ext4 bug fixes (all stable fodder)"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: improve explanation of a mount failure caused by a misconfigured kernel
        jbd2: do not clear the BH_Mapped flag when forgetting a metadata buffer
        jbd2: move the clearing of b_modified flag to the journal_unmap_buffer()
        ext4: add cond_resched() to ext4_protect_reserved_inode
        ext4: fix checksum errors with indexed dirs
        ext4: fix support for inode sizes > 1024 bytes
        ext4: simplify checking quota limits in ext4_statfs()
        ext4: don't assume that mmp_nodename/bdevname have NUL
      8a8b8096
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · db70e26e
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - a few drivers have been updated to use flexible-array syntax instead
         of GCC extension
      
       - ili210x touchscreen driver now supports the 2120 protocol flavor
      
       - a couple more of Synaptics devices have been switched over to RMI4
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: cyapa - replace zero-length array with flexible-array member
        Input: tca6416-keypad - replace zero-length array with flexible-array member
        Input: gpio_keys_polled - replace zero-length array with flexible-array member
        Input: synaptics - remove the LEN0049 dmi id from topbuttonpad list
        Input: synaptics - enable SMBus on ThinkPad L470
        Input: synaptics - switch T470s to RMI4 by default
        Input: gpio_keys - replace zero-length array with flexible-array member
        Input: goldfish_events - replace zero-length array with flexible-array member
        Input: psmouse - switch to using i2c_new_scanned_device()
        Input: ili210x - add ili2120 support
        Input: ili210x - fix return value of is_visible function
      db70e26e
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 54654e14
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Not too much going on here, though there are about four fixes related
        to stuff merged during the last merge window.
      
        We also see the return of a syzkaller instance with access to RDMA
        devices, and a few bugs detected by that squished.
      
         - Fix three crashers and a memory memory leak for HFI1
      
         - Several bugs found by syzkaller
      
         - A bug fix for the recent QP counters feature on older mlx5 HW
      
         - Locking inversion in cxgb4
      
         - Unnecessary WARN_ON in siw
      
         - A umad crasher regression during unload, from a bug fix for
           something else
      
         - Bugs introduced in the merge window:
             - Missed list_del in uverbs file rework, core and mlx5 devx
             - Unexpected integer math truncation in the mlx5 VAR patches
             - Compilation bug fix for the VAR patches on 32 bit"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        IB/mlx5: Use div64_u64 for num_var_hw_entries calculation
        RDMA/core: Fix protection fault in get_pkey_idx_qp_list
        RDMA/rxe: Fix soft lockup problem due to using tasklets in softirq
        RDMA/mlx5: Prevent overflow in mmap offset calculations
        IB/umad: Fix kernel crash while unloading ib_umad
        RDMA/mlx5: Fix async events cleanup flows
        RDMA/core: Add missing list deletion on freeing event queue
        RDMA/siw: Remove unwanted WARN_ON in siw_cm_llp_data_ready()
        RDMA/iw_cxgb4: initiate CLOSE when entering TERM
        IB/mlx5: Return failure when rts2rts_qp_counters_set_id is not supported
        RDMA/core: Fix invalid memory access in spec_filter_size
        IB/rdmavt: Reset all QPs when the device is shut down
        IB/hfi1: Close window for pq and request coliding
        IB/hfi1: Acquire lock to release TID entries when user file is closed
        RDMA/hfi1: Fix memory leak in _dev_comp_vect_mappings_create
      54654e14
  3. 15 Feb, 2020 11 commits
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · b719ae07
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A handful of fixes that have come in since the merge window:
      
         - Fix of PCI interrupt map on arm64 fast model (SW emulator)
      
         - Fixlet for sound on ST platforms and a small cleanup of deprecated
           DT properties
      
         - A stack buffer overflow fix for moxtet
      
         - Fuse driver build fix for Tegra194
      
         - A few config updates to turn on new drivers merged this cycle"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        bus: moxtet: fix potential stack buffer overflow
        soc/tegra: fuse: Fix build with Tegra194 configuration
        ARM: dts: sti: fixup sound frame-inversion for stihxxx-b2120.dtsi
        ARM: dts: sti: Remove deprecated snps PHY properties for stih410-b2260
        arm64: defconfig: Enable DRM_SUN6I_DSI
        arm64: defconfig: Enable CONFIG_SUN8I_THERMAL
        ARM: sunxi: Enable CONFIG_SUN8I_THERMAL
        arm64: defconfig: Set bcm2835-dma as built-in
        ARM: configs: Cleanup old Kconfig options
        ARM: npcm: Bring back GPIOLIB support
        arm64: dts: fast models: Fix FVP PCI interrupt-map property
      b719ae07
    • Linus Torvalds's avatar
      Merge tag 's390-5.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 3e71e121
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Enable paes-s390 cipher selftests in testmgr (acked-by Herbert Xu).
      
       - Fix protected key length update in PKEY_SEC2PROTK ioctl and increase
         card/queue requests counter to 64-bit in crypto code.
      
       - Fix clang warning in get_tod_clock.
      
       - Fix ultravisor info length extensions handling.
      
       - Fix style of SPDX License Identifier in vfio-ccw.
      
       - Avoid unnecessary GFP_ATOMIC and simplify ACK tracking in qdio.
      
      * tag 's390-5.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        crypto/testmgr: enable selftests for paes-s390 ciphers
        s390/time: Fix clk type in get_tod_clock
        s390/uv: Fix handling of length extensions
        s390/qdio: don't allocate *aob array with GFP_ATOMIC
        s390/qdio: simplify ACK tracking
        s390/zcrypt: fix card and queue total counter wrap
        s390/pkey: fix missing length of protected key on return
        vfio-ccw: Use the correct style for SPDX License Identifier
      3e71e121
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.6-rc2' of... · bd516133
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Fix compatible string typos in the xdpe12284 driver, and a wrong bit
        value in the ltc2978 driver"
      
      * tag 'hwmon-for-v5.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (pmbus/xdpe12284) fix typo in compatible strings
        hwmon: (pmbus/ltc2978) Fix PMBus polling of MFR_COMMON definitions.
      bd516133
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ef78e5b7
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Misc fixes all over the place:
      
         - Fix NUMA over-balancing between lightly loaded nodes. This is
           fallout of the big load-balancer rewrite.
      
         - Fix the NOHZ remote loadavg update logic, which fixes anomalies
           like reported 150 loadavg on mostly idle CPUs.
      
         - Fix XFS performance/scalability
      
         - Fix throttled groups unbound task-execution bug
      
         - Fix PSI procfs boundary condition
      
         - Fix the cpu.uclamp.{min,max} cgroup configuration write checks
      
         - Fix DocBook annotations
      
         - Fix RCU annotations
      
         - Fix overly CPU-intensive housekeeper CPU logic loop on large CPU
           counts"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Fix kernel-doc warning in attach_entity_load_avg()
        sched/core: Annotate curr pointer in rq with __rcu
        sched/psi: Fix OOB write when writing 0 bytes to PSI files
        sched/fair: Allow a per-CPU kthread waking a task to stack on the same CPU, to fix XFS performance regression
        sched/fair: Prevent unlimited runtime on throttled group
        sched/nohz: Optimize get_nohz_timer_target()
        sched/uclamp: Reject negative values in cpu_uclamp_write()
        sched/fair: Allow a small load imbalance between low utilisation SD_NUMA domains
        timers/nohz: Update NOHZ load in remote tick
        sched/core: Don't skip remote tick for idle CPUs
      ef78e5b7
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · da99f935
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Fixes and HW enablement patches:
      
         - Tooling fixes, most of which are tooling header synchronization
           with v5.6 changes
      
         - Fix kprobes fallout on ARM
      
         - Add Intel Elkhart Lake support and extend Tremont support, these
           are relatively simple and should only affect those models
      
         - Fix the AMD family 17h generic event table"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
        perf llvm: Fix script used to obtain kernel make directives to work with new kbuild
        tools headers kvm: Sync linux/kvm.h with the kernel sources
        tools headers kvm: Sync kvm headers with the kernel sources
        tools arch x86: Sync asm/cpufeatures.h with the kernel sources
        tools headers x86: Sync disabled-features.h
        tools include UAPI: Sync sound/asound.h copy
        tools headers UAPI: Sync asm-generic/mman-common.h with the kernel
        perf tools: Add arm64 version of get_cpuid()
        tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
        tools headers uapi: Sync linux/fscrypt.h with the kernel sources
        tools headers UAPI: Sync sched.h with the kernel
        perf trace: Resolve prctl's 'option' arg strings to numbers
        perf beauty prctl: Export the 'options' strarray
        tools headers UAPI: Sync prctl.h with the kernel sources
        tools headers UAPI: Sync copy of arm64's asm/unistd.h with the kernel sources
        perf maps: Move kmap::kmaps setup to maps__insert()
        perf maps: Fix map__clone() for struct kmap
        perf maps: Mark ksymbol DSOs with kernel type
        perf maps: Mark module DSOs with kernel type
        tools include UAPI: Sync x86's syscalls_64.tbl, generic unistd.h and fcntl.h to pick up openat2 and pidfd_getfd
        ...
      da99f935
    • Marek Behún's avatar
      bus: moxtet: fix potential stack buffer overflow · 3bf3c974
      Marek Behún authored
      The input_read function declares the size of the hex array relative to
      sizeof(buf), but buf is a pointer argument of the function. The hex
      array is meant to contain hexadecimal representation of the bin array.
      
      Link: https://lore.kernel.org/r/20200215142130.22743-1-marek.behun@nic.cz
      Fixes: 5bc7f990 ("bus: Add support for Moxtet bus")
      Signed-off-by: default avatarMarek Behún <marek.behun@nic.cz>
      Reported-by: default avatarsohu0106 <sohu0106@126.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      3bf3c974
    • Theodore Ts'o's avatar
      ext4: improve explanation of a mount failure caused by a misconfigured kernel · d65d87a0
      Theodore Ts'o authored
      If CONFIG_QFMT_V2 is not enabled, but CONFIG_QUOTA is enabled, when a
      user tries to mount a file system with the quota or project quota
      enabled, the kernel will emit a very confusing messsage:
      
          EXT4-fs warning (device vdc): ext4_enable_quotas:5914: Failed to enable quota tracking (type=0, err=-3). Please run e2fsck to fix.
          EXT4-fs (vdc): mount failed
      
      We will now report an explanatory message indicating which kernel
      configuration options have to be enabled, to avoid customer/sysadmin
      confusion.
      
      Link: https://lore.kernel.org/r/20200215012738.565735-1-tytso@mit.edu
      Google-Bug-Id: 149093531
      Fixes: 7c319d32 ("ext4: make quota as first class supported feature")
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@kernel.org
      d65d87a0
    • Ingo Molnar's avatar
      Merge tag 'perf-urgent-for-mingo-5.6-20200214' of... · dfb9b69e
      Ingo Molnar authored
      Merge tag 'perf-urgent-for-mingo-5.6-20200214' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
      
      BPF:
      
        Arnaldo Carvalho de Melo:
      
        - Fix script used to obtain kernel make directives to work with new kbuild
          used for building BPF programs.
      
      maps:
      
        Jiri Olsa:
      
        - Fixup kmap->kmaps backpointer in kernel maps.
      
      arm64:
      
        John Garry:
      
        - Add arm64 version of get_cpuid() to get proper, arm64 specific output from
          'perf list' and other tools.
      
      perf top:
      
        Kim Phillips:
      
        - Update kernel idle symbols so that output in AMD systems is in line with
          other systems.
      
      perf stat:
      
        Kim Phillips:
      
        - Don't report a null stalled cycles per insn metric.
      
      tools headers:
      
        Arnaldo Carvalho de Melo:
      
        - Sync tools/ headers with the kernel sources to get things like syscall
          numbers and new arguments so that 'perf trace' can decode and use them in
          tracepoint filters, e.g. prctl's new PR_{G,S}ET_IO_FLUSHER options.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      dfb9b69e
    • Gustavo A. R. Silva's avatar
      Input: cyapa - replace zero-length array with flexible-array member · 3dbae155
      Gustavo A. R. Silva authored
      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 76497732 ("cxgb3/l2t: Fix undefined behaviour")
      Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Link: https://lore.kernel.org/r/20200214172132.GA28389@embeddedorSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      3dbae155
    • Gustavo A. R. Silva's avatar
      Input: tca6416-keypad - replace zero-length array with flexible-array member · 94bef5d5
      Gustavo A. R. Silva authored
      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 76497732 ("cxgb3/l2t: Fix undefined behaviour")
      Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Link: https://lore.kernel.org/r/20200214172022.GA27490@embeddedorSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      94bef5d5
    • Gustavo A. R. Silva's avatar
      Input: gpio_keys_polled - replace zero-length array with flexible-array member · 3d87c75d
      Gustavo A. R. Silva authored
      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 76497732 ("cxgb3/l2t: Fix undefined behaviour")
      Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Link: https://lore.kernel.org/r/20200214171907.GA26588@embeddedorSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      3d87c75d