summaryrefslogtreecommitdiff
path: root/pkg/iproute2/patch
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2024-03-21 23:29:18 -0700
committerMichael Forney <mforney@mforney.org>2024-03-21 23:29:18 -0700
commit594971b59caa1d75f0179de8d612375f410a7566 (patch)
treedd14cb80cc3c90a9019b0d9442a2dd8d6a02d9df /pkg/iproute2/patch
parent01eb93d6f752c2bb3815bb794572231651f105fa (diff)
Remove obsolete portability patches with C23 and new cproc
Diffstat (limited to 'pkg/iproute2/patch')
-rw-r--r--pkg/iproute2/patch/0005-Avoid-non-standard-e-escape-sequence.patch (renamed from pkg/iproute2/patch/0006-Avoid-non-standard-e-escape-sequence.patch)0
-rw-r--r--pkg/iproute2/patch/0005-Don-t-use-empty-initializer-lists.patch2455
-rw-r--r--pkg/iproute2/patch/0006-Remove-semicolon-after-function-definitions.patch (renamed from pkg/iproute2/patch/0007-Remove-semicolon-after-function-definitions.patch)0
-rw-r--r--pkg/iproute2/patch/0007-Don-t-omit-second-operand-to-operator.patch (renamed from pkg/iproute2/patch/0008-Don-t-omit-second-operand-to-operator.patch)0
-rw-r--r--pkg/iproute2/patch/0008-Avoid-unnecessary-VLAs.patch (renamed from pkg/iproute2/patch/0009-Avoid-unnecessary-VLAs.patch)0
-rw-r--r--pkg/iproute2/patch/0009-ip-Fix-get_link_kind-when-linked-statically.patch (renamed from pkg/iproute2/patch/0010-ip-Fix-get_link_kind-when-linked-statically.patch)0
-rw-r--r--pkg/iproute2/patch/0010-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch (renamed from pkg/iproute2/patch/0011-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch)0
-rw-r--r--pkg/iproute2/patch/0011-Use-static-inline-function-for-min.patch (renamed from pkg/iproute2/patch/0012-Use-static-inline-function-for-min.patch)0
-rw-r--r--pkg/iproute2/patch/0012-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch (renamed from pkg/iproute2/patch/0014-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch)0
-rw-r--r--pkg/iproute2/patch/0013-Fix-overflow-check-for-strtod-and-strtoul.patch (renamed from pkg/iproute2/patch/0016-Fix-overflow-check-for-strtod-and-strtoul.patch)0
-rw-r--r--pkg/iproute2/patch/0013-Use-__typeof__-instead-of-typeof.patch86
-rw-r--r--pkg/iproute2/patch/0014-Remove-flexible-array-member-in-embedded-struct.patch (renamed from pkg/iproute2/patch/0017-Remove-flexible-array-member-in-embedded-struct.patch)0
-rw-r--r--pkg/iproute2/patch/0015-Revert-change-of-BPF_F_-to-enum-constants.patch32
13 files changed, 0 insertions, 2573 deletions
diff --git a/pkg/iproute2/patch/0006-Avoid-non-standard-e-escape-sequence.patch b/pkg/iproute2/patch/0005-Avoid-non-standard-e-escape-sequence.patch
index 37a12c0c..37a12c0c 100644
--- a/pkg/iproute2/patch/0006-Avoid-non-standard-e-escape-sequence.patch
+++ b/pkg/iproute2/patch/0005-Avoid-non-standard-e-escape-sequence.patch
diff --git a/pkg/iproute2/patch/0005-Don-t-use-empty-initializer-lists.patch b/pkg/iproute2/patch/0005-Don-t-use-empty-initializer-lists.patch
deleted file mode 100644
index cb9cb602..00000000
--- a/pkg/iproute2/patch/0005-Don-t-use-empty-initializer-lists.patch
+++ /dev/null
@@ -1,2455 +0,0 @@
-From af3a2d4ed7e7bb4dcf9ec448c017d1e9824b3d1e Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Thu, 17 Feb 2022 22:51:00 -0800
-Subject: [PATCH] Don't use empty initializer lists
-
----
- bridge/mdb.c | 2 +-
- bridge/vlan.c | 6 +--
- devlink/devlink.c | 94 +++++++++++++++++++++++------------------------
- devlink/mnlg.c | 4 +-
- ip/ip6tunnel.c | 2 +-
- ip/ipaddress.c | 8 ++--
- ip/ipaddrlabel.c | 2 +-
- ip/iplink_can.c | 2 +-
- ip/ipmaddr.c | 2 +-
- ip/ipntable.c | 4 +-
- ip/iptunnel.c | 10 ++---
- ip/iptuntap.c | 2 +-
- ip/ipxfrm.c | 14 +++----
- ip/xfrm_policy.c | 14 +++----
- ip/xfrm_state.c | 12 +++---
- lib/bpf_legacy.c | 40 ++++++++++----------
- lib/libnetlink.c | 8 ++--
- lib/ll_map.c | 2 +-
- lib/rt_names.c | 3 +-
- misc/arpd.c | 4 +-
- misc/ss.c | 38 +++++++++----------
- rdma/dev.c | 2 +-
- rdma/link.c | 2 +-
- rdma/rdma.c | 2 +-
- rdma/res-cmid.c | 6 +--
- rdma/res-cq.c | 6 +--
- rdma/res-mr.c | 6 +--
- rdma/res-pd.c | 6 +--
- rdma/res-qp.c | 6 +--
- rdma/res.c | 4 +-
- rdma/utils.c | 2 +-
- tc/e_bpf.c | 4 +-
- tc/em_cmp.c | 2 +-
- tc/em_ipset.c | 2 +-
- tc/em_meta.c | 2 +-
- tc/em_nbyte.c | 2 +-
- tc/em_u32.c | 2 +-
- tc/f_bpf.c | 2 +-
- tc/f_fw.c | 2 +-
- tc/f_u32.c | 6 +--
- tc/m_bpf.c | 4 +-
- tc/m_connmark.c | 2 +-
- tc/m_csum.c | 2 +-
- tc/m_mirred.c | 4 +-
- tc/m_nat.c | 2 +-
- tc/m_pedit.c | 4 +-
- tc/m_simple.c | 2 +-
- tc/m_tunnel_key.c | 2 +-
- tc/m_vlan.c | 2 +-
- tc/q_cbs.c | 2 +-
- tc/q_choke.c | 2 +-
- tc/q_codel.c | 2 +-
- tc/q_fifo.c | 2 +-
- tc/q_fq_codel.c | 2 +-
- tc/q_gred.c | 6 +--
- tc/q_hfsc.c | 4 +-
- tc/q_htb.c | 2 +-
- tc/q_multiq.c | 2 +-
- tc/q_netem.c | 12 +++---
- tc/q_red.c | 2 +-
- tc/q_sfq.c | 2 +-
- tc/q_skbprio.c | 2 +-
- tc/q_tbf.c | 2 +-
- tc/tc_class.c | 18 ++++-----
- tc/tc_exec.c | 2 +-
- tc/tc_filter.c | 12 +++---
- tc/tc_qdisc.c | 10 ++---
- tc/tc_stab.c | 2 +-
- tc/tc_util.c | 6 +--
- tipc/bearer.c | 22 +++++------
- tipc/link.c | 34 ++++++++---------
- tipc/media.c | 10 ++---
- tipc/misc.c | 2 +-
- tipc/nametable.c | 6 +--
- tipc/node.c | 14 +++----
- tipc/socket.c | 10 ++---
- 76 files changed, 277 insertions(+), 278 deletions(-)
-
-diff --git a/bridge/mdb.c b/bridge/mdb.c
-index ba499e49..63302110 100644
---- a/bridge/mdb.c
-+++ b/bridge/mdb.c
-@@ -702,7 +702,7 @@ static int mdb_modify(int cmd, int flags, int argc, char **argv)
- char *d = NULL, *p = NULL, *grp = NULL, *src = NULL, *mode = NULL;
- char *dst_port = NULL, *vni = NULL, *src_vni = NULL, *via = NULL;
- char *src_list = NULL, *proto = NULL, *dst = NULL;
-- struct br_mdb_entry entry = {};
-+ struct br_mdb_entry entry = {0};
- bool set_attrs = false;
- short vid = 0;
-
-diff --git a/bridge/vlan.c b/bridge/vlan.c
-index a5035ab1..22e4554a 100644
---- a/bridge/vlan.c
-+++ b/bridge/vlan.c
-@@ -128,7 +128,7 @@ static int add_tunnel_info_range(struct nlmsghdr *n, int reqsize,
- static int add_vlan_info_range(struct nlmsghdr *n, int reqsize, __u16 vid_start,
- int16_t vid_end, __u16 flags)
- {
-- struct bridge_vlan_info vinfo = {};
-+ struct bridge_vlan_info vinfo = {0};
-
- vinfo.flags = flags;
- vinfo.vid = vid_start;
-@@ -167,7 +167,7 @@ static int vlan_modify(int cmd, int argc, char **argv)
- short vid = -1;
- short vid_end = -1;
- struct rtattr *afspec;
-- struct bridge_vlan_info vinfo = {};
-+ struct bridge_vlan_info vinfo = {0};
- bool tunnel_info_set = false;
- unsigned short flags = 0;
- __u32 tun_id_start = 0;
-@@ -273,7 +273,7 @@ static int vlan_option_set(int argc, char **argv)
- .n.nlmsg_type = RTM_NEWVLAN,
- .bvm.family = PF_BRIDGE,
- };
-- struct bridge_vlan_info vinfo = {};
-+ struct bridge_vlan_info vinfo = {0};
- struct rtattr *afspec;
- char *d = NULL;
- short vid = -1;
-diff --git a/devlink/devlink.c b/devlink/devlink.c
-index dbeb6e39..10803c1c 100644
---- a/devlink/devlink.c
-+++ b/devlink/devlink.c
-@@ -890,7 +890,7 @@ out:
-
- static int ifname_map_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
- struct dl *dl = data;
- const char *bus_name;
-@@ -3201,7 +3201,7 @@ static void pr_out_eswitch(struct dl *dl, struct nlattr **tb)
- static int cmd_dev_eswitch_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dl *dl = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3372,7 +3372,7 @@ static const struct param_val_conv param_val_conv[] = {
- static void pr_out_param_value(struct dl *dl, const char *nla_name,
- int nla_type, struct nlattr *nl)
- {
-- struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {0};
- struct nlattr *val_attr;
- const char *vstr;
- bool conv_exists;
-@@ -3455,7 +3455,7 @@ static void pr_out_param_value(struct dl *dl, const char *nla_name,
- static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array,
- bool is_port_param)
- {
-- struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {0};
- struct nlattr *param_value_attr;
- const char *nla_name;
- int nla_type;
-@@ -3507,7 +3507,7 @@ static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array,
- static int cmd_dev_param_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct dl *dl = data;
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3534,8 +3534,8 @@ struct param_ctx {
- static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {};
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {0};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct nlattr *param_value_attr;
- enum devlink_param_cmode cmode;
- struct param_ctx *ctx = data;
-@@ -3559,7 +3559,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
- nla_type = mnl_attr_get_u8(nla_param[DEVLINK_ATTR_PARAM_TYPE]);
- mnl_attr_for_each_nested(param_value_attr,
- nla_param[DEVLINK_ATTR_PARAM_VALUES_LIST]) {
-- struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {0};
- struct nlattr *val_attr;
-
- err = mnl_attr_parse_nested(param_value_attr,
-@@ -3602,7 +3602,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
-
- static int cmd_dev_param_set(struct dl *dl)
- {
-- struct param_ctx ctx = {};
-+ struct param_ctx ctx = {0};
- struct nlmsghdr *nlh;
- bool conv_exists;
- uint32_t val_u32 = 0;
-@@ -3774,7 +3774,7 @@ static int cmd_dev_param(struct dl *dl)
-
- static void pr_out_action_stats(struct dl *dl, struct nlattr *action_stats)
- {
-- struct nlattr *tb_stats_entry[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb_stats_entry[DEVLINK_ATTR_MAX + 1] = {0};
- struct nlattr *nla_reload_stats_entry, *nla_limit, *nla_value;
- enum devlink_reload_limit limit;
- uint32_t value;
-@@ -4015,7 +4015,7 @@ static void pr_out_versions_single(struct dl *dl, const struct nlmsghdr *nlh,
- struct nlattr *version;
-
- mnl_attr_for_each(version, nlh, sizeof(struct genlmsghdr)) {
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- const char *ver_value;
- const char *ver_name;
- int err;
-@@ -4105,7 +4105,7 @@ static void pr_out_info(struct dl *dl, const struct nlmsghdr *nlh,
- static int cmd_versions_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- bool has_versions, has_info;
- struct dl *dl = data;
-
-@@ -4958,7 +4958,7 @@ static void pr_out_port(struct dl *dl, struct nlattr **tb)
- static int cmd_port_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dl *dl = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -5896,7 +5896,7 @@ static void pr_out_sb(struct dl *dl, struct nlattr **tb)
- static int cmd_sb_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dl *dl = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -5974,7 +5974,7 @@ static void pr_out_sb_pool(struct dl *dl, struct nlattr **tb)
- static int cmd_sb_pool_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dl *dl = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -6061,7 +6061,7 @@ static void pr_out_sb_port_pool(struct dl *dl, struct nlattr **tb)
- static int cmd_sb_port_pool_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dl *dl = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -6165,7 +6165,7 @@ static void pr_out_sb_tc_bind(struct dl *dl, struct nlattr **tb)
- static int cmd_sb_tc_bind_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dl *dl = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -6456,7 +6456,7 @@ static void cmd_sb_occ_port_pool_process(struct occ_show *occ_show,
- static int cmd_sb_occ_port_pool_process_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct occ_show *occ_show = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -6507,7 +6507,7 @@ static void cmd_sb_occ_tc_pool_process(struct occ_show *occ_show,
- static int cmd_sb_occ_tc_pool_process_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct occ_show *occ_show = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -6815,7 +6815,7 @@ static void pr_out_trap_policer(struct dl *dl, struct nlattr **tb, bool array);
- static int cmd_mon_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dl *dl = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
- uint8_t cmd = genl->cmd;
-
-@@ -7358,7 +7358,7 @@ static void pr_out_dpipe_headers(struct dpipe_ctx *ctx,
-
- static int dpipe_header_field_get(struct nlattr *nl, struct dpipe_field *field)
- {
-- struct nlattr *nla_field[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_field[DEVLINK_ATTR_MAX + 1] = {0};
- const char *name;
- int err;
-
-@@ -7409,7 +7409,7 @@ static unsigned int dpipe_header_field_count_get(struct nlattr *nla_fields)
-
- static int dpipe_header_get(struct dpipe_ctx *ctx, struct nlattr *nl)
- {
-- struct nlattr *nla_header[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_header[DEVLINK_ATTR_MAX + 1] = {0};
- struct dpipe_header *header;
- unsigned int fields_count;
- const char *header_name;
-@@ -7465,7 +7465,7 @@ static int dpipe_headers_get(struct dpipe_ctx *ctx, struct nlattr **tb)
- static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dpipe_ctx *ctx = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
- int err;
-
-@@ -7487,7 +7487,7 @@ static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
- static int cmd_dpipe_headers_show(struct dl *dl)
- {
- struct nlmsghdr *nlh;
-- struct dpipe_ctx ctx = {};
-+ struct dpipe_ctx ctx = {0};
- uint16_t flags = NLM_F_REQUEST | NLM_F_ACK;
- int err;
-
-@@ -7584,7 +7584,7 @@ static void pr_out_dpipe_action(struct dpipe_action *action,
-
- static int dpipe_action_parse(struct dpipe_action *action, struct nlattr *nl)
- {
-- struct nlattr *nla_action[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_action[DEVLINK_ATTR_MAX + 1] = {0};
- int err;
-
- err = mnl_attr_parse_nested(nl, attr_cb, nla_action);
-@@ -7669,7 +7669,7 @@ static int dpipe_match_parse(struct dpipe_match *match,
- struct nlattr *nl)
-
- {
-- struct nlattr *nla_match[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_match[DEVLINK_ATTR_MAX + 1] = {0};
- int err;
-
- err = mnl_attr_parse_nested(nl, attr_cb, nla_match);
-@@ -7774,7 +7774,7 @@ resource_path_print(struct dl *dl, struct resources *resources,
-
- static int dpipe_table_show(struct dpipe_ctx *ctx, struct nlattr *nl)
- {
-- struct nlattr *nla_table[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_table[DEVLINK_ATTR_MAX + 1] = {0};
- struct dpipe_table *table;
- uint32_t resource_units;
- bool counters_enabled;
-@@ -7868,7 +7868,7 @@ err_table_show:
- static int cmd_dpipe_table_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dpipe_ctx *ctx = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -7886,8 +7886,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data);
- static int cmd_dpipe_table_show(struct dl *dl)
- {
- struct nlmsghdr *nlh;
-- struct dpipe_ctx dpipe_ctx = {};
-- struct resource_ctx resource_ctx = {};
-+ struct dpipe_ctx dpipe_ctx = {0};
-+ struct resource_ctx resource_ctx = {0};
- uint16_t flags = NLM_F_REQUEST;
- int err;
-
-@@ -8145,7 +8145,7 @@ static void pr_out_dpipe_entry_value(struct dpipe_ctx *ctx,
- static int dpipe_entry_match_value_show(struct dpipe_ctx *ctx,
- struct nlattr *nl)
- {
-- struct nlattr *nla_match_value[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_match_value[DEVLINK_ATTR_MAX + 1] = {0};
- struct dpipe_match match;
- int err;
-
-@@ -8176,7 +8176,7 @@ err_match_parse:
- static int dpipe_entry_action_value_show(struct dpipe_ctx *ctx,
- struct nlattr *nl)
- {
-- struct nlattr *nla_action_value[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_action_value[DEVLINK_ATTR_MAX + 1] = {0};
- struct dpipe_action action;
- int err;
-
-@@ -8232,7 +8232,7 @@ dpipe_tables_match_values_show(struct dpipe_ctx *ctx,
-
- static int dpipe_entry_show(struct dpipe_ctx *ctx, struct nlattr *nl)
- {
-- struct nlattr *nla_entry[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_entry[DEVLINK_ATTR_MAX + 1] = {0};
- uint32_t entry_index;
- uint64_t counter;
- int err;
-@@ -8296,7 +8296,7 @@ err_entry_show:
- static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct dpipe_ctx *ctx = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -8312,7 +8312,7 @@ static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
- static int cmd_dpipe_table_dump(struct dl *dl)
- {
- struct nlmsghdr *nlh;
-- struct dpipe_ctx ctx = {};
-+ struct dpipe_ctx ctx = {0};
- uint16_t flags = NLM_F_REQUEST;
- int err;
-
-@@ -8421,7 +8421,7 @@ static int
- resource_get(struct resource_ctx *ctx, struct resource *resource,
- struct resource *parent_resource, struct nlattr *nl)
- {
-- struct nlattr *nla_resource[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *nla_resource[DEVLINK_ATTR_MAX + 1] = {0};
- struct nlattr *nla_child_resource;
- struct nlattr *nla_resources;
- bool top = false;
-@@ -8569,7 +8569,7 @@ static int resources_get(struct resource_ctx *ctx, struct nlattr **tb)
- static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct resource_ctx *ctx = data;
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
- int err;
-
-@@ -8593,8 +8593,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
- static int cmd_resource_show(struct dl *dl)
- {
- struct nlmsghdr *nlh;
-- struct dpipe_ctx dpipe_ctx = {};
-- struct resource_ctx resource_ctx = {};
-+ struct dpipe_ctx dpipe_ctx = {0};
-+ struct resource_ctx resource_ctx = {0};
- int err;
-
- err = dl_argv_parse(dl, DL_OPT_HANDLE, 0);
-@@ -8689,7 +8689,7 @@ err_resource_lookup:
- static int cmd_resource_set(struct dl *dl)
- {
- struct nlmsghdr *nlh;
-- struct resource_ctx ctx = {};
-+ struct resource_ctx ctx = {0};
- int err;
-
- err = resource_ctx_init(&ctx, dl);
-@@ -8801,7 +8801,7 @@ static void pr_out_region_snapshots_id(struct dl *dl, struct nlattr **tb, int in
-
- static void pr_out_snapshots(struct dl *dl, struct nlattr **tb)
- {
-- struct nlattr *tb_snapshot[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb_snapshot[DEVLINK_ATTR_MAX + 1] = {0};
- struct nlattr *nla_sanpshot;
- int err, index = 0;
-
-@@ -8846,7 +8846,7 @@ static void pr_out_region(struct dl *dl, struct nlattr **tb)
- static int cmd_region_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct dl *dl = data;
-
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -8903,8 +8903,8 @@ static int cmd_region_read_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct nlattr *nla_entry, *nla_chunk_data, *nla_chunk_addr;
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *tb_field[DEVLINK_ATTR_MAX + 1] = {};
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb_field[DEVLINK_ATTR_MAX + 1] = {0};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct dl *dl = data;
- int err;
-
-@@ -9266,7 +9266,7 @@ static int cmd_fmsg_nest(struct fmsg_cb_data *fmsg_data, uint8_t nest_value,
- static int cmd_fmsg_object_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct fmsg_cb_data *fmsg_data = data;
- struct dl *dl = fmsg_data->dl;
- struct nlattr *nla_object;
-@@ -9461,7 +9461,7 @@ static void pr_out_dump_report_timestamp(struct dl *dl, const struct nlattr *att
- static void pr_out_health(struct dl *dl, struct nlattr **tb_health,
- bool print_device, bool print_port)
- {
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- enum devlink_health_reporter_state state;
- int err;
-
-@@ -9532,7 +9532,7 @@ struct health_ctx {
- static int cmd_health_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
- struct health_ctx *ctx = data;
- struct dl *dl = ctx->dl;
-
-diff --git a/devlink/mnlg.c b/devlink/mnlg.c
-index d049eb5a..c9782a7b 100644
---- a/devlink/mnlg.c
-+++ b/devlink/mnlg.c
-@@ -58,7 +58,7 @@ static void parse_genl_mc_grps(struct nlattr *nested,
- const char *name;
-
- mnl_attr_for_each_nested(pos, nested) {
-- struct nlattr *tb[CTRL_ATTR_MCAST_GRP_MAX + 1] = {};
-+ struct nlattr *tb[CTRL_ATTR_MCAST_GRP_MAX + 1] = {0};
-
- mnl_attr_parse_nested(pos, parse_mc_grps_cb, tb);
- if (!tb[CTRL_ATTR_MCAST_GRP_NAME] ||
-@@ -92,7 +92,7 @@ static int get_group_id_attr_cb(const struct nlattr *attr, void *data)
- static int get_group_id_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct group_info *group_info = data;
-- struct nlattr *tb[CTRL_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[CTRL_ATTR_MAX + 1] = {0};
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-
- mnl_attr_parse(nlh, sizeof(*genl), get_group_id_attr_cb, tb);
-diff --git a/ip/ip6tunnel.c b/ip/ip6tunnel.c
-index 5e55e3ea..f74eb9b1 100644
---- a/ip/ip6tunnel.c
-+++ b/ip/ip6tunnel.c
-@@ -273,7 +273,7 @@ static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm2 *p)
- if (get_ifname(p->name, *argv))
- invarg("\"name\" not a valid ifname", *argv);
- if (cmd == SIOCCHGTUNNEL && count == 0) {
-- struct ip6_tnl_parm2 old_p = {};
-+ struct ip6_tnl_parm2 old_p = {0};
-
- if (tnl_get_ioctl(*argv, &old_p))
- return -1;
-diff --git a/ip/ipaddress.c b/ip/ipaddress.c
-index e536912f..9f062217 100644
---- a/ip/ipaddress.c
-+++ b/ip/ipaddress.c
-@@ -164,7 +164,7 @@ static void print_queuelen(FILE *f, struct rtattr *tb[IFLA_MAX + 1])
- if (tb[IFLA_TXQLEN])
- qlen = rta_getattr_u32(tb[IFLA_TXQLEN]);
- else {
-- struct ifreq ifr = {};
-+ struct ifreq ifr = {0};
- int s = socket(AF_INET, SOCK_STREAM, 0);
-
- if (s < 0)
-@@ -352,7 +352,7 @@ static void print_vfinfo(FILE *fp, struct ifinfomsg *ifi, struct rtattr *vfinfo)
- struct ifla_vf_mac *vf_mac;
- struct ifla_vf_broadcast *vf_broadcast;
- struct ifla_vf_tx_rate *vf_tx_rate;
-- struct rtattr *vf[IFLA_VF_MAX + 1] = {};
-+ struct rtattr *vf[IFLA_VF_MAX + 1] = {0};
-
- SPRINT_BUF(b1);
-
-@@ -2444,7 +2444,7 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv)
- char *lcl_arg = NULL;
- char *valid_lftp = NULL;
- char *preferred_lftp = NULL;
-- inet_prefix lcl = {};
-+ inet_prefix lcl = {0};
- inet_prefix peer;
- int local_len = 0;
- int peer_len = 0;
-@@ -2621,7 +2621,7 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv)
- return nodev(d);
-
- if (valid_lftp || preferred_lftp) {
-- struct ifa_cacheinfo cinfo = {};
-+ struct ifa_cacheinfo cinfo = {0};
-
- if (!valid_lft) {
- fprintf(stderr, "valid_lft is zero\n");
-diff --git a/ip/ipaddrlabel.c b/ip/ipaddrlabel.c
-index b045827a..1d398524 100644
---- a/ip/ipaddrlabel.c
-+++ b/ip/ipaddrlabel.c
-@@ -135,7 +135,7 @@ static int ipaddrlabel_modify(int cmd, int argc, char **argv)
- .ifal.ifal_family = preferred_family,
- };
-
-- inet_prefix prefix = {};
-+ inet_prefix prefix = {0};
- uint32_t label = 0xffffffffUL;
- char *p = NULL;
- char *l = NULL;
-diff --git a/ip/iplink_can.c b/ip/iplink_can.c
-index f2967db5..07309495 100644
---- a/ip/iplink_can.c
-+++ b/ip/iplink_can.c
-@@ -126,7 +126,7 @@ static void print_ctrlmode(enum output_type t, __u32 flags, const char* key)
- static int can_parse_opt(struct link_util *lu, int argc, char **argv,
- struct nlmsghdr *n)
- {
-- struct can_bittiming bt = {}, dbt = {};
-+ struct can_bittiming bt = {0}, dbt = {0};
- struct can_ctrlmode cm = { 0 };
- struct rtattr *tdc;
- __u32 tdcv = -1, tdco = -1, tdcf = -1;
-diff --git a/ip/ipmaddr.c b/ip/ipmaddr.c
-index 3e7afa91..c059e2c7 100644
---- a/ip/ipmaddr.c
-+++ b/ip/ipmaddr.c
-@@ -302,7 +302,7 @@ static int multiaddr_list(int argc, char **argv)
-
- static int multiaddr_modify(int cmd, int argc, char **argv)
- {
-- struct ifreq ifr = {};
-+ struct ifreq ifr = {0};
- int family;
- int fd, len;
-
-diff --git a/ip/ipntable.c b/ip/ipntable.c
-index 4ce02a31..11794ce8 100644
---- a/ip/ipntable.c
-+++ b/ip/ipntable.c
-@@ -62,7 +62,7 @@ static int ipntable_modify(int cmd, int flags, int argc, char **argv)
- char *namep = NULL;
- char *threshsp = NULL;
- char *gc_intp = NULL;
-- char parms_buf[1024] = {};
-+ char parms_buf[1024] = {0};
- struct rtattr *parms_rta = (struct rtattr *)parms_buf;
- int parms_change = 0;
-
-@@ -298,7 +298,7 @@ static int ipntable_modify(int cmd, int flags, int argc, char **argv)
- static const char *ntable_strtime_delta(__u32 msec)
- {
- static char str[32];
-- struct timeval now = {};
-+ struct timeval now = {0};
- time_t t;
- struct tm *tp;
-
-diff --git a/ip/iptunnel.c b/ip/iptunnel.c
-index b6da1459..46c5f894 100644
---- a/ip/iptunnel.c
-+++ b/ip/iptunnel.c
-@@ -176,7 +176,7 @@ static int parse_args(int argc, char **argv, int cmd, struct ip_tunnel_parm *p)
- union {
- struct ip_tunnel_parm ip_tnl;
- struct ip6_tnl_parm2 ip6_tnl;
-- } old_p = {};
-+ } old_p = {0};
-
- if (tnl_get_ioctl(*argv, &old_p))
- return -1;
-@@ -294,7 +294,7 @@ static int do_del(int argc, char **argv)
- static void print_tunnel(const void *t)
- {
- const struct ip_tunnel_parm *p = t;
-- struct ip_tunnel_6rd ip6rd = {};
-+ struct ip_tunnel_6rd ip6rd = {0};
- SPRINT_BUF(b1);
-
- /* Do not use format_host() for local addr,
-@@ -316,7 +316,7 @@ static void print_tunnel(const void *t)
- : "any");
-
- if (p->iph.protocol == IPPROTO_IPV6 && (p->i_flags & SIT_ISATAP)) {
-- struct ip_tunnel_prl prl[16] = {};
-+ struct ip_tunnel_prl prl[16] = {0};
- int i;
-
- prl[0].datalen = sizeof(prl) - sizeof(prl[0]);
-@@ -439,7 +439,7 @@ static int do_show(int argc, char **argv)
-
- static int do_prl(int argc, char **argv)
- {
-- struct ip_tunnel_prl p = {};
-+ struct ip_tunnel_prl p = {0};
- int count = 0;
- int cmd = 0;
- const char *medium = NULL;
-@@ -488,7 +488,7 @@ static int do_prl(int argc, char **argv)
-
- static int do_6rd(int argc, char **argv)
- {
-- struct ip_tunnel_6rd ip6rd = {};
-+ struct ip_tunnel_6rd ip6rd = {0};
- int cmd = 0;
- const char *medium = NULL;
- inet_prefix prefix;
-diff --git a/ip/iptuntap.c b/ip/iptuntap.c
-index 0b63f53d..3cf55055 100644
---- a/ip/iptuntap.c
-+++ b/ip/iptuntap.c
-@@ -257,7 +257,7 @@ static void print_flags(long flags)
-
- static void show_processes(const char *name)
- {
-- glob_t globbuf = { };
-+ glob_t globbuf = {0};
- char **fd_path;
- int err;
-
-diff --git a/ip/ipxfrm.c b/ip/ipxfrm.c
-index c3a5986f..7b78712f 100644
---- a/ip/ipxfrm.c
-+++ b/ip/ipxfrm.c
-@@ -908,7 +908,7 @@ void xfrm_xfrma_print(struct rtattr *tb[], __u16 family, FILE *fp,
-
- static int xfrm_selector_iszero(struct xfrm_selector *s)
- {
-- struct xfrm_selector s0 = {};
-+ struct xfrm_selector s0 = {0};
-
- return (memcmp(&s0, s, sizeof(s0)) == 0);
- }
-@@ -930,7 +930,7 @@ void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo,
- struct rtattr *tb[], FILE *fp, const char *prefix,
- const char *title, bool nokeys)
- {
-- char buf[STRBUF_SIZE] = {};
-+ char buf[STRBUF_SIZE] = {0};
- int force_spi = xfrm_xfrmproto_is_ipsec(xsinfo->id.proto);
-
- xfrm_id_info_print(&xsinfo->saddr, &xsinfo->id, xsinfo->mode,
-@@ -1001,7 +1001,7 @@ void xfrm_policy_info_print(struct xfrm_userpolicy_info *xpinfo,
- struct rtattr *tb[], FILE *fp, const char *prefix,
- const char *title)
- {
-- char buf[STRBUF_SIZE] = {};
-+ char buf[STRBUF_SIZE] = {0};
-
- xfrm_selector_print(&xpinfo->sel, preferred_family, fp, title);
-
-@@ -1091,8 +1091,8 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family,
- {
- int argc = *argcp;
- char **argv = *argvp;
-- inet_prefix dst = {};
-- inet_prefix src = {};
-+ inet_prefix dst = {0};
-+ inet_prefix src = {0};
-
- while (1) {
- if (strcmp(*argv, "src") == 0) {
-@@ -1399,8 +1399,8 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp)
- {
- int argc = *argcp;
- char **argv = *argvp;
-- inet_prefix dst = {};
-- inet_prefix src = {};
-+ inet_prefix dst = {0};
-+ inet_prefix src = {0};
- char *upspecp = NULL;
-
- while (1) {
-diff --git a/ip/xfrm_policy.c b/ip/xfrm_policy.c
-index 8687ced3..161cec66 100644
---- a/ip/xfrm_policy.c
-+++ b/ip/xfrm_policy.c
-@@ -244,15 +244,15 @@ static int xfrm_policy_modify(int cmd, unsigned int flags, int argc, char **argv
- char *selp = NULL;
- char *ptypep = NULL;
- char *sctxp = NULL;
-- struct xfrm_userpolicy_type upt = {};
-- struct xfrm_user_offload xuo = {};
-- char tmpls_buf[XFRM_TMPLS_BUF_SIZE] = {};
-+ struct xfrm_userpolicy_type upt = {0};
-+ struct xfrm_user_offload xuo = {0};
-+ char tmpls_buf[XFRM_TMPLS_BUF_SIZE] = {0};
- int tmpls_len = 0;
- struct xfrm_mark mark = {0, 0};
- struct {
- struct xfrm_user_sec_ctx sctx;
- char str[CTX_BUF_SIZE];
-- } ctx = {};
-+ } ctx = {0};
- bool is_if_id_set = false;
- unsigned int ifindex = 0;
- bool is_offload = false;
-@@ -589,12 +589,12 @@ static int xfrm_policy_get_or_delete(int argc, char **argv, int delete,
- char *indexp = NULL;
- char *ptypep = NULL;
- char *sctxp = NULL;
-- struct xfrm_userpolicy_type upt = {};
-+ struct xfrm_userpolicy_type upt = {0};
- struct xfrm_mark mark = {0, 0};
- struct {
- struct xfrm_user_sec_ctx sctx;
- char str[CTX_BUF_SIZE];
-- } ctx = {};
-+ } ctx = {0};
- bool is_if_id_set = false;
- __u32 if_id = 0;
-
-@@ -1276,7 +1276,7 @@ static int xfrm_policy_flush(int argc, char **argv)
- .n.nlmsg_type = XFRM_MSG_FLUSHPOLICY,
- };
- char *ptypep = NULL;
-- struct xfrm_userpolicy_type upt = {};
-+ struct xfrm_userpolicy_type upt = {0};
-
- while (argc > 0) {
- if (strcmp(*argv, "ptype") == 0) {
-diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c
-index 9be65b2f..6e141335 100644
---- a/ip/xfrm_state.c
-+++ b/ip/xfrm_state.c
-@@ -286,9 +286,9 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv)
- .xsinfo.lft.soft_packet_limit = XFRM_INF,
- .xsinfo.lft.hard_packet_limit = XFRM_INF,
- };
-- struct xfrm_replay_state replay = {};
-- struct xfrm_replay_state_esn replay_esn = {};
-- struct xfrm_user_offload xuo = {};
-+ struct xfrm_replay_state replay = {0};
-+ struct xfrm_replay_state_esn replay_esn = {0};
-+ struct xfrm_user_offload xuo = {0};
- unsigned int ifindex = 0;
- __u8 dir = 0;
- bool is_offload = false, is_packet_offload = false;
-@@ -306,7 +306,7 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv)
- struct {
- struct xfrm_user_sec_ctx sctx;
- char str[CTX_BUF_SIZE];
-- } ctx = {};
-+ } ctx = {0};
- struct xfrm_mark output_mark = {0, 0};
- bool is_if_id_set = false;
- __u32 if_id = 0;
-@@ -376,7 +376,7 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv)
- (void *)&encap, sizeof(encap));
- } else if (strcmp(*argv, "coa") == 0) {
- inet_prefix coa;
-- xfrm_address_t xcoa = {};
-+ xfrm_address_t xcoa = {0};
-
- if (coap)
- duparg("coa", *argv);
-@@ -481,7 +481,7 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv)
- struct xfrm_algo_auth auth;
- } u;
- char buf[XFRM_ALGO_KEY_BUF_SIZE];
-- } alg = {};
-+ } alg = {0};
- int len;
- __u32 icvlen, trunclen;
- char *name;
-diff --git a/lib/bpf_legacy.c b/lib/bpf_legacy.c
-index c8da4a3e..253e8240 100644
---- a/lib/bpf_legacy.c
-+++ b/lib/bpf_legacy.c
-@@ -133,7 +133,7 @@ static inline __u64 bpf_ptr_to_u64(const void *ptr)
- static int bpf_map_update(int fd, const void *key, const void *value,
- uint64_t flags)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
-
- attr.map_fd = fd;
- attr.key = bpf_ptr_to_u64(key);
-@@ -145,7 +145,7 @@ static int bpf_map_update(int fd, const void *key, const void *value,
-
- static int bpf_prog_fd_by_id(uint32_t id)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
-
- attr.prog_id = id;
-
-@@ -155,7 +155,7 @@ static int bpf_prog_fd_by_id(uint32_t id)
- static int bpf_prog_info_by_fd(int fd, struct bpf_prog_info *info,
- uint32_t *info_len)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
- int ret;
-
- attr.info.bpf_fd = fd;
-@@ -172,7 +172,7 @@ static int bpf_prog_info_by_fd(int fd, struct bpf_prog_info *info,
-
- int bpf_dump_prog_info(FILE *f, uint32_t id)
- {
-- struct bpf_prog_info info = {};
-+ struct bpf_prog_info info = {0};
- uint32_t len = sizeof(info);
- int fd, ret, dump_ok = 0;
- SPRINT_BUF(tmp);
-@@ -452,7 +452,7 @@ static int bpf_map_selfcheck_pinned(int fd, const struct bpf_elf_map *map,
- struct bpf_map_ext *ext, int length,
- enum bpf_prog_type type)
- {
-- struct bpf_elf_map tmp, zero = {};
-+ struct bpf_elf_map tmp, zero = {0};
- int ret;
-
- ret = bpf_derive_elf_map_from_fdinfo(fd, &tmp, ext);
-@@ -694,7 +694,7 @@ static int bpf_gen_slave(const char *base, const char *name,
- {
- char bpf_lnk_dir[PATH_MAX + NAME_MAX + 1];
- char bpf_sub_dir[PATH_MAX + NAME_MAX];
-- struct stat sb = {};
-+ struct stat sb = {0};
- int ret;
-
- snprintf(bpf_lnk_dir, sizeof(bpf_lnk_dir), "%s%s/", base, link);
-@@ -801,7 +801,7 @@ out:
-
- static int bpf_obj_get(const char *pathname, enum bpf_prog_type type)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
- char tmp[PATH_MAX];
-
- if (strlen(pathname) > 2 && pathname[0] == 'm' &&
-@@ -982,7 +982,7 @@ int bpf_load_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops,
-
- int bpf_parse_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops)
- {
-- bool opt_tbl[BPF_MODE_MAX] = {};
-+ bool opt_tbl[BPF_MODE_MAX] = {0};
-
- if (ops->cbpf_cb) {
- opt_tbl[CBPF_BYTECODE] = true;
-@@ -1025,7 +1025,7 @@ int bpf_graft_map(const char *map_path, uint32_t *key, int argc, char **argv)
- .argc = argc,
- .argv = argv,
- };
-- struct bpf_map_ext ext = {};
-+ struct bpf_map_ext ext = {0};
- int ret, prog_fd, map_fd;
- uint32_t map_key;
-
-@@ -1078,7 +1078,7 @@ out_prog:
-
- int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
-
- attr.target_fd = target_fd;
- attr.attach_bpf_fd = prog_fd;
-@@ -1089,7 +1089,7 @@ int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
-
- int bpf_prog_detach_fd(int target_fd, enum bpf_attach_type type)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
-
- attr.target_fd = target_fd;
- attr.attach_type = type;
-@@ -1101,7 +1101,7 @@ int bpf_prog_load_dev(enum bpf_prog_type type, const struct bpf_insn *insns,
- size_t size_insns, const char *license, __u32 ifindex,
- char *log, size_t size_log, bool verbose)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
-
- attr.prog_type = type;
- attr.insns = bpf_ptr_to_u64(insns);
-@@ -1265,7 +1265,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
- uint32_t ifindex, uint32_t btf_id_key,
- uint32_t btf_id_val)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
-
- attr.map_type = type;
- attr.key_size = size_key;
-@@ -1284,7 +1284,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
- static int bpf_btf_load(void *btf, size_t size_btf,
- char *log, size_t size_log)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
-
- attr.btf = bpf_ptr_to_u64(btf);
- attr.btf_size = size_btf;
-@@ -1300,7 +1300,7 @@ static int bpf_btf_load(void *btf, size_t size_btf,
-
- static int bpf_obj_pin(int fd, const char *pathname)
- {
-- union bpf_attr attr = {};
-+ union bpf_attr attr = {0};
-
- attr.pathname = bpf_ptr_to_u64(pathname);
- attr.bpf_fd = fd;
-@@ -1985,7 +1985,7 @@ static int bpf_map_verify_all_offs(struct bpf_elf_ctx *ctx, int end)
-
- static int bpf_fetch_maps_end(struct bpf_elf_ctx *ctx)
- {
-- struct bpf_elf_map fixup[ARRAY_SIZE(ctx->maps)] = {};
-+ struct bpf_elf_map fixup[ARRAY_SIZE(ctx->maps)] = {0};
- int i, sym_num = bpf_map_num_sym(ctx);
- __u8 *buff;
-
-@@ -2491,7 +2491,7 @@ static int bpf_fetch_prog_relo(struct bpf_elf_ctx *ctx, const char *section,
- int ret, idx, i, fd = -1;
-
- for (i = 1; i < ctx->elf_hdr.e_shnum; i++) {
-- struct bpf_relo_props props = {};
-+ struct bpf_relo_props props = {0};
-
- ret = bpf_fill_section_data(ctx, i, &data_relo);
- if (ret < 0 || data_relo.sec_hdr.sh_type != SHT_REL)
-@@ -2666,7 +2666,7 @@ static int bpf_fill_prog_arrays(struct bpf_elf_ctx *ctx)
- ret = bpf_map_update(ctx->map_fds[idx], &key_id,
- &fd, BPF_ANY);
- if (ret < 0) {
-- struct bpf_jited_aux aux = {};
-+ struct bpf_jited_aux aux = {0};
-
- ret = -errno;
- if (errno == E2BIG) {
-@@ -2757,7 +2757,7 @@ static bool bpf_pinning_reserved(uint32_t pinning)
- static int bpf_hash_init(struct bpf_elf_ctx *ctx, const char *db_file)
- {
- struct bpf_hash_entry *entry;
-- char subpath[PATH_MAX] = {};
-+ char subpath[PATH_MAX] = {0};
- uint32_t pinning;
- FILE *fp;
- int ret;
-@@ -2857,7 +2857,7 @@ static void bpf_get_cfg(struct bpf_elf_ctx *ctx)
-
- fd = open(path_jit, O_RDONLY);
- if (fd >= 0) {
-- char tmp[16] = {};
-+ char tmp[16] = {0};
-
- if (read(fd, tmp, sizeof(tmp)) > 0)
- ctx->cfg.jit_enabled = atoi(tmp);
-diff --git a/lib/libnetlink.c b/lib/libnetlink.c
-index 80adabf4..db613e8d 100644
---- a/lib/libnetlink.c
-+++ b/lib/libnetlink.c
-@@ -79,7 +79,7 @@ static void print_ext_ack_msg(bool is_err, const char *msg)
- /* dump netlink extended ack error message */
- int nl_dump_ext_ack(const struct nlmsghdr *nlh, nl_ext_ack_fn_t errfn)
- {
-- struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {0};
- const struct nlmsgerr *err = mnl_nlmsg_get_payload(nlh);
- const struct nlmsghdr *err_nlh = NULL;
- unsigned int hlen = sizeof(*err);
-@@ -126,7 +126,7 @@ int nl_dump_ext_ack(const struct nlmsghdr *nlh, nl_ext_ack_fn_t errfn)
-
- int nl_dump_ext_ack_done(const struct nlmsghdr *nlh, unsigned int offset, int error)
- {
-- struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {};
-+ struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {0};
- const char *msg = NULL;
-
- if (mnl_attr_parse(nlh, offset, err_attr_cb, tb) != MNL_CB_OK)
-@@ -959,7 +959,7 @@ int rtnl_dump_filter_nc(struct rtnl_handle *rth,
- .filter = filter, .arg1 = arg1,
- .nc_flags = nc_flags,
- },
-- { },
-+ {0},
- };
-
- return rtnl_dump_filter_l(rth, a);
-@@ -978,7 +978,7 @@ int rtnl_dump_filter_errhndlr_nc(struct rtnl_handle *rth,
- .errhndlr = errhndlr, .arg2 = arg2,
- .nc_flags = nc_flags,
- },
-- { },
-+ {0},
- };
-
- return rtnl_dump_filter_l(rth, a);
-diff --git a/lib/ll_map.c b/lib/ll_map.c
-index 8970c20f..7fe5f0bc 100644
---- a/lib/ll_map.c
-+++ b/lib/ll_map.c
-@@ -274,7 +274,7 @@ static int ll_link_get(const char *name, int index)
- .ifm.ifi_index = index,
- };
- __u32 filt_mask = RTEXT_FILTER_VF | RTEXT_FILTER_SKIP_STATS;
-- struct rtnl_handle rth = {};
-+ struct rtnl_handle rth = {0};
- struct nlmsghdr *answer;
- int rc = 0;
-
-diff --git a/lib/rt_names.c b/lib/rt_names.c
-index dafef3f1..c3b121fe 100644
---- a/lib/rt_names.c
-+++ b/lib/rt_names.c
-@@ -825,8 +825,7 @@ int nl_proto_a2n(__u32 *id, const char *arg)
- }
-
- #define PROTODOWN_REASON_NUM_BITS 32
--static char *protodown_reason_tab[PROTODOWN_REASON_NUM_BITS] = {
--};
-+static char *protodown_reason_tab[PROTODOWN_REASON_NUM_BITS];
-
- static int protodown_reason_init;
-
-diff --git a/misc/arpd.c b/misc/arpd.c
-index 1ef837c6..71524bd4 100644
---- a/misc/arpd.c
-+++ b/misc/arpd.c
-@@ -431,7 +431,7 @@ static void get_kern_msg(void)
- {
- int status;
- struct nlmsghdr *h;
-- struct sockaddr_nl nladdr = {};
-+ struct sockaddr_nl nladdr = {0};
- struct iovec iov;
- char buf[8192];
- struct msghdr msg = {
-@@ -655,7 +655,7 @@ int main(int argc, char **argv)
-
- if (ifnum) {
- int i;
-- struct ifreq ifr = {};
-+ struct ifreq ifr = {0};
-
- for (i = 0; i < ifnum; i++) {
- if (get_ifname(ifr.ifr_name, ifnames[i]))
-diff --git a/misc/ss.c b/misc/ss.c
-index fb560a55..e5d97d95 100644
---- a/misc/ss.c
-+++ b/misc/ss.c
-@@ -2760,7 +2760,7 @@ static void sctp_timer_print(struct tcpstat *s)
- static int tcp_show_line(char *line, const struct filter *f, int family)
- {
- int rto = 0, ato = 0;
-- struct tcpstat s = {};
-+ struct tcpstat s = {0};
- char *loc, *rem, *data;
- char opt[256];
- int n;
-@@ -3041,7 +3041,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
- struct rtattr *tb[])
- {
- double rtt = 0;
-- struct tcpstat s = {};
-+ struct tcpstat s = {0};
-
- s.ss.state = r->idiag_state;
-
-@@ -3414,7 +3414,7 @@ static int inet_show_sock(struct nlmsghdr *nlh,
- inet_stats_print(s, v6only);
-
- if (show_options) {
-- struct tcpstat t = {};
-+ struct tcpstat t = {0};
-
- t.timer = r->idiag_timer;
- t.timeout = r->idiag_expires;
-@@ -3691,7 +3691,7 @@ static int show_one_inet_sock(struct nlmsghdr *h, void *arg)
- int err;
- struct inet_diag_arg *diag_arg = arg;
- struct inet_diag_msg *r = NLMSG_DATA(h);
-- struct sockstat s = {};
-+ struct sockstat s = {0};
-
- if (!(diag_arg->f->families & FAMILY_MASK(r->idiag_family)))
- return 0;
-@@ -3788,7 +3788,7 @@ static int tcp_show_netlink_file(struct filter *f)
- int err2;
- size_t status, nitems;
- struct nlmsghdr *h = (struct nlmsghdr *)buf;
-- struct sockstat s = {};
-+ struct sockstat s = {0};
-
- status = fread(buf, 1, sizeof(*h), fp);
- if (status != sizeof(*h)) {
-@@ -3945,7 +3945,7 @@ static int sctp_show(struct filter *f)
-
- static int dgram_show_line(char *line, const struct filter *f, int family)
- {
-- struct sockstat s = {};
-+ struct sockstat s = {0};
- char *loc, *rem, *data;
- char opt[256];
- int n;
-@@ -4085,7 +4085,7 @@ static bool unix_type_skip(struct sockstat *s, struct filter *f)
-
- static void unix_stats_print(struct sockstat *s, struct filter *f)
- {
-- char port_name[30] = {};
-+ char port_name[30] = {0};
-
- sock_state_print(s);
-
-@@ -4398,7 +4398,7 @@ static int packet_show_sock(struct nlmsghdr *nlh, void *arg)
- struct packet_diag_info *pinfo = NULL;
- struct packet_diag_ring *ring_rx = NULL, *ring_tx = NULL;
- struct rtattr *tb[PACKET_DIAG_MAX+1];
-- struct sockstat stat = {};
-+ struct sockstat stat = {0};
- uint32_t fanout = 0;
- bool has_fanout = false;
-
-@@ -4547,7 +4547,7 @@ static int packet_show_netlink(struct filter *f)
- static int packet_show_line(char *buf, const struct filter *f, int fam)
- {
- unsigned long long sk;
-- struct sockstat stat = {};
-+ struct sockstat stat = {0};
- int type, prot, iface, state, rq, uid, ino;
-
- sscanf(buf, "%llx %*d %d %x %d %d %u %u %u",
-@@ -4687,7 +4687,7 @@ static int xdp_show_sock(struct nlmsghdr *nlh, void *arg)
- struct xdp_diag_umem *umem = NULL;
- struct xdp_diag_stats *stats = NULL;
- const struct filter *f = arg;
-- struct sockstat stat = {};
-+ struct sockstat stat = {0};
-
- parse_rtattr(tb, XDP_DIAG_MAX, (struct rtattr *)(msg + 1),
- nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*msg)));
-@@ -4772,9 +4772,9 @@ static int netlink_show_one(struct filter *f,
- .remote.family = AF_NETLINK,
- };
-
-- SPRINT_BUF(prot_buf) = {};
-+ SPRINT_BUF(prot_buf) = {0};
- const char *prot_name;
-- char procname[64] = {};
-+ char procname[64] = {0};
-
- if (f->f) {
- st.rport = -1;
-@@ -5021,8 +5021,8 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
- uint32_t node = rta_getattr_u32(net_addr);
- uint32_t identity = rta_getattr_u32(id);
-
-- SPRINT_BUF(addr) = {};
-- SPRINT_BUF(port) = {};
-+ SPRINT_BUF(addr) = {0};
-+ SPRINT_BUF(port) = {0};
-
- sprintf(addr, "%u", node);
- sprintf(port, "%u", identity);
-@@ -5032,12 +5032,12 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
-
- static int tipc_show_sock(struct nlmsghdr *nlh, void *arg)
- {
-- struct rtattr *stat[TIPC_NLA_SOCK_STAT_MAX + 1] = {};
-- struct rtattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {};
-- struct rtattr *con[TIPC_NLA_CON_MAX + 1] = {};
-- struct rtattr *info[TIPC_NLA_MAX + 1] = {};
-+ struct rtattr *stat[TIPC_NLA_SOCK_STAT_MAX + 1] = {0};
-+ struct rtattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {0};
-+ struct rtattr *con[TIPC_NLA_CON_MAX + 1] = {0};
-+ struct rtattr *info[TIPC_NLA_MAX + 1] = {0};
- struct rtattr *msg_ref;
-- struct sockstat ss = {};
-+ struct sockstat ss = {0};
-
- parse_rtattr(info, TIPC_NLA_MAX, NLMSG_DATA(nlh),
- NLMSG_PAYLOAD(nlh, 0));
-diff --git a/rdma/dev.c b/rdma/dev.c
-index f495b713..dfc886bb 100644
---- a/rdma/dev.c
-+++ b/rdma/dev.c
-@@ -201,7 +201,7 @@ static void dev_print_dev_proto(struct nlattr **tb)
-
- static int dev_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct rd *rd = data;
- const char *name;
- uint32_t idx;
-diff --git a/rdma/link.c b/rdma/link.c
-index 85318173..9b3125d6 100644
---- a/rdma/link.c
-+++ b/rdma/link.c
-@@ -220,7 +220,7 @@ static void link_print_netdev(const struct rd * rd, struct nlattr **tb)
-
- static int link_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct rd *rd = data;
- uint32_t port, idx;
- const char *name;
-diff --git a/rdma/rdma.c b/rdma/rdma.c
-index 131c6b2a..90bf3ed5 100644
---- a/rdma/rdma.c
-+++ b/rdma/rdma.c
-@@ -103,7 +103,7 @@ int main(int argc, char **argv)
- bool show_raw = false;
- bool force = false;
- bool oneline = false;
-- struct rd rd = {};
-+ struct rd rd = {0};
- char *filename;
- int opt;
- int err;
-diff --git a/rdma/res-cmid.c b/rdma/res-cmid.c
-index 17a89cc4..7d348d45 100644
---- a/rdma/res-cmid.c
-+++ b/rdma/res-cmid.c
-@@ -202,7 +202,7 @@ out:
-
- int res_cm_id_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct rd *rd = data;
- const char *name;
- int idx;
-@@ -219,7 +219,7 @@ int res_cm_id_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
-
- int res_cm_id_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct nlattr *nla_table, *nla_entry;
- struct rd *rd = data;
- int ret = MNL_CB_OK;
-@@ -236,7 +236,7 @@ int res_cm_id_parse_cb(const struct nlmsghdr *nlh, void *data)
- nla_table = tb[RDMA_NLDEV_ATTR_RES_CM_ID];
-
- mnl_attr_for_each_nested(nla_entry, nla_table) {
-- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
-
- ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
- if (ret != MNL_CB_OK)
-diff --git a/rdma/res-cq.c b/rdma/res-cq.c
-index 0cab3fe0..a8ee00dc 100644
---- a/rdma/res-cq.c
-+++ b/rdma/res-cq.c
-@@ -130,7 +130,7 @@ out:
-
- int res_cq_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct rd *rd = data;
- const char *name;
- uint32_t idx;
-@@ -148,7 +148,7 @@ int res_cq_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
-
- int res_cq_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct nlattr *nla_table, *nla_entry;
- struct rd *rd = data;
- int ret = MNL_CB_OK;
-@@ -165,7 +165,7 @@ int res_cq_parse_cb(const struct nlmsghdr *nlh, void *data)
- nla_table = tb[RDMA_NLDEV_ATTR_RES_CQ];
-
- mnl_attr_for_each_nested(nla_entry, nla_table) {
-- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
-
- ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
- if (ret != MNL_CB_OK)
-diff --git a/rdma/res-mr.c b/rdma/res-mr.c
-index f6c2534a..024f5994 100644
---- a/rdma/res-mr.c
-+++ b/rdma/res-mr.c
-@@ -96,7 +96,7 @@ out:
-
- int res_mr_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct rd *rd = data;
- const char *name;
- uint32_t idx;
-@@ -114,7 +114,7 @@ int res_mr_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
-
- int res_mr_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct nlattr *nla_table, *nla_entry;
- struct rd *rd = data;
- int ret = MNL_CB_OK;
-@@ -131,7 +131,7 @@ int res_mr_parse_cb(const struct nlmsghdr *nlh, void *data)
- nla_table = tb[RDMA_NLDEV_ATTR_RES_MR];
-
- mnl_attr_for_each_nested(nla_entry, nla_table) {
-- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
-
- ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
- if (ret != MNL_CB_OK)
-diff --git a/rdma/res-pd.c b/rdma/res-pd.c
-index 8b9f7aa6..e45b1d0d 100644
---- a/rdma/res-pd.c
-+++ b/rdma/res-pd.c
-@@ -82,7 +82,7 @@ out:
-
- int res_pd_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct rd *rd = data;
- const char *name;
- uint32_t idx;
-@@ -99,7 +99,7 @@ int res_pd_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
-
- int res_pd_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct nlattr *nla_table, *nla_entry;
- struct rd *rd = data;
- int ret = MNL_CB_OK;
-@@ -116,7 +116,7 @@ int res_pd_parse_cb(const struct nlmsghdr *nlh, void *data)
- nla_table = tb[RDMA_NLDEV_ATTR_RES_PD];
-
- mnl_attr_for_each_nested(nla_entry, nla_table) {
-- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
-
- ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
- if (ret != MNL_CB_OK)
-diff --git a/rdma/res-qp.c b/rdma/res-qp.c
-index 65ff54ab..49a3d549 100644
---- a/rdma/res-qp.c
-+++ b/rdma/res-qp.c
-@@ -183,7 +183,7 @@ out:
-
- int res_qp_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct rd *rd = data;
- const char *name;
- uint32_t idx;
-@@ -201,7 +201,7 @@ int res_qp_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
-
- int res_qp_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct nlattr *nla_table, *nla_entry;
- struct rd *rd = data;
- int ret = MNL_CB_OK;
-@@ -218,7 +218,7 @@ int res_qp_parse_cb(const struct nlmsghdr *nlh, void *data)
- nla_table = tb[RDMA_NLDEV_ATTR_RES_QP];
-
- mnl_attr_for_each_nested(nla_entry, nla_table) {
-- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
-
- ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
- if (ret != MNL_CB_OK)
-diff --git a/rdma/res.c b/rdma/res.c
-index 3e024134..fac047f2 100644
---- a/rdma/res.c
-+++ b/rdma/res.c
-@@ -38,7 +38,7 @@ static int res_print_summary(struct nlattr **tb)
- int err;
-
- mnl_attr_for_each_nested(nla_entry, nla_table) {
-- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
-
- err = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
- if (err != MNL_CB_OK)
-@@ -63,7 +63,7 @@ static int res_no_args_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
-
- static int res_no_args_parse_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- const char *name;
- uint32_t idx;
-
-diff --git a/rdma/utils.c b/rdma/utils.c
-index 27595a38..9ac34a0d 100644
---- a/rdma/utils.c
-+++ b/rdma/utils.c
-@@ -512,7 +512,7 @@ int rd_attr_cb(const struct nlattr *attr, void *data)
-
- int rd_dev_init_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
-+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
- struct dev_map *dev_map;
- struct rd *rd = data;
- const char *dev_name;
-diff --git a/tc/e_bpf.c b/tc/e_bpf.c
-index 79cddace..9ab76e26 100644
---- a/tc/e_bpf.c
-+++ b/tc/e_bpf.c
-@@ -54,8 +54,8 @@ static int parse_bpf(struct exec_util *eu, int argc, char **argv)
- char **argv_run = argv_default, **envp_run, *tmp;
- int ret, i, env_old, env_num, env_map;
- const char *bpf_uds_name = NULL;
-- int fds[BPF_SCM_MAX_FDS] = {};
-- struct bpf_map_aux aux = {};
-+ int fds[BPF_SCM_MAX_FDS] = {0};
-+ struct bpf_map_aux aux = {0};
-
- if (argc == 0)
- return 0;
-diff --git a/tc/em_cmp.c b/tc/em_cmp.c
-index dfd123df..75a39990 100644
---- a/tc/em_cmp.c
-+++ b/tc/em_cmp.c
-@@ -39,7 +39,7 @@ static int cmp_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
- int align, opnd = 0;
- unsigned long offset = 0, layer = TCF_LAYER_NETWORK, mask = 0, value = 0;
- int offset_present = 0, value_present = 0;
-- struct tcf_em_cmp cmp = {};
-+ struct tcf_em_cmp cmp = {0};
-
- #define PARSE_ERR(CARG, FMT, ARGS...) \
- em_parse_error(EINVAL, args, CARG, &cmp_ematch_util, FMT, ##ARGS)
-diff --git a/tc/em_ipset.c b/tc/em_ipset.c
-index f97abaf3..c80c429e 100644
---- a/tc/em_ipset.c
-+++ b/tc/em_ipset.c
-@@ -195,7 +195,7 @@ static void ipset_print_usage(FILE *fd)
- static int ipset_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
- struct bstr *args)
- {
-- struct xt_set_info set_info = {};
-+ struct xt_set_info set_info = {0};
- int ret;
-
- #define PARSE_ERR(CARG, FMT, ARGS...) \
-diff --git a/tc/em_meta.c b/tc/em_meta.c
-index 6a5654f3..b0ba5ba2 100644
---- a/tc/em_meta.c
-+++ b/tc/em_meta.c
-@@ -356,7 +356,7 @@ static int meta_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
- {
- int opnd;
- struct bstr *a;
-- struct tcf_meta_hdr meta_hdr = {};
-+ struct tcf_meta_hdr meta_hdr = {0};
- unsigned long lvalue = 0, rvalue = 0;
-
- if (args == NULL)
-diff --git a/tc/em_nbyte.c b/tc/em_nbyte.c
-index 9f421fb4..c6afd298 100644
---- a/tc/em_nbyte.c
-+++ b/tc/em_nbyte.c
-@@ -39,7 +39,7 @@ static int nbyte_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
- struct bstr *needle = args;
- unsigned long offset = 0, layer = TCF_LAYER_NETWORK;
- int offset_present = 0;
-- struct tcf_em_nbyte nb = {};
-+ struct tcf_em_nbyte nb = {0};
-
- #define PARSE_ERR(CARG, FMT, ARGS...) \
- em_parse_error(EINVAL, args, CARG, &nbyte_ematch_util, FMT, ##ARGS)
-diff --git a/tc/em_u32.c b/tc/em_u32.c
-index a83382ba..604a0caf 100644
---- a/tc/em_u32.c
-+++ b/tc/em_u32.c
-@@ -34,7 +34,7 @@ static int u32_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
- struct bstr *a;
- int align, nh_len;
- unsigned long key, mask, offmask = 0, offset;
-- struct tc_u32_key u_key = {};
-+ struct tc_u32_key u_key = {0};
-
- #define PARSE_ERR(CARG, FMT, ARGS...) \
- em_parse_error(EINVAL, args, CARG, &u32_ematch_util, FMT, ##ARGS)
-diff --git a/tc/f_bpf.c b/tc/f_bpf.c
-index a6d4875f..b71b24e9 100644
---- a/tc/f_bpf.c
-+++ b/tc/f_bpf.c
-@@ -78,7 +78,7 @@ static int bpf_parse_opt(struct filter_util *qu, char *handle,
- struct tcmsg *t = NLMSG_DATA(n);
- unsigned int bpf_gen_flags = 0;
- unsigned int bpf_flags = 0;
-- struct bpf_cfg_in cfg = {};
-+ struct bpf_cfg_in cfg = {0};
- bool seen_run = false;
- bool skip_sw = false;
- struct rtattr *tail;
-diff --git a/tc/f_fw.c b/tc/f_fw.c
-index 5e72e526..e2a11847 100644
---- a/tc/f_fw.c
-+++ b/tc/f_fw.c
-@@ -88,7 +88,7 @@ static int fw_parse_opt(struct filter_util *qu, char *handle, int argc, char **a
- }
- continue;
- } else if (strcmp(*argv, "indev") == 0) {
-- char d[IFNAMSIZ+1] = {};
-+ char d[IFNAMSIZ+1] = {0};
-
- argc--;
- argv++;
-diff --git a/tc/f_u32.c b/tc/f_u32.c
-index 59aa4e3a..19f035d0 100644
---- a/tc/f_u32.c
-+++ b/tc/f_u32.c
-@@ -1024,7 +1024,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle,
- struct {
- struct tc_u32_sel sel;
- struct tc_u32_key keys[128];
-- } sel = {};
-+ } sel = {0};
- struct tcmsg *t = NLMSG_DATA(n);
- struct rtattr *tail;
- int sel_ok = 0, terminal_ok = 0;
-@@ -1129,7 +1129,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle,
- struct {
- struct tc_u32_sel sel;
- struct tc_u32_key keys[4];
-- } sel2 = {};
-+ } sel2 = {0};
-
- NEXT_ARG();
- if (parse_selector(&argc, &argv, &sel2.sel, n)) {
-@@ -1155,7 +1155,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle,
- sample_ok = 1;
- continue;
- } else if (strcmp(*argv, "indev") == 0) {
-- char ind[IFNAMSIZ + 1] = {};
-+ char ind[IFNAMSIZ + 1] = {0};
-
- argc--;
- argv++;
-diff --git a/tc/m_bpf.c b/tc/m_bpf.c
-index da50c05e..81866e55 100644
---- a/tc/m_bpf.c
-+++ b/tc/m_bpf.c
-@@ -73,8 +73,8 @@ static int bpf_parse_opt(struct action_util *a, int *ptr_argc, char ***ptr_argv,
- int tca_id, struct nlmsghdr *n)
- {
- const char *bpf_obj = NULL, *bpf_uds_name = NULL;
-- struct tc_act_bpf parm = {};
-- struct bpf_cfg_in cfg = {};
-+ struct tc_act_bpf parm = {0};
-+ struct bpf_cfg_in cfg = {0};
- bool seen_run = false;
- struct rtattr *tail;
- int argc, ret = 0;
-diff --git a/tc/m_connmark.c b/tc/m_connmark.c
-index 8506d95a..9cc911b8 100644
---- a/tc/m_connmark.c
-+++ b/tc/m_connmark.c
-@@ -35,7 +35,7 @@ static int
- parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
- struct nlmsghdr *n)
- {
-- struct tc_connmark sel = {};
-+ struct tc_connmark sel = {0};
- char **argv = *argv_p;
- int argc = *argc_p;
- int ok = 0;
-diff --git a/tc/m_csum.c b/tc/m_csum.c
-index f5fe8f55..b29353b1 100644
---- a/tc/m_csum.c
-+++ b/tc/m_csum.c
-@@ -84,7 +84,7 @@ static int
- parse_csum(struct action_util *a, int *argc_p,
- char ***argv_p, int tca_id, struct nlmsghdr *n)
- {
-- struct tc_csum sel = {};
-+ struct tc_csum sel = {0};
-
- int argc = *argc_p;
- char **argv = *argv_p;
-diff --git a/tc/m_mirred.c b/tc/m_mirred.c
-index e5653e67..6aca86ad 100644
---- a/tc/m_mirred.c
-+++ b/tc/m_mirred.c
-@@ -91,9 +91,9 @@ parse_direction(struct action_util *a, int *argc_p, char ***argv_p,
- int argc = *argc_p;
- char **argv = *argv_p;
- int ok = 0, iok = 0, mirror = 0, redir = 0, ingress = 0, egress = 0;
-- struct tc_mirred p = {};
-+ struct tc_mirred p = {0};
- struct rtattr *tail;
-- char d[IFNAMSIZ] = {};
-+ char d[IFNAMSIZ] = {0};
-
- while (argc > 0) {
-
-diff --git a/tc/m_nat.c b/tc/m_nat.c
-index 95b35584..b8869141 100644
---- a/tc/m_nat.c
-+++ b/tc/m_nat.c
-@@ -78,7 +78,7 @@ bad_val:
- static int
- parse_nat(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, struct nlmsghdr *n)
- {
-- struct tc_nat sel = {};
-+ struct tc_nat sel = {0};
-
- int argc = *argc_p;
- char **argv = *argv_p;
-diff --git a/tc/m_pedit.c b/tc/m_pedit.c
-index 32f03415..f65fcedf 100644
---- a/tc/m_pedit.c
-+++ b/tc/m_pedit.c
-@@ -519,7 +519,7 @@ done:
-
- static int parse_munge(int *argc_p, char ***argv_p, struct m_pedit_sel *sel)
- {
-- struct m_pedit_key tkey = {};
-+ struct m_pedit_key tkey = {0};
- int argc = *argc_p;
- char **argv = *argv_p;
- int res = -1;
-@@ -623,7 +623,7 @@ static int pedit_keys_ex_addattr(struct m_pedit_sel *sel, struct nlmsghdr *n)
- static int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p,
- int tca_id, struct nlmsghdr *n)
- {
-- struct m_pedit_sel sel = {};
-+ struct m_pedit_sel sel = {0};
-
- int argc = *argc_p;
- char **argv = *argv_p;
-diff --git a/tc/m_simple.c b/tc/m_simple.c
-index fe2bca21..765fef96 100644
---- a/tc/m_simple.c
-+++ b/tc/m_simple.c
-@@ -93,7 +93,7 @@ static int
- parse_simple(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
- struct nlmsghdr *n)
- {
-- struct tc_defact sel = {};
-+ struct tc_defact sel = {0};
- int argc = *argc_p;
- char **argv = *argv_p;
- int ok = 0;
-diff --git a/tc/m_tunnel_key.c b/tc/m_tunnel_key.c
-index ff699cc8..c6aabb0c 100644
---- a/tc/m_tunnel_key.c
-+++ b/tc/m_tunnel_key.c
-@@ -314,7 +314,7 @@ static int tunnel_key_parse_tos_ttl(char *str, int type, struct nlmsghdr *n)
- static int parse_tunnel_key(struct action_util *a, int *argc_p, char ***argv_p,
- int tca_id, struct nlmsghdr *n)
- {
-- struct tc_tunnel_key parm = {};
-+ struct tc_tunnel_key parm = {0};
- char **argv = *argv_p;
- int argc = *argc_p;
- struct rtattr *tail;
-diff --git a/tc/m_vlan.c b/tc/m_vlan.c
-index c1dc8b42..3293aae6 100644
---- a/tc/m_vlan.c
-+++ b/tc/m_vlan.c
-@@ -73,7 +73,7 @@ static int parse_vlan(struct action_util *a, int *argc_p, char ***argv_p,
- int proto_set = 0;
- __u8 prio;
- int prio_set = 0;
-- struct tc_vlan parm = {};
-+ struct tc_vlan parm = {0};
-
- if (matches(*argv, "vlan") != 0)
- return -1;
-diff --git a/tc/q_cbs.c b/tc/q_cbs.c
-index 788535c6..072b393a 100644
---- a/tc/q_cbs.c
-+++ b/tc/q_cbs.c
-@@ -32,7 +32,7 @@ static void explain1(const char *arg, const char *val)
- static int cbs_parse_opt(struct qdisc_util *qu, int argc,
- char **argv, struct nlmsghdr *n, const char *dev)
- {
-- struct tc_cbs_qopt opt = {};
-+ struct tc_cbs_qopt opt = {0};
- struct rtattr *tail;
-
- while (argc > 0) {
-diff --git a/tc/q_choke.c b/tc/q_choke.c
-index 7653eb7e..4a69fdff 100644
---- a/tc/q_choke.c
-+++ b/tc/q_choke.c
-@@ -30,7 +30,7 @@ static void explain(void)
- static int choke_parse_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nlmsghdr *n, const char *dev)
- {
-- struct tc_red_qopt opt = {};
-+ struct tc_red_qopt opt = {0};
- unsigned int burst = 0;
- unsigned int avpkt = 1000;
- double probability = 0.02;
-diff --git a/tc/q_codel.c b/tc/q_codel.c
-index 03b6f92f..37e31495 100644
---- a/tc/q_codel.c
-+++ b/tc/q_codel.c
-@@ -150,7 +150,7 @@ static int codel_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt)
- static int codel_print_xstats(struct qdisc_util *qu, FILE *f,
- struct rtattr *xstats)
- {
-- struct tc_codel_xstats _st = {}, *st;
-+ struct tc_codel_xstats _st = {0}, *st;
-
- SPRINT_BUF(b1);
-
-diff --git a/tc/q_fifo.c b/tc/q_fifo.c
-index 9b2c5348..2db11c7c 100644
---- a/tc/q_fifo.c
-+++ b/tc/q_fifo.c
-@@ -26,7 +26,7 @@ static int fifo_parse_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nlmsghdr *n, const char *dev)
- {
- int ok = 0;
-- struct tc_fifo_qopt opt = {};
-+ struct tc_fifo_qopt opt = {0};
-
- while (argc > 0) {
- if (strcmp(*argv, "limit") == 0) {
-diff --git a/tc/q_fq_codel.c b/tc/q_fq_codel.c
-index 9c9d7bc1..ac52c160 100644
---- a/tc/q_fq_codel.c
-+++ b/tc/q_fq_codel.c
-@@ -253,7 +253,7 @@ static int fq_codel_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt
- static int fq_codel_print_xstats(struct qdisc_util *qu, FILE *f,
- struct rtattr *xstats)
- {
-- struct tc_fq_codel_xstats _st = {}, *st;
-+ struct tc_fq_codel_xstats _st = {0}, *st;
-
- SPRINT_BUF(b1);
-
-diff --git a/tc/q_gred.c b/tc/q_gred.c
-index f6a3f05e..85387e2b 100644
---- a/tc/q_gred.c
-+++ b/tc/q_gred.c
-@@ -299,8 +299,8 @@ gred_parse_vqs(struct tc_gred_info *info, struct rtattr *vqs)
- unsigned int offset = 0;
-
- while (rem > offset) {
-- struct rtattr *tb_entry[TCA_GRED_VQ_ENTRY_MAX + 1] = {};
-- struct rtattr *tb[TCA_GRED_VQ_MAX + 1] = {};
-+ struct rtattr *tb_entry[TCA_GRED_VQ_ENTRY_MAX + 1] = {0};
-+ struct rtattr *tb[TCA_GRED_VQ_MAX + 1] = {0};
- struct rtattr *entry;
- unsigned int len;
- unsigned int dp;
-@@ -408,7 +408,7 @@ gred_print_stats(struct tc_gred_info *info, struct tc_gred_qopt *qopt)
-
- static int gred_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt)
- {
-- struct tc_gred_info infos[MAX_DPs] = {};
-+ struct tc_gred_info infos[MAX_DPs] = {0};
- struct rtattr *tb[TCA_GRED_MAX + 1];
- struct tc_gred_sopt *sopt;
- struct tc_gred_qopt *qopt;
-diff --git a/tc/q_hfsc.c b/tc/q_hfsc.c
-index 609d925a..b4bb78f2 100644
---- a/tc/q_hfsc.c
-+++ b/tc/q_hfsc.c
-@@ -68,7 +68,7 @@ static int
- hfsc_parse_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nlmsghdr *n, const char *dev)
- {
-- struct tc_hfsc_qopt qopt = {};
-+ struct tc_hfsc_qopt qopt = {0};
-
- while (argc > 0) {
- if (matches(*argv, "default") == 0) {
-@@ -139,7 +139,7 @@ static int
- hfsc_parse_class_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nlmsghdr *n, const char *dev)
- {
-- struct tc_service_curve rsc = {}, fsc = {}, usc = {};
-+ struct tc_service_curve rsc = {0}, fsc = {}, usc = {};
- int rsc_ok = 0, fsc_ok = 0, usc_ok = 0;
- struct rtattr *tail;
-
-diff --git a/tc/q_htb.c b/tc/q_htb.c
-index 9afb293d..83401cde 100644
---- a/tc/q_htb.c
-+++ b/tc/q_htb.c
-@@ -110,7 +110,7 @@ static int htb_parse_opt(struct qdisc_util *qu, int argc,
- static int htb_parse_class_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nlmsghdr *n, const char *dev)
- {
-- struct tc_htb_opt opt = {};
-+ struct tc_htb_opt opt = {0};
- __u32 rtab[256], ctab[256];
- unsigned buffer = 0, cbuffer = 0;
- int cell_log = -1, ccell_log = -1;
-diff --git a/tc/q_multiq.c b/tc/q_multiq.c
-index b1e6c9a8..12027bc8 100644
---- a/tc/q_multiq.c
-+++ b/tc/q_multiq.c
-@@ -31,7 +31,7 @@ static void explain(void)
- static int multiq_parse_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nlmsghdr *n, const char *dev)
- {
-- struct tc_multiq_qopt opt = {};
-+ struct tc_multiq_qopt opt = {0};
-
- if (argc) {
- if (strcmp(*argv, "help") == 0) {
-diff --git a/tc/q_netem.c b/tc/q_netem.c
-index 4ce9ab6e..9fa40cc4 100644
---- a/tc/q_netem.c
-+++ b/tc/q_netem.c
-@@ -197,17 +197,17 @@ static int netem_parse_opt(struct qdisc_util *qu, int argc, char **argv,
- int slot_dist_size = 0;
- struct rtattr *tail;
- struct tc_netem_qopt opt = { .limit = 1000 };
-- struct tc_netem_corr cor = {};
-- struct tc_netem_reorder reorder = {};
-- struct tc_netem_corrupt corrupt = {};
-+ struct tc_netem_corr cor = {0};
-+ struct tc_netem_reorder reorder = {0};
-+ struct tc_netem_corrupt corrupt = {0};
- struct tc_netem_gimodel gimodel;
- struct tc_netem_gemodel gemodel;
-- struct tc_netem_rate rate = {};
-- struct tc_netem_slot slot = {};
-+ struct tc_netem_rate rate = {0};
-+ struct tc_netem_slot slot = {0};
- __s16 *dist_data = NULL;
- __s16 *slot_dist_data = NULL;
- __u16 loss_type = NETEM_LOSS_UNSPEC;
-- int present[__TCA_NETEM_MAX] = {};
-+ int present[__TCA_NETEM_MAX] = {0};
- __u64 rate64 = 0;
- __u64 seed = 0;
-
-diff --git a/tc/q_red.c b/tc/q_red.c
-index f760253d..5c523a16 100644
---- a/tc/q_red.c
-+++ b/tc/q_red.c
-@@ -46,7 +46,7 @@ static int red_parse_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nla_bitfield32 flags_bf = {
- .selector = RED_SUPPORTED_FLAGS,
- };
-- struct tc_red_qopt opt = {};
-+ struct tc_red_qopt opt = {0};
- unsigned int burst = 0;
- unsigned int avpkt = 0;
- double probability = 0.02;
-diff --git a/tc/q_sfq.c b/tc/q_sfq.c
-index 17bf8f63..62911069 100644
---- a/tc/q_sfq.c
-+++ b/tc/q_sfq.c
-@@ -33,7 +33,7 @@ static void explain(void)
- static int sfq_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nlmsghdr *n, const char *dev)
- {
- int ok = 0, red = 0;
-- struct tc_sfq_qopt_v1 opt = {};
-+ struct tc_sfq_qopt_v1 opt = {0};
- unsigned int burst = 0;
- int wlog;
- unsigned int avpkt = 1000;
-diff --git a/tc/q_skbprio.c b/tc/q_skbprio.c
-index b0ba180a..cdb174ff 100644
---- a/tc/q_skbprio.c
-+++ b/tc/q_skbprio.c
-@@ -27,7 +27,7 @@ static int skbprio_parse_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nlmsghdr *n, const char *dev)
- {
- int ok = 0;
-- struct tc_skbprio_qopt opt = {};
-+ struct tc_skbprio_qopt opt = {0};
-
- while (argc > 0) {
- if (strcmp(*argv, "limit") == 0) {
-diff --git a/tc/q_tbf.c b/tc/q_tbf.c
-index f621756d..7b149228 100644
---- a/tc/q_tbf.c
-+++ b/tc/q_tbf.c
-@@ -34,7 +34,7 @@ static void explain1(const char *arg, const char *val)
- static int tbf_parse_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nlmsghdr *n, const char *dev)
- {
-- struct tc_tbf_qopt opt = {};
-+ struct tc_tbf_qopt opt = {0};
- __u32 rtab[256];
- __u32 ptab[256];
- unsigned buffer = 0, mtu = 0, mpu = 0, latency = 0;
-diff --git a/tc/tc_class.c b/tc/tc_class.c
-index f6a3d134..31712a8a 100644
---- a/tc/tc_class.c
-+++ b/tc/tc_class.c
-@@ -31,8 +31,8 @@ struct graph_node {
- int nodes_count;
- };
-
--static struct hlist_head cls_list = {};
--static struct hlist_head root_cls_list = {};
-+static struct hlist_head cls_list = {0};
-+static struct hlist_head root_cls_list = {0};
-
- static void usage(void);
-
-@@ -62,9 +62,9 @@ static int tc_class_modify(int cmd, unsigned int flags, int argc, char **argv)
- .t.tcm_family = AF_UNSPEC,
- };
- struct qdisc_util *q = NULL;
-- struct tc_estimator est = {};
-- char d[IFNAMSIZ] = {};
-- char k[FILTER_NAMESZ] = {};
-+ struct tc_estimator est = {0};
-+ char d[IFNAMSIZ] = {0};
-+ char k[FILTER_NAMESZ] = {0};
-
- while (argc > 0) {
- if (strcmp(*argv, "dev") == 0) {
-@@ -211,14 +211,14 @@ static void graph_cls_show(FILE *fp, char *buf, struct hlist_head *root_list,
- int level)
- {
- struct hlist_node *n, *tmp_cls;
-- char cls_id_str[256] = {};
-+ char cls_id_str[256] = {0};
- struct rtattr *tb[TCA_MAX + 1];
- struct qdisc_util *q;
-- char str[300] = {};
-+ char str[300] = {0};
-
- hlist_for_each_safe(n, tmp_cls, root_list) {
- struct hlist_node *c, *tmp_chld;
-- struct hlist_head children = {};
-+ struct hlist_head children = {0};
- struct graph_node *cls = container_of(n, struct graph_node,
- hlist);
-
-@@ -388,7 +388,7 @@ int print_class(struct nlmsghdr *n, void *arg)
- static int tc_class_list(int argc, char **argv)
- {
- struct tcmsg t = { .tcm_family = AF_UNSPEC };
-- char d[IFNAMSIZ] = {};
-+ char d[IFNAMSIZ] = {0};
- char buf[1024] = {0};
-
- filter_qdisc = 0;
-diff --git a/tc/tc_exec.c b/tc/tc_exec.c
-index 182fbb4c..0893aa03 100644
---- a/tc/tc_exec.c
-+++ b/tc/tc_exec.c
-@@ -81,7 +81,7 @@ noexist:
- int do_exec(int argc, char **argv)
- {
- struct exec_util *eu;
-- char kind[FILTER_NAMESZ] = {};
-+ char kind[FILTER_NAMESZ] = {0};
-
- if (argc < 1) {
- fprintf(stderr, "No command given, try \"tc exec help\".\n");
-diff --git a/tc/tc_filter.c b/tc/tc_filter.c
-index eb45c588..31c9788c 100644
---- a/tc/tc_filter.c
-+++ b/tc/tc_filter.c
-@@ -73,9 +73,9 @@ static int tc_filter_modify(int cmd, unsigned int flags, int argc, char **argv)
- __u32 chain_index = 0;
- int chain_index_set = 0;
- char *fhandle = NULL;
-- char d[IFNAMSIZ] = {};
-- char k[FILTER_NAMESZ] = {};
-- struct tc_estimator est = {};
-+ char d[IFNAMSIZ] = {0};
-+ char k[FILTER_NAMESZ] = {0};
-+ struct tc_estimator est = {0};
-
- if (cmd == RTM_NEWTFILTER && flags & NLM_F_CREATE)
- protocol = htons(ETH_P_ALL);
-@@ -401,8 +401,8 @@ static int tc_filter_get(int cmd, unsigned int flags, int argc, char **argv)
- __u32 block_index = 0;
- __u32 parent_handle = 0;
- char *fhandle = NULL;
-- char d[IFNAMSIZ] = {};
-- char k[FILTER_NAMESZ] = {};
-+ char d[IFNAMSIZ] = {0};
-+ char k[FILTER_NAMESZ] = {0};
-
- while (argc > 0) {
- if (strcmp(*argv, "dev") == 0) {
-@@ -591,7 +591,7 @@ static int tc_filter_list(int cmd, int argc, char **argv)
- .t.tcm_parent = TC_H_UNSPEC,
- .t.tcm_family = AF_UNSPEC,
- };
-- char d[IFNAMSIZ] = {};
-+ char d[IFNAMSIZ] = {0};
- __u32 prio = 0;
- __u32 protocol = 0;
- __u32 block_index = 0;
-diff --git a/tc/tc_qdisc.c b/tc/tc_qdisc.c
-index 84fd659f..175b7fab 100644
---- a/tc/tc_qdisc.c
-+++ b/tc/tc_qdisc.c
-@@ -43,13 +43,13 @@ static int usage(void)
- static int tc_qdisc_modify(int cmd, unsigned int flags, int argc, char **argv)
- {
- struct qdisc_util *q = NULL;
-- struct tc_estimator est = {};
-+ struct tc_estimator est = {0};
- struct {
- struct tc_sizespec szopts;
- __u16 *data;
-- } stab = {};
-- char d[IFNAMSIZ] = {};
-- char k[FILTER_NAMESZ] = {};
-+ } stab = {0};
-+ char d[IFNAMSIZ] = {0};
-+ char k[FILTER_NAMESZ] = {0};
- struct {
- struct nlmsghdr n;
- struct tcmsg t;
-@@ -360,7 +360,7 @@ static int tc_qdisc_list(int argc, char **argv)
- .t.tcm_family = AF_UNSPEC,
- };
-
-- char d[IFNAMSIZ] = {};
-+ char d[IFNAMSIZ] = {0};
- bool dump_invisible = false;
- __u32 handle;
-
-diff --git a/tc/tc_stab.c b/tc/tc_stab.c
-index a7733726..32f649f5 100644
---- a/tc/tc_stab.c
-+++ b/tc/tc_stab.c
-@@ -46,7 +46,7 @@ int parse_size_table(int *argcp, char ***argvp, struct tc_sizespec *sp)
- {
- char **argv = *argvp;
- int argc = *argcp;
-- struct tc_sizespec s = {};
-+ struct tc_sizespec s = {0};
-
- NEXT_ARG();
- if (matches(*argv, "help") == 0) {
-diff --git a/tc/tc_util.c b/tc/tc_util.c
-index aa7cf60f..83026c65 100644
---- a/tc/tc_util.c
-+++ b/tc/tc_util.c
-@@ -132,7 +132,7 @@ ok:
-
- int print_tc_classid(char *buf, int blen, __u32 h)
- {
-- SPRINT_BUF(handle) = {};
-+ SPRINT_BUF(handle) = {0};
- int hlen = SPRINT_BSIZE - 1;
-
- if (h == TC_H_ROOT)
-@@ -147,7 +147,7 @@ int print_tc_classid(char *buf, int blen, __u32 h)
- snprintf(handle, hlen, "%x:%x", TC_H_MAJ(h) >> 16, TC_H_MIN(h));
-
- if (use_names) {
-- char clname[IDNAME_MAX] = {};
-+ char clname[IDNAME_MAX] = {0};
-
- if (id_to_name(cls_names, h, clname))
- snprintf(buf, blen, "%s#%s", clname, handle);
-@@ -798,7 +798,7 @@ void print_tcstats_attr(FILE *fp, struct rtattr *tb[], const char *prefix,
- }
- /* backward compatibility */
- if (tb[TCA_STATS]) {
-- struct tc_stats st = {};
-+ struct tc_stats st = {0};
-
- /* handle case where kernel returns more/less than we know about */
- memcpy(&st, RTA_DATA(tb[TCA_STATS]),
-diff --git a/tipc/bearer.c b/tipc/bearer.c
-index bb434f5f..3f703066 100644
---- a/tipc/bearer.c
-+++ b/tipc/bearer.c
-@@ -79,8 +79,8 @@ static void cmd_bearer_enable_udp_help(struct cmdl *cmdl, char *media)
- static int get_netid_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {0};
- int *netid = (int*)data;
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
-@@ -750,7 +750,7 @@ static int bearer_dump_udp_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct sockaddr_storage *addr;
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_UDP_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_UDP_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
-
-@@ -786,9 +786,9 @@ static int bearer_get_udp_cb(const struct nlmsghdr *nlh, void *data)
- struct cb_data *cb_data = (struct cb_data *) data;
- struct sockaddr_storage *addr;
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {};
-- struct nlattr *opts[TIPC_NLA_UDP_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {0};
-+ struct nlattr *opts[TIPC_NLA_UDP_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_BEARER])
-@@ -883,9 +883,9 @@ static int bearer_get_cb(const struct nlmsghdr *nlh, void *data)
- {
- int *prop = data;
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {};
-- struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {0};
-+ struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_BEARER])
-@@ -1066,8 +1066,8 @@ static int cmd_bearer_get(struct nlmsghdr *nlh, const struct cmd *cmd,
- static int bearer_list_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_BEARER]) {
-diff --git a/tipc/link.c b/tipc/link.c
-index f91c3000..15805757 100644
---- a/tipc/link.c
-+++ b/tipc/link.c
-@@ -32,8 +32,8 @@ static const char tipc_bclink_name[] = "broadcast-link";
- static int link_list_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_LINK])
-@@ -82,9 +82,9 @@ static int link_get_cb(const struct nlmsghdr *nlh, void *data)
- {
- int *prop = data;
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {};
-- struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {0};
-+ struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_LINK])
-@@ -501,10 +501,10 @@ static int link_stat_show_cb(const struct nlmsghdr *nlh, void *data)
- const char *name;
- const char *link = data;
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {};
-- struct nlattr *prop[TIPC_NLA_PROP_MAX + 1] = {};
-- struct nlattr *stats[TIPC_NLA_STATS_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {0};
-+ struct nlattr *prop[TIPC_NLA_PROP_MAX + 1] = {0};
-+ struct nlattr *stats[TIPC_NLA_STATS_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_LINK])
-@@ -803,8 +803,8 @@ static int cmd_link_mon_set_prop(struct nlmsghdr *nlh, const struct cmd *cmd,
- static int link_mon_summary_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_MON])
-@@ -935,8 +935,8 @@ static void link_mon_print_peer_state(const uint32_t addr, const char *status,
- static int link_mon_peer_list_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *attrs[TIPC_NLA_MON_PEER_MAX + 1] = {};
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-+ struct nlattr *attrs[TIPC_NLA_MON_PEER_MAX + 1] = {0};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
- uint16_t member_cnt;
- uint32_t applied;
- uint32_t dom_gen;
-@@ -1021,8 +1021,8 @@ static int link_mon_peer_list(uint32_t mon_ref)
- static int link_mon_list_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {0};
- char *req_bearer = data;
- const char *bname;
- const char title[] =
-@@ -1149,8 +1149,8 @@ static void cmd_link_mon_get_help(struct cmdl *cmdl)
- static int link_mon_get_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_MON])
-diff --git a/tipc/media.c b/tipc/media.c
-index 5ff0c8c4..b5c03bae 100644
---- a/tipc/media.c
-+++ b/tipc/media.c
-@@ -20,8 +20,8 @@
- static int media_list_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_MEDIA])
-@@ -57,9 +57,9 @@ static int media_get_cb(const struct nlmsghdr *nlh, void *data)
- {
- int *prop = data;
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {};
-- struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {0};
-+ struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_MEDIA])
-diff --git a/tipc/misc.c b/tipc/misc.c
-index 32d4a5e0..a4870762 100644
---- a/tipc/misc.c
-+++ b/tipc/misc.c
-@@ -152,7 +152,7 @@ void nodeid2str(uint8_t *id, char *str)
-
- void hash2nodestr(uint32_t hash, char *str)
- {
-- struct tipc_sioc_nodeid_req nr = {};
-+ struct tipc_sioc_nodeid_req nr = {0};
- int sd;
-
- sd = socket(AF_TIPC, SOCK_RDM, 0);
-diff --git a/tipc/nametable.c b/tipc/nametable.c
-index 5162f7fc..fedae24e 100644
---- a/tipc/nametable.c
-+++ b/tipc/nametable.c
-@@ -24,9 +24,9 @@ static int nametable_show_cb(const struct nlmsghdr *nlh, void *data)
- {
- int *iteration = data;
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_NAME_TABLE_MAX + 1] = {};
-- struct nlattr *publ[TIPC_NLA_PUBL_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_NAME_TABLE_MAX + 1] = {0};
-+ struct nlattr *publ[TIPC_NLA_PUBL_MAX + 1] = {0};
- const char *scope[] = { "", "zone", "cluster", "node" };
- char str[33] = {0,};
-
-diff --git a/tipc/node.c b/tipc/node.c
-index e645d374..6d86043f 100644
---- a/tipc/node.c
-+++ b/tipc/node.c
-@@ -21,9 +21,9 @@
-
- static int node_list_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_NODE_MAX + 1] = {};
-- char str[33] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_NODE_MAX + 1] = {0};
-+ char str[33] = {0};
- uint32_t addr;
-
- mnl_attr_parse(nlh, sizeof(struct genlmsghdr), parse_attrs, info);
-@@ -300,8 +300,8 @@ static int cmd_node_flush_key(struct nlmsghdr *nlh, const struct cmd *cmd,
-
- static int nodeid_get_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {0};
- char str[33] = {0,};
- uint8_t id[16] = {0,};
- uint64_t *w0 = (uint64_t *) &id[0];
-@@ -344,8 +344,8 @@ static int cmd_node_get_nodeid(struct nlmsghdr *nlh, const struct cmd *cmd,
-
- static int netid_get_cb(const struct nlmsghdr *nlh, void *data)
- {
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(struct genlmsghdr), parse_attrs, info);
- if (!info[TIPC_NLA_NET])
-diff --git a/tipc/socket.c b/tipc/socket.c
-index 4d376e07..178ecd8e 100644
---- a/tipc/socket.c
-+++ b/tipc/socket.c
-@@ -23,8 +23,8 @@
- static int publ_list_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_PUBL])
-@@ -72,8 +72,8 @@ static int publ_list(uint32_t sock)
- static int sock_list_cb(const struct nlmsghdr *nlh, void *data)
- {
- struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-- struct nlattr *info[TIPC_NLA_MAX + 1] = {};
-- struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {};
-+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
-+ struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {0};
-
- mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
- if (!info[TIPC_NLA_SOCK])
-@@ -87,7 +87,7 @@ static int sock_list_cb(const struct nlmsghdr *nlh, void *data)
-
- if (attrs[TIPC_NLA_SOCK_CON]) {
- uint32_t node;
-- struct nlattr *con[TIPC_NLA_CON_MAX + 1] = {};
-+ struct nlattr *con[TIPC_NLA_CON_MAX + 1] = {0};
-
- mnl_attr_parse_nested(attrs[TIPC_NLA_SOCK_CON], parse_attrs, con);
- node = mnl_attr_get_u32(con[TIPC_NLA_CON_NODE]);
---
-2.44.0
-
diff --git a/pkg/iproute2/patch/0007-Remove-semicolon-after-function-definitions.patch b/pkg/iproute2/patch/0006-Remove-semicolon-after-function-definitions.patch
index bbbca39f..bbbca39f 100644
--- a/pkg/iproute2/patch/0007-Remove-semicolon-after-function-definitions.patch
+++ b/pkg/iproute2/patch/0006-Remove-semicolon-after-function-definitions.patch
diff --git a/pkg/iproute2/patch/0008-Don-t-omit-second-operand-to-operator.patch b/pkg/iproute2/patch/0007-Don-t-omit-second-operand-to-operator.patch
index 908bee36..908bee36 100644
--- a/pkg/iproute2/patch/0008-Don-t-omit-second-operand-to-operator.patch
+++ b/pkg/iproute2/patch/0007-Don-t-omit-second-operand-to-operator.patch
diff --git a/pkg/iproute2/patch/0009-Avoid-unnecessary-VLAs.patch b/pkg/iproute2/patch/0008-Avoid-unnecessary-VLAs.patch
index 9f1ef31e..9f1ef31e 100644
--- a/pkg/iproute2/patch/0009-Avoid-unnecessary-VLAs.patch
+++ b/pkg/iproute2/patch/0008-Avoid-unnecessary-VLAs.patch
diff --git a/pkg/iproute2/patch/0010-ip-Fix-get_link_kind-when-linked-statically.patch b/pkg/iproute2/patch/0009-ip-Fix-get_link_kind-when-linked-statically.patch
index 7bd23494..7bd23494 100644
--- a/pkg/iproute2/patch/0010-ip-Fix-get_link_kind-when-linked-statically.patch
+++ b/pkg/iproute2/patch/0009-ip-Fix-get_link_kind-when-linked-statically.patch
diff --git a/pkg/iproute2/patch/0011-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch b/pkg/iproute2/patch/0010-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch
index 4f8b132f..4f8b132f 100644
--- a/pkg/iproute2/patch/0011-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch
+++ b/pkg/iproute2/patch/0010-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch
diff --git a/pkg/iproute2/patch/0012-Use-static-inline-function-for-min.patch b/pkg/iproute2/patch/0011-Use-static-inline-function-for-min.patch
index f5b6088a..f5b6088a 100644
--- a/pkg/iproute2/patch/0012-Use-static-inline-function-for-min.patch
+++ b/pkg/iproute2/patch/0011-Use-static-inline-function-for-min.patch
diff --git a/pkg/iproute2/patch/0014-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch b/pkg/iproute2/patch/0012-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch
index 4f7e231b..4f7e231b 100644
--- a/pkg/iproute2/patch/0014-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch
+++ b/pkg/iproute2/patch/0012-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch
diff --git a/pkg/iproute2/patch/0016-Fix-overflow-check-for-strtod-and-strtoul.patch b/pkg/iproute2/patch/0013-Fix-overflow-check-for-strtod-and-strtoul.patch
index eb028b32..eb028b32 100644
--- a/pkg/iproute2/patch/0016-Fix-overflow-check-for-strtod-and-strtoul.patch
+++ b/pkg/iproute2/patch/0013-Fix-overflow-check-for-strtod-and-strtoul.patch
diff --git a/pkg/iproute2/patch/0013-Use-__typeof__-instead-of-typeof.patch b/pkg/iproute2/patch/0013-Use-__typeof__-instead-of-typeof.patch
deleted file mode 100644
index 33985640..00000000
--- a/pkg/iproute2/patch/0013-Use-__typeof__-instead-of-typeof.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 0d20d0e247e074dd3e8892053387295062c3c666 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Wed, 29 Jan 2020 15:36:37 -0800
-Subject: [PATCH] Use __typeof__ instead of typeof
-
----
- include/list.h | 18 +++++++++---------
- lib/ll_map.c | 2 +-
- 2 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/include/list.h b/include/list.h
-index 7108cea7..36d73d96 100644
---- a/include/list.h
-+++ b/include/list.h
-@@ -7,7 +7,7 @@
-
- #ifdef __GNUC__
- #define container_of(ptr, type, member) ({ \
-- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
-+ const __typeof__( ((type *)0)->member ) *__mptr = (ptr);\
- (type *)( (char *)__mptr - offsetof(type,member) );})
- #else
- #define container_of(ptr, type, member) ( \
-@@ -65,24 +65,24 @@ static inline void list_del(struct list_head *entry)
- list_entry((ptr)->prev, type, member)
-
- #define list_next_entry(pos, member) \
-- list_entry((pos)->member.next, typeof(*(pos)), member)
-+ list_entry((pos)->member.next, __typeof__(*(pos)), member)
-
- #define list_prev_entry(pos, member) \
-- list_entry((pos)->member.prev, typeof(*(pos)), member)
-+ list_entry((pos)->member.prev, __typeof__(*(pos)), member)
-
- #define list_for_each_entry(pos, head, member) \
-- for (pos = list_first_entry(head, typeof(*pos), member); \
-+ for (pos = list_first_entry(head, __typeof__(*pos), member); \
- &pos->member != (head); \
- pos = list_next_entry(pos, member))
-
- #define list_for_each_entry_safe(pos, n, head, member) \
-- for (pos = list_first_entry(head, typeof(*pos), member), \
-+ for (pos = list_first_entry(head, __typeof__(*pos), member), \
- n = list_next_entry(pos, member); \
- &pos->member != (head); \
- pos = n, n = list_next_entry(n, member))
-
- #define list_for_each_entry_reverse(pos, head, member) \
-- for (pos = list_last_entry(head, typeof(*pos), member); \
-+ for (pos = list_last_entry(head, __typeof(*pos)__, member); \
- &pos->member != (head); \
- pos = list_prev_entry(pos, member))
-
-@@ -127,13 +127,13 @@ static inline int list_empty(const struct list_head *head)
- pos = n)
-
- #define hlist_entry_safe(ptr, type, member) \
-- ({ typeof(ptr) ____ptr = (ptr); \
-+ ({ __typeof__(ptr) ____ptr = (ptr); \
- ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
- })
-
- #define hlist_for_each_entry(pos, head, member) \
-- for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\
-+ for (pos = hlist_entry_safe((head)->first, __typeof__(*(pos)), member);\
- pos; \
-- pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
-+ pos = hlist_entry_safe((pos)->member.next, __typeof__(*(pos)), member))
-
- #endif /* __LIST_H__ */
-diff --git a/lib/ll_map.c b/lib/ll_map.c
-index 7fe5f0bc..0f7305ab 100644
---- a/lib/ll_map.c
-+++ b/lib/ll_map.c
-@@ -168,7 +168,7 @@ static void ll_altname_entries_update(struct ll_cache *parent_im,
- * and if it does not fit 1:1, recreate the cached list
- * from scratch.
- */
-- im = list_first_entry(&parent_im->altnames_list, typeof(*im),
-+ im = list_first_entry(&parent_im->altnames_list, __typeof__(*im),
- altnames_list);
- rem = RTA_PAYLOAD(proplist);
- for (i = RTA_DATA(proplist); RTA_OK(i, rem);
---
-2.44.0
-
diff --git a/pkg/iproute2/patch/0017-Remove-flexible-array-member-in-embedded-struct.patch b/pkg/iproute2/patch/0014-Remove-flexible-array-member-in-embedded-struct.patch
index 2e946d9c..2e946d9c 100644
--- a/pkg/iproute2/patch/0017-Remove-flexible-array-member-in-embedded-struct.patch
+++ b/pkg/iproute2/patch/0014-Remove-flexible-array-member-in-embedded-struct.patch
diff --git a/pkg/iproute2/patch/0015-Revert-change-of-BPF_F_-to-enum-constants.patch b/pkg/iproute2/patch/0015-Revert-change-of-BPF_F_-to-enum-constants.patch
deleted file mode 100644
index cfbee5e1..00000000
--- a/pkg/iproute2/patch/0015-Revert-change-of-BPF_F_-to-enum-constants.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From e53788b231f05d0383fa8433e972384028340bb4 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Tue, 2 Jun 2020 03:56:03 -0700
-Subject: [PATCH] Revert change of BPF_F_* to enum constants
-
----
- include/uapi/linux/bpf.h | 8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
-index 0a2380a1..4a0d5760 100644
---- a/include/uapi/linux/bpf.h
-+++ b/include/uapi/linux/bpf.h
-@@ -5970,12 +5970,10 @@ enum {
- /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and
- * BPF_FUNC_perf_event_read_value flags.
- */
--enum {
-- BPF_F_INDEX_MASK = 0xffffffffULL,
-- BPF_F_CURRENT_CPU = BPF_F_INDEX_MASK,
-+#define BPF_F_INDEX_MASK 0xffffffffULL
-+#define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK
- /* BPF_FUNC_perf_event_output for sk_buff input context. */
-- BPF_F_CTXLEN_MASK = (0xfffffULL << 32),
--};
-+#define BPF_F_CTXLEN_MASK (0xfffffULL << 32)
-
- /* Current network namespace */
- enum {
---
-2.44.0
-