Skip to content

Commit

Permalink
octeontx2: Replace zero-length arrays with flexible-array members
Browse files Browse the repository at this point in the history
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2040643

commit 5224f79
Author: Gustavo A. R. Silva <gustavoars@kernel.org>
Date:   Mon Feb 14 19:11:44 2022 -0600

    treewide: Replace zero-length arrays with flexible-array members

    There is a regular need in the kernel to provide a way to declare
    having a dynamically sized set of trailing elements in a structure.
    Kernel code should always use “flexible array members”[1] for these
    cases. The older style of one-element or zero-length arrays should
    no longer be used[2].

    This code was transformed with the help of Coccinelle:
    (next-20220214$ spatch --jobs $(getconf _NPROCESSORS_ONLN) --sp-file script.cocci --include-headers --dir . > output.patch)

    @@
    identifier S, member, array;
    type T1, T2;
    @@

    struct S {
      ...
      T1 member;
      T2 array[
    - 0
      ];
    };

    UAPI and wireless changes were intentionally excluded from this patch
    and will be sent out separately.

    [1] https://en.wikipedia.org/wiki/Flexible_array_member
    [2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays

    Link: KSPP/linux#78
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Signed-off-by: Michal Schmidt <mschmidt@redhat.com>

Conflicts:
	Only octeontx2 hunks.
  • Loading branch information
michich committed Feb 16, 2023
1 parent 79a98d1 commit b4bd84e
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/net/ethernet/marvell/octeontx2/af/npc.h
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@ struct npc_coalesced_kpu_prfl {
u8 name[NPC_NAME_LEN]; /* KPU Profile name */
u64 version; /* KPU firmware/profile version */
u8 num_prfl; /* No of NPC profiles. */
u16 prfl_sz[0];
u16 prfl_sz[];
};

struct npc_mcam_kex {
Expand All @@ -482,7 +482,7 @@ struct npc_kpu_fwdata {
* struct npc_kpu_profile_cam[entries];
* struct npc_kpu_profile_action[entries];
*/
u8 data[0];
u8 data[];
} __packed;

struct npc_lt_def {
Expand Down Expand Up @@ -572,7 +572,7 @@ struct npc_kpu_profile_fwdata {
* Custom KPU CAM and ACTION configuration entries.
* struct npc_kpu_fwdata kpu[kpus];
*/
u8 data[0];
u8 data[];
} __packed;

struct rvu_npc_mcam_rule {
Expand Down

0 comments on commit b4bd84e

Please sign in to comment.