commit 39080b6

Michael Forney  ·  2024-03-22 06:29:18 +0000 UTC
parent 993cdf3
Remove obsolete portability patches with C23 and new cproc
29 files changed,  +3, -3172
R pkg/iproute2/patch/0006-Avoid-non-standard-e-escape-sequence.patch => pkg/iproute2/patch/0005-Avoid-non-standard-e-escape-sequence.patch
+0, -0
+0, -2455
   1@@ -1,2455 +0,0 @@
   2-From af3a2d4ed7e7bb4dcf9ec448c017d1e9824b3d1e Mon Sep 17 00:00:00 2001
   3-From: Michael Forney <mforney@mforney.org>
   4-Date: Thu, 17 Feb 2022 22:51:00 -0800
   5-Subject: [PATCH] Don't use empty initializer lists
   6-
   7----
   8- bridge/mdb.c      |  2 +-
   9- bridge/vlan.c     |  6 +--
  10- devlink/devlink.c | 94 +++++++++++++++++++++++------------------------
  11- devlink/mnlg.c    |  4 +-
  12- ip/ip6tunnel.c    |  2 +-
  13- ip/ipaddress.c    |  8 ++--
  14- ip/ipaddrlabel.c  |  2 +-
  15- ip/iplink_can.c   |  2 +-
  16- ip/ipmaddr.c      |  2 +-
  17- ip/ipntable.c     |  4 +-
  18- ip/iptunnel.c     | 10 ++---
  19- ip/iptuntap.c     |  2 +-
  20- ip/ipxfrm.c       | 14 +++----
  21- ip/xfrm_policy.c  | 14 +++----
  22- ip/xfrm_state.c   | 12 +++---
  23- lib/bpf_legacy.c  | 40 ++++++++++----------
  24- lib/libnetlink.c  |  8 ++--
  25- lib/ll_map.c      |  2 +-
  26- lib/rt_names.c    |  3 +-
  27- misc/arpd.c       |  4 +-
  28- misc/ss.c         | 38 +++++++++----------
  29- rdma/dev.c        |  2 +-
  30- rdma/link.c       |  2 +-
  31- rdma/rdma.c       |  2 +-
  32- rdma/res-cmid.c   |  6 +--
  33- rdma/res-cq.c     |  6 +--
  34- rdma/res-mr.c     |  6 +--
  35- rdma/res-pd.c     |  6 +--
  36- rdma/res-qp.c     |  6 +--
  37- rdma/res.c        |  4 +-
  38- rdma/utils.c      |  2 +-
  39- tc/e_bpf.c        |  4 +-
  40- tc/em_cmp.c       |  2 +-
  41- tc/em_ipset.c     |  2 +-
  42- tc/em_meta.c      |  2 +-
  43- tc/em_nbyte.c     |  2 +-
  44- tc/em_u32.c       |  2 +-
  45- tc/f_bpf.c        |  2 +-
  46- tc/f_fw.c         |  2 +-
  47- tc/f_u32.c        |  6 +--
  48- tc/m_bpf.c        |  4 +-
  49- tc/m_connmark.c   |  2 +-
  50- tc/m_csum.c       |  2 +-
  51- tc/m_mirred.c     |  4 +-
  52- tc/m_nat.c        |  2 +-
  53- tc/m_pedit.c      |  4 +-
  54- tc/m_simple.c     |  2 +-
  55- tc/m_tunnel_key.c |  2 +-
  56- tc/m_vlan.c       |  2 +-
  57- tc/q_cbs.c        |  2 +-
  58- tc/q_choke.c      |  2 +-
  59- tc/q_codel.c      |  2 +-
  60- tc/q_fifo.c       |  2 +-
  61- tc/q_fq_codel.c   |  2 +-
  62- tc/q_gred.c       |  6 +--
  63- tc/q_hfsc.c       |  4 +-
  64- tc/q_htb.c        |  2 +-
  65- tc/q_multiq.c     |  2 +-
  66- tc/q_netem.c      | 12 +++---
  67- tc/q_red.c        |  2 +-
  68- tc/q_sfq.c        |  2 +-
  69- tc/q_skbprio.c    |  2 +-
  70- tc/q_tbf.c        |  2 +-
  71- tc/tc_class.c     | 18 ++++-----
  72- tc/tc_exec.c      |  2 +-
  73- tc/tc_filter.c    | 12 +++---
  74- tc/tc_qdisc.c     | 10 ++---
  75- tc/tc_stab.c      |  2 +-
  76- tc/tc_util.c      |  6 +--
  77- tipc/bearer.c     | 22 +++++------
  78- tipc/link.c       | 34 ++++++++---------
  79- tipc/media.c      | 10 ++---
  80- tipc/misc.c       |  2 +-
  81- tipc/nametable.c  |  6 +--
  82- tipc/node.c       | 14 +++----
  83- tipc/socket.c     | 10 ++---
  84- 76 files changed, 277 insertions(+), 278 deletions(-)
  85-
  86-diff --git a/bridge/mdb.c b/bridge/mdb.c
  87-index ba499e49..63302110 100644
  88---- a/bridge/mdb.c
  89-+++ b/bridge/mdb.c
  90-@@ -702,7 +702,7 @@ static int mdb_modify(int cmd, int flags, int argc, char **argv)
  91- 	char *d = NULL, *p = NULL, *grp = NULL, *src = NULL, *mode = NULL;
  92- 	char *dst_port = NULL, *vni = NULL, *src_vni = NULL, *via = NULL;
  93- 	char *src_list = NULL, *proto = NULL, *dst = NULL;
  94--	struct br_mdb_entry entry = {};
  95-+	struct br_mdb_entry entry = {0};
  96- 	bool set_attrs = false;
  97- 	short vid = 0;
  98- 
  99-diff --git a/bridge/vlan.c b/bridge/vlan.c
 100-index a5035ab1..22e4554a 100644
 101---- a/bridge/vlan.c
 102-+++ b/bridge/vlan.c
 103-@@ -128,7 +128,7 @@ static int add_tunnel_info_range(struct nlmsghdr *n, int reqsize,
 104- static int add_vlan_info_range(struct nlmsghdr *n, int reqsize, __u16 vid_start,
 105- 			       int16_t vid_end, __u16 flags)
 106- {
 107--	struct bridge_vlan_info vinfo = {};
 108-+	struct bridge_vlan_info vinfo = {0};
 109- 
 110- 	vinfo.flags = flags;
 111- 	vinfo.vid = vid_start;
 112-@@ -167,7 +167,7 @@ static int vlan_modify(int cmd, int argc, char **argv)
 113- 	short vid = -1;
 114- 	short vid_end = -1;
 115- 	struct rtattr *afspec;
 116--	struct bridge_vlan_info vinfo = {};
 117-+	struct bridge_vlan_info vinfo = {0};
 118- 	bool tunnel_info_set = false;
 119- 	unsigned short flags = 0;
 120- 	__u32 tun_id_start = 0;
 121-@@ -273,7 +273,7 @@ static int vlan_option_set(int argc, char **argv)
 122- 		.n.nlmsg_type = RTM_NEWVLAN,
 123- 		.bvm.family = PF_BRIDGE,
 124- 	};
 125--	struct bridge_vlan_info vinfo = {};
 126-+	struct bridge_vlan_info vinfo = {0};
 127- 	struct rtattr *afspec;
 128- 	char *d = NULL;
 129- 	short vid = -1;
 130-diff --git a/devlink/devlink.c b/devlink/devlink.c
 131-index dbeb6e39..10803c1c 100644
 132---- a/devlink/devlink.c
 133-+++ b/devlink/devlink.c
 134-@@ -890,7 +890,7 @@ out:
 135- 
 136- static int ifname_map_cb(const struct nlmsghdr *nlh, void *data)
 137- {
 138--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 139-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 140- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 141- 	struct dl *dl = data;
 142- 	const char *bus_name;
 143-@@ -3201,7 +3201,7 @@ static void pr_out_eswitch(struct dl *dl, struct nlattr **tb)
 144- static int cmd_dev_eswitch_show_cb(const struct nlmsghdr *nlh, void *data)
 145- {
 146- 	struct dl *dl = data;
 147--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 148-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 149- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 150- 
 151- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 152-@@ -3372,7 +3372,7 @@ static const struct param_val_conv param_val_conv[] = {
 153- static void pr_out_param_value(struct dl *dl, const char *nla_name,
 154- 			       int nla_type, struct nlattr *nl)
 155- {
 156--	struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {};
 157-+	struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {0};
 158- 	struct nlattr *val_attr;
 159- 	const char *vstr;
 160- 	bool conv_exists;
 161-@@ -3455,7 +3455,7 @@ static void pr_out_param_value(struct dl *dl, const char *nla_name,
 162- static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array,
 163- 			 bool is_port_param)
 164- {
 165--	struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {};
 166-+	struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {0};
 167- 	struct nlattr *param_value_attr;
 168- 	const char *nla_name;
 169- 	int nla_type;
 170-@@ -3507,7 +3507,7 @@ static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array,
 171- static int cmd_dev_param_show_cb(const struct nlmsghdr *nlh, void *data)
 172- {
 173- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 174--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 175-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 176- 	struct dl *dl = data;
 177- 
 178- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 179-@@ -3534,8 +3534,8 @@ struct param_ctx {
 180- static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
 181- {
 182- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 183--	struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {};
 184--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 185-+	struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {0};
 186-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 187- 	struct nlattr *param_value_attr;
 188- 	enum devlink_param_cmode cmode;
 189- 	struct param_ctx *ctx = data;
 190-@@ -3559,7 +3559,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
 191- 	nla_type = mnl_attr_get_u8(nla_param[DEVLINK_ATTR_PARAM_TYPE]);
 192- 	mnl_attr_for_each_nested(param_value_attr,
 193- 				 nla_param[DEVLINK_ATTR_PARAM_VALUES_LIST]) {
 194--		struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {};
 195-+		struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {0};
 196- 		struct nlattr *val_attr;
 197- 
 198- 		err = mnl_attr_parse_nested(param_value_attr,
 199-@@ -3602,7 +3602,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
 200- 
 201- static int cmd_dev_param_set(struct dl *dl)
 202- {
 203--	struct param_ctx ctx = {};
 204-+	struct param_ctx ctx = {0};
 205- 	struct nlmsghdr *nlh;
 206- 	bool conv_exists;
 207- 	uint32_t val_u32 = 0;
 208-@@ -3774,7 +3774,7 @@ static int cmd_dev_param(struct dl *dl)
 209- 
 210- static void pr_out_action_stats(struct dl *dl, struct nlattr *action_stats)
 211- {
 212--	struct nlattr *tb_stats_entry[DEVLINK_ATTR_MAX + 1] = {};
 213-+	struct nlattr *tb_stats_entry[DEVLINK_ATTR_MAX + 1] = {0};
 214- 	struct nlattr *nla_reload_stats_entry, *nla_limit, *nla_value;
 215- 	enum devlink_reload_limit limit;
 216- 	uint32_t value;
 217-@@ -4015,7 +4015,7 @@ static void pr_out_versions_single(struct dl *dl, const struct nlmsghdr *nlh,
 218- 	struct nlattr *version;
 219- 
 220- 	mnl_attr_for_each(version, nlh, sizeof(struct genlmsghdr)) {
 221--		struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 222-+		struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 223- 		const char *ver_value;
 224- 		const char *ver_name;
 225- 		int err;
 226-@@ -4105,7 +4105,7 @@ static void pr_out_info(struct dl *dl, const struct nlmsghdr *nlh,
 227- static int cmd_versions_show_cb(const struct nlmsghdr *nlh, void *data)
 228- {
 229- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 230--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 231-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 232- 	bool has_versions, has_info;
 233- 	struct dl *dl = data;
 234- 
 235-@@ -4958,7 +4958,7 @@ static void pr_out_port(struct dl *dl, struct nlattr **tb)
 236- static int cmd_port_show_cb(const struct nlmsghdr *nlh, void *data)
 237- {
 238- 	struct dl *dl = data;
 239--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 240-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 241- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 242- 
 243- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 244-@@ -5896,7 +5896,7 @@ static void pr_out_sb(struct dl *dl, struct nlattr **tb)
 245- static int cmd_sb_show_cb(const struct nlmsghdr *nlh, void *data)
 246- {
 247- 	struct dl *dl = data;
 248--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 249-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 250- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 251- 
 252- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 253-@@ -5974,7 +5974,7 @@ static void pr_out_sb_pool(struct dl *dl, struct nlattr **tb)
 254- static int cmd_sb_pool_show_cb(const struct nlmsghdr *nlh, void *data)
 255- {
 256- 	struct dl *dl = data;
 257--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 258-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 259- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 260- 
 261- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 262-@@ -6061,7 +6061,7 @@ static void pr_out_sb_port_pool(struct dl *dl, struct nlattr **tb)
 263- static int cmd_sb_port_pool_show_cb(const struct nlmsghdr *nlh, void *data)
 264- {
 265- 	struct dl *dl = data;
 266--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 267-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 268- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 269- 
 270- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 271-@@ -6165,7 +6165,7 @@ static void pr_out_sb_tc_bind(struct dl *dl, struct nlattr **tb)
 272- static int cmd_sb_tc_bind_show_cb(const struct nlmsghdr *nlh, void *data)
 273- {
 274- 	struct dl *dl = data;
 275--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 276-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 277- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 278- 
 279- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 280-@@ -6456,7 +6456,7 @@ static void cmd_sb_occ_port_pool_process(struct occ_show *occ_show,
 281- static int cmd_sb_occ_port_pool_process_cb(const struct nlmsghdr *nlh, void *data)
 282- {
 283- 	struct occ_show *occ_show = data;
 284--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 285-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 286- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 287- 
 288- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 289-@@ -6507,7 +6507,7 @@ static void cmd_sb_occ_tc_pool_process(struct occ_show *occ_show,
 290- static int cmd_sb_occ_tc_pool_process_cb(const struct nlmsghdr *nlh, void *data)
 291- {
 292- 	struct occ_show *occ_show = data;
 293--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 294-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 295- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 296- 
 297- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 298-@@ -6815,7 +6815,7 @@ static void pr_out_trap_policer(struct dl *dl, struct nlattr **tb, bool array);
 299- static int cmd_mon_show_cb(const struct nlmsghdr *nlh, void *data)
 300- {
 301- 	struct dl *dl = data;
 302--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 303-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 304- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 305- 	uint8_t cmd = genl->cmd;
 306- 
 307-@@ -7358,7 +7358,7 @@ static void pr_out_dpipe_headers(struct dpipe_ctx *ctx,
 308- 
 309- static int dpipe_header_field_get(struct nlattr *nl, struct dpipe_field *field)
 310- {
 311--	struct nlattr *nla_field[DEVLINK_ATTR_MAX + 1] = {};
 312-+	struct nlattr *nla_field[DEVLINK_ATTR_MAX + 1] = {0};
 313- 	const char *name;
 314- 	int err;
 315- 
 316-@@ -7409,7 +7409,7 @@ static unsigned int dpipe_header_field_count_get(struct nlattr *nla_fields)
 317- 
 318- static int dpipe_header_get(struct dpipe_ctx *ctx, struct nlattr *nl)
 319- {
 320--	struct nlattr *nla_header[DEVLINK_ATTR_MAX + 1] = {};
 321-+	struct nlattr *nla_header[DEVLINK_ATTR_MAX + 1] = {0};
 322- 	struct dpipe_header *header;
 323- 	unsigned int fields_count;
 324- 	const char *header_name;
 325-@@ -7465,7 +7465,7 @@ static int dpipe_headers_get(struct dpipe_ctx *ctx, struct nlattr **tb)
 326- static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
 327- {
 328- 	struct dpipe_ctx *ctx = data;
 329--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 330-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 331- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 332- 	int err;
 333- 
 334-@@ -7487,7 +7487,7 @@ static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
 335- static int cmd_dpipe_headers_show(struct dl *dl)
 336- {
 337- 	struct nlmsghdr *nlh;
 338--	struct dpipe_ctx ctx = {};
 339-+	struct dpipe_ctx ctx = {0};
 340- 	uint16_t flags = NLM_F_REQUEST | NLM_F_ACK;
 341- 	int err;
 342- 
 343-@@ -7584,7 +7584,7 @@ static void pr_out_dpipe_action(struct dpipe_action *action,
 344- 
 345- static int dpipe_action_parse(struct dpipe_action *action, struct nlattr *nl)
 346- {
 347--	struct nlattr *nla_action[DEVLINK_ATTR_MAX + 1] = {};
 348-+	struct nlattr *nla_action[DEVLINK_ATTR_MAX + 1] = {0};
 349- 	int err;
 350- 
 351- 	err = mnl_attr_parse_nested(nl, attr_cb, nla_action);
 352-@@ -7669,7 +7669,7 @@ static int dpipe_match_parse(struct dpipe_match *match,
 353- 			     struct nlattr *nl)
 354- 
 355- {
 356--	struct nlattr *nla_match[DEVLINK_ATTR_MAX + 1] = {};
 357-+	struct nlattr *nla_match[DEVLINK_ATTR_MAX + 1] = {0};
 358- 	int err;
 359- 
 360- 	err = mnl_attr_parse_nested(nl, attr_cb, nla_match);
 361-@@ -7774,7 +7774,7 @@ resource_path_print(struct dl *dl, struct resources *resources,
 362- 
 363- static int dpipe_table_show(struct dpipe_ctx *ctx, struct nlattr *nl)
 364- {
 365--	struct nlattr *nla_table[DEVLINK_ATTR_MAX + 1] = {};
 366-+	struct nlattr *nla_table[DEVLINK_ATTR_MAX + 1] = {0};
 367- 	struct dpipe_table *table;
 368- 	uint32_t resource_units;
 369- 	bool counters_enabled;
 370-@@ -7868,7 +7868,7 @@ err_table_show:
 371- static int cmd_dpipe_table_show_cb(const struct nlmsghdr *nlh, void *data)
 372- {
 373- 	struct dpipe_ctx *ctx = data;
 374--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 375-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 376- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 377- 
 378- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 379-@@ -7886,8 +7886,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data);
 380- static int cmd_dpipe_table_show(struct dl *dl)
 381- {
 382- 	struct nlmsghdr *nlh;
 383--	struct dpipe_ctx dpipe_ctx = {};
 384--	struct resource_ctx resource_ctx = {};
 385-+	struct dpipe_ctx dpipe_ctx = {0};
 386-+	struct resource_ctx resource_ctx = {0};
 387- 	uint16_t flags = NLM_F_REQUEST;
 388- 	int err;
 389- 
 390-@@ -8145,7 +8145,7 @@ static void pr_out_dpipe_entry_value(struct dpipe_ctx *ctx,
 391- static int dpipe_entry_match_value_show(struct dpipe_ctx *ctx,
 392- 					struct nlattr *nl)
 393- {
 394--	struct nlattr *nla_match_value[DEVLINK_ATTR_MAX + 1] = {};
 395-+	struct nlattr *nla_match_value[DEVLINK_ATTR_MAX + 1] = {0};
 396- 	struct dpipe_match match;
 397- 	int err;
 398- 
 399-@@ -8176,7 +8176,7 @@ err_match_parse:
 400- static int dpipe_entry_action_value_show(struct dpipe_ctx *ctx,
 401- 					 struct nlattr *nl)
 402- {
 403--	struct nlattr *nla_action_value[DEVLINK_ATTR_MAX + 1] = {};
 404-+	struct nlattr *nla_action_value[DEVLINK_ATTR_MAX + 1] = {0};
 405- 	struct dpipe_action action;
 406- 	int err;
 407- 
 408-@@ -8232,7 +8232,7 @@ dpipe_tables_match_values_show(struct dpipe_ctx *ctx,
 409- 
 410- static int dpipe_entry_show(struct dpipe_ctx *ctx, struct nlattr *nl)
 411- {
 412--	struct nlattr *nla_entry[DEVLINK_ATTR_MAX + 1] = {};
 413-+	struct nlattr *nla_entry[DEVLINK_ATTR_MAX + 1] = {0};
 414- 	uint32_t entry_index;
 415- 	uint64_t counter;
 416- 	int err;
 417-@@ -8296,7 +8296,7 @@ err_entry_show:
 418- static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
 419- {
 420- 	struct dpipe_ctx *ctx = data;
 421--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 422-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 423- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 424- 
 425- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 426-@@ -8312,7 +8312,7 @@ static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
 427- static int cmd_dpipe_table_dump(struct dl *dl)
 428- {
 429- 	struct nlmsghdr *nlh;
 430--	struct dpipe_ctx ctx = {};
 431-+	struct dpipe_ctx ctx = {0};
 432- 	uint16_t flags = NLM_F_REQUEST;
 433- 	int err;
 434- 
 435-@@ -8421,7 +8421,7 @@ static int
 436- resource_get(struct resource_ctx *ctx, struct resource *resource,
 437- 	     struct resource *parent_resource, struct nlattr *nl)
 438- {
 439--	struct nlattr *nla_resource[DEVLINK_ATTR_MAX + 1] = {};
 440-+	struct nlattr *nla_resource[DEVLINK_ATTR_MAX + 1] = {0};
 441- 	struct nlattr *nla_child_resource;
 442- 	struct nlattr *nla_resources;
 443- 	bool top = false;
 444-@@ -8569,7 +8569,7 @@ static int resources_get(struct resource_ctx *ctx, struct nlattr **tb)
 445- static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
 446- {
 447- 	struct resource_ctx *ctx = data;
 448--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 449-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 450- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 451- 	int err;
 452- 
 453-@@ -8593,8 +8593,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
 454- static int cmd_resource_show(struct dl *dl)
 455- {
 456- 	struct nlmsghdr *nlh;
 457--	struct dpipe_ctx dpipe_ctx = {};
 458--	struct resource_ctx resource_ctx = {};
 459-+	struct dpipe_ctx dpipe_ctx = {0};
 460-+	struct resource_ctx resource_ctx = {0};
 461- 	int err;
 462- 
 463- 	err = dl_argv_parse(dl, DL_OPT_HANDLE, 0);
 464-@@ -8689,7 +8689,7 @@ err_resource_lookup:
 465- static int cmd_resource_set(struct dl *dl)
 466- {
 467- 	struct nlmsghdr *nlh;
 468--	struct resource_ctx ctx = {};
 469-+	struct resource_ctx ctx = {0};
 470- 	int err;
 471- 
 472- 	err = resource_ctx_init(&ctx, dl);
 473-@@ -8801,7 +8801,7 @@ static void pr_out_region_snapshots_id(struct dl *dl, struct nlattr **tb, int in
 474- 
 475- static void pr_out_snapshots(struct dl *dl, struct nlattr **tb)
 476- {
 477--	struct nlattr *tb_snapshot[DEVLINK_ATTR_MAX + 1] = {};
 478-+	struct nlattr *tb_snapshot[DEVLINK_ATTR_MAX + 1] = {0};
 479- 	struct nlattr *nla_sanpshot;
 480- 	int err, index = 0;
 481- 
 482-@@ -8846,7 +8846,7 @@ static void pr_out_region(struct dl *dl, struct nlattr **tb)
 483- static int cmd_region_show_cb(const struct nlmsghdr *nlh, void *data)
 484- {
 485- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 486--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 487-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 488- 	struct dl *dl = data;
 489- 
 490- 	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
 491-@@ -8903,8 +8903,8 @@ static int cmd_region_read_cb(const struct nlmsghdr *nlh, void *data)
 492- {
 493- 	struct nlattr *nla_entry, *nla_chunk_data, *nla_chunk_addr;
 494- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 495--	struct nlattr *tb_field[DEVLINK_ATTR_MAX + 1] = {};
 496--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 497-+	struct nlattr *tb_field[DEVLINK_ATTR_MAX + 1] = {0};
 498-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 499- 	struct dl *dl = data;
 500- 	int err;
 501- 
 502-@@ -9266,7 +9266,7 @@ static int cmd_fmsg_nest(struct fmsg_cb_data *fmsg_data, uint8_t nest_value,
 503- static int cmd_fmsg_object_cb(const struct nlmsghdr *nlh, void *data)
 504- {
 505- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 506--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 507-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 508- 	struct fmsg_cb_data *fmsg_data = data;
 509- 	struct dl *dl = fmsg_data->dl;
 510- 	struct nlattr *nla_object;
 511-@@ -9461,7 +9461,7 @@ static void pr_out_dump_report_timestamp(struct dl *dl, const struct nlattr *att
 512- static void pr_out_health(struct dl *dl, struct nlattr **tb_health,
 513- 			  bool print_device, bool print_port)
 514- {
 515--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 516-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 517- 	enum devlink_health_reporter_state state;
 518- 	int err;
 519- 
 520-@@ -9532,7 +9532,7 @@ struct health_ctx {
 521- static int cmd_health_show_cb(const struct nlmsghdr *nlh, void *data)
 522- {
 523- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 524--	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
 525-+	struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
 526- 	struct health_ctx *ctx = data;
 527- 	struct dl *dl = ctx->dl;
 528- 
 529-diff --git a/devlink/mnlg.c b/devlink/mnlg.c
 530-index d049eb5a..c9782a7b 100644
 531---- a/devlink/mnlg.c
 532-+++ b/devlink/mnlg.c
 533-@@ -58,7 +58,7 @@ static void parse_genl_mc_grps(struct nlattr *nested,
 534- 	const char *name;
 535- 
 536- 	mnl_attr_for_each_nested(pos, nested) {
 537--		struct nlattr *tb[CTRL_ATTR_MCAST_GRP_MAX + 1] = {};
 538-+		struct nlattr *tb[CTRL_ATTR_MCAST_GRP_MAX + 1] = {0};
 539- 
 540- 		mnl_attr_parse_nested(pos, parse_mc_grps_cb, tb);
 541- 		if (!tb[CTRL_ATTR_MCAST_GRP_NAME] ||
 542-@@ -92,7 +92,7 @@ static int get_group_id_attr_cb(const struct nlattr *attr, void *data)
 543- static int get_group_id_cb(const struct nlmsghdr *nlh, void *data)
 544- {
 545- 	struct group_info *group_info = data;
 546--	struct nlattr *tb[CTRL_ATTR_MAX + 1] = {};
 547-+	struct nlattr *tb[CTRL_ATTR_MAX + 1] = {0};
 548- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
 549- 
 550- 	mnl_attr_parse(nlh, sizeof(*genl), get_group_id_attr_cb, tb);
 551-diff --git a/ip/ip6tunnel.c b/ip/ip6tunnel.c
 552-index 5e55e3ea..f74eb9b1 100644
 553---- a/ip/ip6tunnel.c
 554-+++ b/ip/ip6tunnel.c
 555-@@ -273,7 +273,7 @@ static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm2 *p)
 556- 			if (get_ifname(p->name, *argv))
 557- 				invarg("\"name\" not a valid ifname", *argv);
 558- 			if (cmd == SIOCCHGTUNNEL && count == 0) {
 559--				struct ip6_tnl_parm2 old_p = {};
 560-+				struct ip6_tnl_parm2 old_p = {0};
 561- 
 562- 				if (tnl_get_ioctl(*argv, &old_p))
 563- 					return -1;
 564-diff --git a/ip/ipaddress.c b/ip/ipaddress.c
 565-index e536912f..9f062217 100644
 566---- a/ip/ipaddress.c
 567-+++ b/ip/ipaddress.c
 568-@@ -164,7 +164,7 @@ static void print_queuelen(FILE *f, struct rtattr *tb[IFLA_MAX + 1])
 569- 	if (tb[IFLA_TXQLEN])
 570- 		qlen = rta_getattr_u32(tb[IFLA_TXQLEN]);
 571- 	else {
 572--		struct ifreq ifr = {};
 573-+		struct ifreq ifr = {0};
 574- 		int s = socket(AF_INET, SOCK_STREAM, 0);
 575- 
 576- 		if (s < 0)
 577-@@ -352,7 +352,7 @@ static void print_vfinfo(FILE *fp, struct ifinfomsg *ifi, struct rtattr *vfinfo)
 578- 	struct ifla_vf_mac *vf_mac;
 579- 	struct ifla_vf_broadcast *vf_broadcast;
 580- 	struct ifla_vf_tx_rate *vf_tx_rate;
 581--	struct rtattr *vf[IFLA_VF_MAX + 1] = {};
 582-+	struct rtattr *vf[IFLA_VF_MAX + 1] = {0};
 583- 
 584- 	SPRINT_BUF(b1);
 585- 
 586-@@ -2444,7 +2444,7 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv)
 587- 	char  *lcl_arg = NULL;
 588- 	char  *valid_lftp = NULL;
 589- 	char  *preferred_lftp = NULL;
 590--	inet_prefix lcl = {};
 591-+	inet_prefix lcl = {0};
 592- 	inet_prefix peer;
 593- 	int local_len = 0;
 594- 	int peer_len = 0;
 595-@@ -2621,7 +2621,7 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv)
 596- 		return nodev(d);
 597- 
 598- 	if (valid_lftp || preferred_lftp) {
 599--		struct ifa_cacheinfo cinfo = {};
 600-+		struct ifa_cacheinfo cinfo = {0};
 601- 
 602- 		if (!valid_lft) {
 603- 			fprintf(stderr, "valid_lft is zero\n");
 604-diff --git a/ip/ipaddrlabel.c b/ip/ipaddrlabel.c
 605-index b045827a..1d398524 100644
 606---- a/ip/ipaddrlabel.c
 607-+++ b/ip/ipaddrlabel.c
 608-@@ -135,7 +135,7 @@ static int ipaddrlabel_modify(int cmd, int argc, char **argv)
 609- 		.ifal.ifal_family = preferred_family,
 610- 	};
 611- 
 612--	inet_prefix prefix = {};
 613-+	inet_prefix prefix = {0};
 614- 	uint32_t label = 0xffffffffUL;
 615- 	char *p = NULL;
 616- 	char *l = NULL;
 617-diff --git a/ip/iplink_can.c b/ip/iplink_can.c
 618-index f2967db5..07309495 100644
 619---- a/ip/iplink_can.c
 620-+++ b/ip/iplink_can.c
 621-@@ -126,7 +126,7 @@ static void print_ctrlmode(enum output_type t, __u32 flags, const char* key)
 622- static int can_parse_opt(struct link_util *lu, int argc, char **argv,
 623- 			 struct nlmsghdr *n)
 624- {
 625--	struct can_bittiming bt = {}, dbt = {};
 626-+	struct can_bittiming bt = {0}, dbt = {0};
 627- 	struct can_ctrlmode cm = { 0 };
 628- 	struct rtattr *tdc;
 629- 	__u32 tdcv = -1, tdco = -1, tdcf = -1;
 630-diff --git a/ip/ipmaddr.c b/ip/ipmaddr.c
 631-index 3e7afa91..c059e2c7 100644
 632---- a/ip/ipmaddr.c
 633-+++ b/ip/ipmaddr.c
 634-@@ -302,7 +302,7 @@ static int multiaddr_list(int argc, char **argv)
 635- 
 636- static int multiaddr_modify(int cmd, int argc, char **argv)
 637- {
 638--	struct ifreq ifr = {};
 639-+	struct ifreq ifr = {0};
 640- 	int family;
 641- 	int fd, len;
 642- 
 643-diff --git a/ip/ipntable.c b/ip/ipntable.c
 644-index 4ce02a31..11794ce8 100644
 645---- a/ip/ipntable.c
 646-+++ b/ip/ipntable.c
 647-@@ -62,7 +62,7 @@ static int ipntable_modify(int cmd, int flags, int argc, char **argv)
 648- 	char *namep = NULL;
 649- 	char *threshsp = NULL;
 650- 	char *gc_intp = NULL;
 651--	char parms_buf[1024] = {};
 652-+	char parms_buf[1024] = {0};
 653- 	struct rtattr *parms_rta = (struct rtattr *)parms_buf;
 654- 	int parms_change = 0;
 655- 
 656-@@ -298,7 +298,7 @@ static int ipntable_modify(int cmd, int flags, int argc, char **argv)
 657- static const char *ntable_strtime_delta(__u32 msec)
 658- {
 659- 	static char str[32];
 660--	struct timeval now = {};
 661-+	struct timeval now = {0};
 662- 	time_t t;
 663- 	struct tm *tp;
 664- 
 665-diff --git a/ip/iptunnel.c b/ip/iptunnel.c
 666-index b6da1459..46c5f894 100644
 667---- a/ip/iptunnel.c
 668-+++ b/ip/iptunnel.c
 669-@@ -176,7 +176,7 @@ static int parse_args(int argc, char **argv, int cmd, struct ip_tunnel_parm *p)
 670- 				union {
 671- 					struct ip_tunnel_parm ip_tnl;
 672- 					struct ip6_tnl_parm2 ip6_tnl;
 673--				} old_p = {};
 674-+				} old_p = {0};
 675- 
 676- 				if (tnl_get_ioctl(*argv, &old_p))
 677- 					return -1;
 678-@@ -294,7 +294,7 @@ static int do_del(int argc, char **argv)
 679- static void print_tunnel(const void *t)
 680- {
 681- 	const struct ip_tunnel_parm *p = t;
 682--	struct ip_tunnel_6rd ip6rd = {};
 683-+	struct ip_tunnel_6rd ip6rd = {0};
 684- 	SPRINT_BUF(b1);
 685- 
 686- 	/* Do not use format_host() for local addr,
 687-@@ -316,7 +316,7 @@ static void print_tunnel(const void *t)
 688- 				: "any");
 689- 
 690- 	if (p->iph.protocol == IPPROTO_IPV6 && (p->i_flags & SIT_ISATAP)) {
 691--		struct ip_tunnel_prl prl[16] = {};
 692-+		struct ip_tunnel_prl prl[16] = {0};
 693- 		int i;
 694- 
 695- 		prl[0].datalen = sizeof(prl) - sizeof(prl[0]);
 696-@@ -439,7 +439,7 @@ static int do_show(int argc, char **argv)
 697- 
 698- static int do_prl(int argc, char **argv)
 699- {
 700--	struct ip_tunnel_prl p = {};
 701-+	struct ip_tunnel_prl p = {0};
 702- 	int count = 0;
 703- 	int cmd = 0;
 704- 	const char *medium = NULL;
 705-@@ -488,7 +488,7 @@ static int do_prl(int argc, char **argv)
 706- 
 707- static int do_6rd(int argc, char **argv)
 708- {
 709--	struct ip_tunnel_6rd ip6rd = {};
 710-+	struct ip_tunnel_6rd ip6rd = {0};
 711- 	int cmd = 0;
 712- 	const char *medium = NULL;
 713- 	inet_prefix prefix;
 714-diff --git a/ip/iptuntap.c b/ip/iptuntap.c
 715-index 0b63f53d..3cf55055 100644
 716---- a/ip/iptuntap.c
 717-+++ b/ip/iptuntap.c
 718-@@ -257,7 +257,7 @@ static void print_flags(long flags)
 719- 
 720- static void show_processes(const char *name)
 721- {
 722--	glob_t globbuf = { };
 723-+	glob_t globbuf = {0};
 724- 	char **fd_path;
 725- 	int err;
 726- 
 727-diff --git a/ip/ipxfrm.c b/ip/ipxfrm.c
 728-index c3a5986f..7b78712f 100644
 729---- a/ip/ipxfrm.c
 730-+++ b/ip/ipxfrm.c
 731-@@ -908,7 +908,7 @@ void xfrm_xfrma_print(struct rtattr *tb[], __u16 family, FILE *fp,
 732- 
 733- static int xfrm_selector_iszero(struct xfrm_selector *s)
 734- {
 735--	struct xfrm_selector s0 = {};
 736-+	struct xfrm_selector s0 = {0};
 737- 
 738- 	return (memcmp(&s0, s, sizeof(s0)) == 0);
 739- }
 740-@@ -930,7 +930,7 @@ void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo,
 741- 			    struct rtattr *tb[], FILE *fp, const char *prefix,
 742- 			    const char *title, bool nokeys)
 743- {
 744--	char buf[STRBUF_SIZE] = {};
 745-+	char buf[STRBUF_SIZE] = {0};
 746- 	int force_spi = xfrm_xfrmproto_is_ipsec(xsinfo->id.proto);
 747- 
 748- 	xfrm_id_info_print(&xsinfo->saddr, &xsinfo->id, xsinfo->mode,
 749-@@ -1001,7 +1001,7 @@ void xfrm_policy_info_print(struct xfrm_userpolicy_info *xpinfo,
 750- 			    struct rtattr *tb[], FILE *fp, const char *prefix,
 751- 			    const char *title)
 752- {
 753--	char buf[STRBUF_SIZE] = {};
 754-+	char buf[STRBUF_SIZE] = {0};
 755- 
 756- 	xfrm_selector_print(&xpinfo->sel, preferred_family, fp, title);
 757- 
 758-@@ -1091,8 +1091,8 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family,
 759- {
 760- 	int argc = *argcp;
 761- 	char **argv = *argvp;
 762--	inet_prefix dst = {};
 763--	inet_prefix src = {};
 764-+	inet_prefix dst = {0};
 765-+	inet_prefix src = {0};
 766- 
 767- 	while (1) {
 768- 		if (strcmp(*argv, "src") == 0) {
 769-@@ -1399,8 +1399,8 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp)
 770- {
 771- 	int argc = *argcp;
 772- 	char **argv = *argvp;
 773--	inet_prefix dst = {};
 774--	inet_prefix src = {};
 775-+	inet_prefix dst = {0};
 776-+	inet_prefix src = {0};
 777- 	char *upspecp = NULL;
 778- 
 779- 	while (1) {
 780-diff --git a/ip/xfrm_policy.c b/ip/xfrm_policy.c
 781-index 8687ced3..161cec66 100644
 782---- a/ip/xfrm_policy.c
 783-+++ b/ip/xfrm_policy.c
 784-@@ -244,15 +244,15 @@ static int xfrm_policy_modify(int cmd, unsigned int flags, int argc, char **argv
 785- 	char *selp = NULL;
 786- 	char *ptypep = NULL;
 787- 	char *sctxp = NULL;
 788--	struct xfrm_userpolicy_type upt = {};
 789--	struct xfrm_user_offload xuo = {};
 790--	char tmpls_buf[XFRM_TMPLS_BUF_SIZE] = {};
 791-+	struct xfrm_userpolicy_type upt = {0};
 792-+	struct xfrm_user_offload xuo = {0};
 793-+	char tmpls_buf[XFRM_TMPLS_BUF_SIZE] = {0};
 794- 	int tmpls_len = 0;
 795- 	struct xfrm_mark mark = {0, 0};
 796- 	struct {
 797- 		struct xfrm_user_sec_ctx sctx;
 798- 		char	str[CTX_BUF_SIZE];
 799--	} ctx = {};
 800-+	} ctx = {0};
 801- 	bool is_if_id_set = false;
 802- 	unsigned int ifindex = 0;
 803- 	bool is_offload = false;
 804-@@ -589,12 +589,12 @@ static int xfrm_policy_get_or_delete(int argc, char **argv, int delete,
 805- 	char *indexp = NULL;
 806- 	char *ptypep = NULL;
 807- 	char *sctxp = NULL;
 808--	struct xfrm_userpolicy_type upt = {};
 809-+	struct xfrm_userpolicy_type upt = {0};
 810- 	struct xfrm_mark mark = {0, 0};
 811- 	struct {
 812- 		struct xfrm_user_sec_ctx sctx;
 813- 		char    str[CTX_BUF_SIZE];
 814--	} ctx = {};
 815-+	} ctx = {0};
 816- 	bool is_if_id_set = false;
 817- 	__u32 if_id = 0;
 818- 
 819-@@ -1276,7 +1276,7 @@ static int xfrm_policy_flush(int argc, char **argv)
 820- 		.n.nlmsg_type = XFRM_MSG_FLUSHPOLICY,
 821- 	};
 822- 	char *ptypep = NULL;
 823--	struct xfrm_userpolicy_type upt = {};
 824-+	struct xfrm_userpolicy_type upt = {0};
 825- 
 826- 	while (argc > 0) {
 827- 		if (strcmp(*argv, "ptype") == 0) {
 828-diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c
 829-index 9be65b2f..6e141335 100644
 830---- a/ip/xfrm_state.c
 831-+++ b/ip/xfrm_state.c
 832-@@ -286,9 +286,9 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv)
 833- 		.xsinfo.lft.soft_packet_limit = XFRM_INF,
 834- 		.xsinfo.lft.hard_packet_limit = XFRM_INF,
 835- 	};
 836--	struct xfrm_replay_state replay = {};
 837--	struct xfrm_replay_state_esn replay_esn = {};
 838--	struct xfrm_user_offload xuo = {};
 839-+	struct xfrm_replay_state replay = {0};
 840-+	struct xfrm_replay_state_esn replay_esn = {0};
 841-+	struct xfrm_user_offload xuo = {0};
 842- 	unsigned int ifindex = 0;
 843- 	__u8 dir = 0;
 844- 	bool is_offload = false, is_packet_offload = false;
 845-@@ -306,7 +306,7 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv)
 846- 	struct {
 847- 		struct xfrm_user_sec_ctx sctx;
 848- 		char    str[CTX_BUF_SIZE];
 849--	} ctx = {};
 850-+	} ctx = {0};
 851- 	struct xfrm_mark output_mark = {0, 0};
 852- 	bool is_if_id_set = false;
 853- 	__u32 if_id = 0;
 854-@@ -376,7 +376,7 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv)
 855- 				  (void *)&encap, sizeof(encap));
 856- 		} else if (strcmp(*argv, "coa") == 0) {
 857- 			inet_prefix coa;
 858--			xfrm_address_t xcoa = {};
 859-+			xfrm_address_t xcoa = {0};
 860- 
 861- 			if (coap)
 862- 				duparg("coa", *argv);
 863-@@ -481,7 +481,7 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv)
 864- 						struct xfrm_algo_auth auth;
 865- 					} u;
 866- 					char buf[XFRM_ALGO_KEY_BUF_SIZE];
 867--				} alg = {};
 868-+				} alg = {0};
 869- 				int len;
 870- 				__u32 icvlen, trunclen;
 871- 				char *name;
 872-diff --git a/lib/bpf_legacy.c b/lib/bpf_legacy.c
 873-index c8da4a3e..253e8240 100644
 874---- a/lib/bpf_legacy.c
 875-+++ b/lib/bpf_legacy.c
 876-@@ -133,7 +133,7 @@ static inline __u64 bpf_ptr_to_u64(const void *ptr)
 877- static int bpf_map_update(int fd, const void *key, const void *value,
 878- 			  uint64_t flags)
 879- {
 880--	union bpf_attr attr = {};
 881-+	union bpf_attr attr = {0};
 882- 
 883- 	attr.map_fd = fd;
 884- 	attr.key = bpf_ptr_to_u64(key);
 885-@@ -145,7 +145,7 @@ static int bpf_map_update(int fd, const void *key, const void *value,
 886- 
 887- static int bpf_prog_fd_by_id(uint32_t id)
 888- {
 889--	union bpf_attr attr = {};
 890-+	union bpf_attr attr = {0};
 891- 
 892- 	attr.prog_id = id;
 893- 
 894-@@ -155,7 +155,7 @@ static int bpf_prog_fd_by_id(uint32_t id)
 895- static int bpf_prog_info_by_fd(int fd, struct bpf_prog_info *info,
 896- 			       uint32_t *info_len)
 897- {
 898--	union bpf_attr attr = {};
 899-+	union bpf_attr attr = {0};
 900- 	int ret;
 901- 
 902- 	attr.info.bpf_fd = fd;
 903-@@ -172,7 +172,7 @@ static int bpf_prog_info_by_fd(int fd, struct bpf_prog_info *info,
 904- 
 905- int bpf_dump_prog_info(FILE *f, uint32_t id)
 906- {
 907--	struct bpf_prog_info info = {};
 908-+	struct bpf_prog_info info = {0};
 909- 	uint32_t len = sizeof(info);
 910- 	int fd, ret, dump_ok = 0;
 911- 	SPRINT_BUF(tmp);
 912-@@ -452,7 +452,7 @@ static int bpf_map_selfcheck_pinned(int fd, const struct bpf_elf_map *map,
 913- 				    struct bpf_map_ext *ext, int length,
 914- 				    enum bpf_prog_type type)
 915- {
 916--	struct bpf_elf_map tmp, zero = {};
 917-+	struct bpf_elf_map tmp, zero = {0};
 918- 	int ret;
 919- 
 920- 	ret = bpf_derive_elf_map_from_fdinfo(fd, &tmp, ext);
 921-@@ -694,7 +694,7 @@ static int bpf_gen_slave(const char *base, const char *name,
 922- {
 923- 	char bpf_lnk_dir[PATH_MAX + NAME_MAX + 1];
 924- 	char bpf_sub_dir[PATH_MAX + NAME_MAX];
 925--	struct stat sb = {};
 926-+	struct stat sb = {0};
 927- 	int ret;
 928- 
 929- 	snprintf(bpf_lnk_dir, sizeof(bpf_lnk_dir), "%s%s/", base, link);
 930-@@ -801,7 +801,7 @@ out:
 931- 
 932- static int bpf_obj_get(const char *pathname, enum bpf_prog_type type)
 933- {
 934--	union bpf_attr attr = {};
 935-+	union bpf_attr attr = {0};
 936- 	char tmp[PATH_MAX];
 937- 
 938- 	if (strlen(pathname) > 2 && pathname[0] == 'm' &&
 939-@@ -982,7 +982,7 @@ int bpf_load_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops,
 940- 
 941- int bpf_parse_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops)
 942- {
 943--	bool opt_tbl[BPF_MODE_MAX] = {};
 944-+	bool opt_tbl[BPF_MODE_MAX] = {0};
 945- 
 946- 	if (ops->cbpf_cb) {
 947- 		opt_tbl[CBPF_BYTECODE] = true;
 948-@@ -1025,7 +1025,7 @@ int bpf_graft_map(const char *map_path, uint32_t *key, int argc, char **argv)
 949- 		.argc		= argc,
 950- 		.argv		= argv,
 951- 	};
 952--	struct bpf_map_ext ext = {};
 953-+	struct bpf_map_ext ext = {0};
 954- 	int ret, prog_fd, map_fd;
 955- 	uint32_t map_key;
 956- 
 957-@@ -1078,7 +1078,7 @@ out_prog:
 958- 
 959- int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
 960- {
 961--	union bpf_attr attr = {};
 962-+	union bpf_attr attr = {0};
 963- 
 964- 	attr.target_fd = target_fd;
 965- 	attr.attach_bpf_fd = prog_fd;
 966-@@ -1089,7 +1089,7 @@ int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
 967- 
 968- int bpf_prog_detach_fd(int target_fd, enum bpf_attach_type type)
 969- {
 970--	union bpf_attr attr = {};
 971-+	union bpf_attr attr = {0};
 972- 
 973- 	attr.target_fd = target_fd;
 974- 	attr.attach_type = type;
 975-@@ -1101,7 +1101,7 @@ int bpf_prog_load_dev(enum bpf_prog_type type, const struct bpf_insn *insns,
 976- 		      size_t size_insns, const char *license, __u32 ifindex,
 977- 		      char *log, size_t size_log, bool verbose)
 978- {
 979--	union bpf_attr attr = {};
 980-+	union bpf_attr attr = {0};
 981- 
 982- 	attr.prog_type = type;
 983- 	attr.insns = bpf_ptr_to_u64(insns);
 984-@@ -1265,7 +1265,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
 985- 			  uint32_t ifindex, uint32_t btf_id_key,
 986- 			  uint32_t btf_id_val)
 987- {
 988--	union bpf_attr attr = {};
 989-+	union bpf_attr attr = {0};
 990- 
 991- 	attr.map_type = type;
 992- 	attr.key_size = size_key;
 993-@@ -1284,7 +1284,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
 994- static int bpf_btf_load(void *btf, size_t size_btf,
 995- 			char *log, size_t size_log)
 996- {
 997--	union bpf_attr attr = {};
 998-+	union bpf_attr attr = {0};
 999- 
1000- 	attr.btf = bpf_ptr_to_u64(btf);
1001- 	attr.btf_size = size_btf;
1002-@@ -1300,7 +1300,7 @@ static int bpf_btf_load(void *btf, size_t size_btf,
1003- 
1004- static int bpf_obj_pin(int fd, const char *pathname)
1005- {
1006--	union bpf_attr attr = {};
1007-+	union bpf_attr attr = {0};
1008- 
1009- 	attr.pathname = bpf_ptr_to_u64(pathname);
1010- 	attr.bpf_fd = fd;
1011-@@ -1985,7 +1985,7 @@ static int bpf_map_verify_all_offs(struct bpf_elf_ctx *ctx, int end)
1012- 
1013- static int bpf_fetch_maps_end(struct bpf_elf_ctx *ctx)
1014- {
1015--	struct bpf_elf_map fixup[ARRAY_SIZE(ctx->maps)] = {};
1016-+	struct bpf_elf_map fixup[ARRAY_SIZE(ctx->maps)] = {0};
1017- 	int i, sym_num = bpf_map_num_sym(ctx);
1018- 	__u8 *buff;
1019- 
1020-@@ -2491,7 +2491,7 @@ static int bpf_fetch_prog_relo(struct bpf_elf_ctx *ctx, const char *section,
1021- 	int ret, idx, i, fd = -1;
1022- 
1023- 	for (i = 1; i < ctx->elf_hdr.e_shnum; i++) {
1024--		struct bpf_relo_props props = {};
1025-+		struct bpf_relo_props props = {0};
1026- 
1027- 		ret = bpf_fill_section_data(ctx, i, &data_relo);
1028- 		if (ret < 0 || data_relo.sec_hdr.sh_type != SHT_REL)
1029-@@ -2666,7 +2666,7 @@ static int bpf_fill_prog_arrays(struct bpf_elf_ctx *ctx)
1030- 		ret = bpf_map_update(ctx->map_fds[idx], &key_id,
1031- 				     &fd, BPF_ANY);
1032- 		if (ret < 0) {
1033--			struct bpf_jited_aux aux = {};
1034-+			struct bpf_jited_aux aux = {0};
1035- 
1036- 			ret = -errno;
1037- 			if (errno == E2BIG) {
1038-@@ -2757,7 +2757,7 @@ static bool bpf_pinning_reserved(uint32_t pinning)
1039- static int bpf_hash_init(struct bpf_elf_ctx *ctx, const char *db_file)
1040- {
1041- 	struct bpf_hash_entry *entry;
1042--	char subpath[PATH_MAX] = {};
1043-+	char subpath[PATH_MAX] = {0};
1044- 	uint32_t pinning;
1045- 	FILE *fp;
1046- 	int ret;
1047-@@ -2857,7 +2857,7 @@ static void bpf_get_cfg(struct bpf_elf_ctx *ctx)
1048- 
1049- 	fd = open(path_jit, O_RDONLY);
1050- 	if (fd >= 0) {
1051--		char tmp[16] = {};
1052-+		char tmp[16] = {0};
1053- 
1054- 		if (read(fd, tmp, sizeof(tmp)) > 0)
1055- 			ctx->cfg.jit_enabled = atoi(tmp);
1056-diff --git a/lib/libnetlink.c b/lib/libnetlink.c
1057-index 80adabf4..db613e8d 100644
1058---- a/lib/libnetlink.c
1059-+++ b/lib/libnetlink.c
1060-@@ -79,7 +79,7 @@ static void print_ext_ack_msg(bool is_err, const char *msg)
1061- /* dump netlink extended ack error message */
1062- int nl_dump_ext_ack(const struct nlmsghdr *nlh, nl_ext_ack_fn_t errfn)
1063- {
1064--	struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {};
1065-+	struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {0};
1066- 	const struct nlmsgerr *err = mnl_nlmsg_get_payload(nlh);
1067- 	const struct nlmsghdr *err_nlh = NULL;
1068- 	unsigned int hlen = sizeof(*err);
1069-@@ -126,7 +126,7 @@ int nl_dump_ext_ack(const struct nlmsghdr *nlh, nl_ext_ack_fn_t errfn)
1070- 
1071- int nl_dump_ext_ack_done(const struct nlmsghdr *nlh, unsigned int offset, int error)
1072- {
1073--	struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {};
1074-+	struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {0};
1075- 	const char *msg = NULL;
1076- 
1077- 	if (mnl_attr_parse(nlh, offset, err_attr_cb, tb) != MNL_CB_OK)
1078-@@ -959,7 +959,7 @@ int rtnl_dump_filter_nc(struct rtnl_handle *rth,
1079- 			.filter = filter, .arg1 = arg1,
1080- 			.nc_flags = nc_flags,
1081- 		},
1082--		{ },
1083-+		{0},
1084- 	};
1085- 
1086- 	return rtnl_dump_filter_l(rth, a);
1087-@@ -978,7 +978,7 @@ int rtnl_dump_filter_errhndlr_nc(struct rtnl_handle *rth,
1088- 			.errhndlr = errhndlr, .arg2 = arg2,
1089- 			.nc_flags = nc_flags,
1090- 		},
1091--		{ },
1092-+		{0},
1093- 	};
1094- 
1095- 	return rtnl_dump_filter_l(rth, a);
1096-diff --git a/lib/ll_map.c b/lib/ll_map.c
1097-index 8970c20f..7fe5f0bc 100644
1098---- a/lib/ll_map.c
1099-+++ b/lib/ll_map.c
1100-@@ -274,7 +274,7 @@ static int ll_link_get(const char *name, int index)
1101- 		.ifm.ifi_index = index,
1102- 	};
1103- 	__u32 filt_mask = RTEXT_FILTER_VF | RTEXT_FILTER_SKIP_STATS;
1104--	struct rtnl_handle rth = {};
1105-+	struct rtnl_handle rth = {0};
1106- 	struct nlmsghdr *answer;
1107- 	int rc = 0;
1108- 
1109-diff --git a/lib/rt_names.c b/lib/rt_names.c
1110-index dafef3f1..c3b121fe 100644
1111---- a/lib/rt_names.c
1112-+++ b/lib/rt_names.c
1113-@@ -825,8 +825,7 @@ int nl_proto_a2n(__u32 *id, const char *arg)
1114- }
1115- 
1116- #define PROTODOWN_REASON_NUM_BITS 32
1117--static char *protodown_reason_tab[PROTODOWN_REASON_NUM_BITS] = {
1118--};
1119-+static char *protodown_reason_tab[PROTODOWN_REASON_NUM_BITS];
1120- 
1121- static int protodown_reason_init;
1122- 
1123-diff --git a/misc/arpd.c b/misc/arpd.c
1124-index 1ef837c6..71524bd4 100644
1125---- a/misc/arpd.c
1126-+++ b/misc/arpd.c
1127-@@ -431,7 +431,7 @@ static void get_kern_msg(void)
1128- {
1129- 	int status;
1130- 	struct nlmsghdr *h;
1131--	struct sockaddr_nl nladdr = {};
1132-+	struct sockaddr_nl nladdr = {0};
1133- 	struct iovec iov;
1134- 	char   buf[8192];
1135- 	struct msghdr msg = {
1136-@@ -655,7 +655,7 @@ int main(int argc, char **argv)
1137- 
1138- 	if (ifnum) {
1139- 		int i;
1140--		struct ifreq ifr = {};
1141-+		struct ifreq ifr = {0};
1142- 
1143- 		for (i = 0; i < ifnum; i++) {
1144- 			if (get_ifname(ifr.ifr_name, ifnames[i]))
1145-diff --git a/misc/ss.c b/misc/ss.c
1146-index fb560a55..e5d97d95 100644
1147---- a/misc/ss.c
1148-+++ b/misc/ss.c
1149-@@ -2760,7 +2760,7 @@ static void sctp_timer_print(struct tcpstat *s)
1150- static int tcp_show_line(char *line, const struct filter *f, int family)
1151- {
1152- 	int rto = 0, ato = 0;
1153--	struct tcpstat s = {};
1154-+	struct tcpstat s = {0};
1155- 	char *loc, *rem, *data;
1156- 	char opt[256];
1157- 	int n;
1158-@@ -3041,7 +3041,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
1159- 		struct rtattr *tb[])
1160- {
1161- 	double rtt = 0;
1162--	struct tcpstat s = {};
1163-+	struct tcpstat s = {0};
1164- 
1165- 	s.ss.state = r->idiag_state;
1166- 
1167-@@ -3414,7 +3414,7 @@ static int inet_show_sock(struct nlmsghdr *nlh,
1168- 	inet_stats_print(s, v6only);
1169- 
1170- 	if (show_options) {
1171--		struct tcpstat t = {};
1172-+		struct tcpstat t = {0};
1173- 
1174- 		t.timer = r->idiag_timer;
1175- 		t.timeout = r->idiag_expires;
1176-@@ -3691,7 +3691,7 @@ static int show_one_inet_sock(struct nlmsghdr *h, void *arg)
1177- 	int err;
1178- 	struct inet_diag_arg *diag_arg = arg;
1179- 	struct inet_diag_msg *r = NLMSG_DATA(h);
1180--	struct sockstat s = {};
1181-+	struct sockstat s = {0};
1182- 
1183- 	if (!(diag_arg->f->families & FAMILY_MASK(r->idiag_family)))
1184- 		return 0;
1185-@@ -3788,7 +3788,7 @@ static int tcp_show_netlink_file(struct filter *f)
1186- 		int err2;
1187- 		size_t status, nitems;
1188- 		struct nlmsghdr *h = (struct nlmsghdr *)buf;
1189--		struct sockstat s = {};
1190-+		struct sockstat s = {0};
1191- 
1192- 		status = fread(buf, 1, sizeof(*h), fp);
1193- 		if (status != sizeof(*h)) {
1194-@@ -3945,7 +3945,7 @@ static int sctp_show(struct filter *f)
1195- 
1196- static int dgram_show_line(char *line, const struct filter *f, int family)
1197- {
1198--	struct sockstat s = {};
1199-+	struct sockstat s = {0};
1200- 	char *loc, *rem, *data;
1201- 	char opt[256];
1202- 	int n;
1203-@@ -4085,7 +4085,7 @@ static bool unix_type_skip(struct sockstat *s, struct filter *f)
1204- 
1205- static void unix_stats_print(struct sockstat *s, struct filter *f)
1206- {
1207--	char port_name[30] = {};
1208-+	char port_name[30] = {0};
1209- 
1210- 	sock_state_print(s);
1211- 
1212-@@ -4398,7 +4398,7 @@ static int packet_show_sock(struct nlmsghdr *nlh, void *arg)
1213- 	struct packet_diag_info *pinfo = NULL;
1214- 	struct packet_diag_ring *ring_rx = NULL, *ring_tx = NULL;
1215- 	struct rtattr *tb[PACKET_DIAG_MAX+1];
1216--	struct sockstat stat = {};
1217-+	struct sockstat stat = {0};
1218- 	uint32_t fanout = 0;
1219- 	bool has_fanout = false;
1220- 
1221-@@ -4547,7 +4547,7 @@ static int packet_show_netlink(struct filter *f)
1222- static int packet_show_line(char *buf, const struct filter *f, int fam)
1223- {
1224- 	unsigned long long sk;
1225--	struct sockstat stat = {};
1226-+	struct sockstat stat = {0};
1227- 	int type, prot, iface, state, rq, uid, ino;
1228- 
1229- 	sscanf(buf, "%llx %*d %d %x %d %d %u %u %u",
1230-@@ -4687,7 +4687,7 @@ static int xdp_show_sock(struct nlmsghdr *nlh, void *arg)
1231- 	struct xdp_diag_umem *umem = NULL;
1232- 	struct xdp_diag_stats *stats = NULL;
1233- 	const struct filter *f = arg;
1234--	struct sockstat stat = {};
1235-+	struct sockstat stat = {0};
1236- 
1237- 	parse_rtattr(tb, XDP_DIAG_MAX, (struct rtattr *)(msg + 1),
1238- 		     nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*msg)));
1239-@@ -4772,9 +4772,9 @@ static int netlink_show_one(struct filter *f,
1240- 		.remote.family	= AF_NETLINK,
1241- 	};
1242- 
1243--	SPRINT_BUF(prot_buf) = {};
1244-+	SPRINT_BUF(prot_buf) = {0};
1245- 	const char *prot_name;
1246--	char procname[64] = {};
1247-+	char procname[64] = {0};
1248- 
1249- 	if (f->f) {
1250- 		st.rport = -1;
1251-@@ -5021,8 +5021,8 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
1252- 	uint32_t node = rta_getattr_u32(net_addr);
1253- 	uint32_t identity = rta_getattr_u32(id);
1254- 
1255--	SPRINT_BUF(addr) = {};
1256--	SPRINT_BUF(port) = {};
1257-+	SPRINT_BUF(addr) = {0};
1258-+	SPRINT_BUF(port) = {0};
1259- 
1260- 	sprintf(addr, "%u", node);
1261- 	sprintf(port, "%u", identity);
1262-@@ -5032,12 +5032,12 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
1263- 
1264- static int tipc_show_sock(struct nlmsghdr *nlh, void *arg)
1265- {
1266--	struct rtattr *stat[TIPC_NLA_SOCK_STAT_MAX + 1] = {};
1267--	struct rtattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {};
1268--	struct rtattr *con[TIPC_NLA_CON_MAX + 1] = {};
1269--	struct rtattr *info[TIPC_NLA_MAX + 1] = {};
1270-+	struct rtattr *stat[TIPC_NLA_SOCK_STAT_MAX + 1] = {0};
1271-+	struct rtattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {0};
1272-+	struct rtattr *con[TIPC_NLA_CON_MAX + 1] = {0};
1273-+	struct rtattr *info[TIPC_NLA_MAX + 1] = {0};
1274- 	struct rtattr *msg_ref;
1275--	struct sockstat ss = {};
1276-+	struct sockstat ss = {0};
1277- 
1278- 	parse_rtattr(info, TIPC_NLA_MAX, NLMSG_DATA(nlh),
1279- 		     NLMSG_PAYLOAD(nlh, 0));
1280-diff --git a/rdma/dev.c b/rdma/dev.c
1281-index f495b713..dfc886bb 100644
1282---- a/rdma/dev.c
1283-+++ b/rdma/dev.c
1284-@@ -201,7 +201,7 @@ static void dev_print_dev_proto(struct nlattr **tb)
1285- 
1286- static int dev_parse_cb(const struct nlmsghdr *nlh, void *data)
1287- {
1288--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1289-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1290- 	struct rd *rd = data;
1291- 	const char *name;
1292- 	uint32_t idx;
1293-diff --git a/rdma/link.c b/rdma/link.c
1294-index 85318173..9b3125d6 100644
1295---- a/rdma/link.c
1296-+++ b/rdma/link.c
1297-@@ -220,7 +220,7 @@ static void link_print_netdev(const struct rd * rd, struct nlattr **tb)
1298- 
1299- static int link_parse_cb(const struct nlmsghdr *nlh, void *data)
1300- {
1301--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1302-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1303- 	struct rd *rd = data;
1304- 	uint32_t port, idx;
1305- 	const char *name;
1306-diff --git a/rdma/rdma.c b/rdma/rdma.c
1307-index 131c6b2a..90bf3ed5 100644
1308---- a/rdma/rdma.c
1309-+++ b/rdma/rdma.c
1310-@@ -103,7 +103,7 @@ int main(int argc, char **argv)
1311- 	bool show_raw = false;
1312- 	bool force = false;
1313- 	bool oneline = false;
1314--	struct rd rd = {};
1315-+	struct rd rd = {0};
1316- 	char *filename;
1317- 	int opt;
1318- 	int err;
1319-diff --git a/rdma/res-cmid.c b/rdma/res-cmid.c
1320-index 17a89cc4..7d348d45 100644
1321---- a/rdma/res-cmid.c
1322-+++ b/rdma/res-cmid.c
1323-@@ -202,7 +202,7 @@ out:
1324- 
1325- int res_cm_id_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1326- {
1327--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1328-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1329- 	struct rd *rd = data;
1330- 	const char *name;
1331- 	int idx;
1332-@@ -219,7 +219,7 @@ int res_cm_id_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1333- 
1334- int res_cm_id_parse_cb(const struct nlmsghdr *nlh, void *data)
1335- {
1336--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1337-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1338- 	struct nlattr *nla_table, *nla_entry;
1339- 	struct rd *rd = data;
1340- 	int ret = MNL_CB_OK;
1341-@@ -236,7 +236,7 @@ int res_cm_id_parse_cb(const struct nlmsghdr *nlh, void *data)
1342- 	nla_table = tb[RDMA_NLDEV_ATTR_RES_CM_ID];
1343- 
1344- 	mnl_attr_for_each_nested(nla_entry, nla_table) {
1345--		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
1346-+		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
1347- 
1348- 		ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
1349- 		if (ret != MNL_CB_OK)
1350-diff --git a/rdma/res-cq.c b/rdma/res-cq.c
1351-index 0cab3fe0..a8ee00dc 100644
1352---- a/rdma/res-cq.c
1353-+++ b/rdma/res-cq.c
1354-@@ -130,7 +130,7 @@ out:
1355- 
1356- int res_cq_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1357- {
1358--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1359-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1360- 	struct rd *rd = data;
1361- 	const char *name;
1362- 	uint32_t idx;
1363-@@ -148,7 +148,7 @@ int res_cq_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1364- 
1365- int res_cq_parse_cb(const struct nlmsghdr *nlh, void *data)
1366- {
1367--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1368-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1369- 	struct nlattr *nla_table, *nla_entry;
1370- 	struct rd *rd = data;
1371- 	int ret = MNL_CB_OK;
1372-@@ -165,7 +165,7 @@ int res_cq_parse_cb(const struct nlmsghdr *nlh, void *data)
1373- 	nla_table = tb[RDMA_NLDEV_ATTR_RES_CQ];
1374- 
1375- 	mnl_attr_for_each_nested(nla_entry, nla_table) {
1376--		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
1377-+		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
1378- 
1379- 		ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
1380- 		if (ret != MNL_CB_OK)
1381-diff --git a/rdma/res-mr.c b/rdma/res-mr.c
1382-index f6c2534a..024f5994 100644
1383---- a/rdma/res-mr.c
1384-+++ b/rdma/res-mr.c
1385-@@ -96,7 +96,7 @@ out:
1386- 
1387- int res_mr_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1388- {
1389--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1390-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1391- 	struct rd *rd = data;
1392- 	const char *name;
1393- 	uint32_t idx;
1394-@@ -114,7 +114,7 @@ int res_mr_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1395- 
1396- int res_mr_parse_cb(const struct nlmsghdr *nlh, void *data)
1397- {
1398--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1399-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1400- 	struct nlattr *nla_table, *nla_entry;
1401- 	struct rd *rd = data;
1402- 	int ret = MNL_CB_OK;
1403-@@ -131,7 +131,7 @@ int res_mr_parse_cb(const struct nlmsghdr *nlh, void *data)
1404- 	nla_table = tb[RDMA_NLDEV_ATTR_RES_MR];
1405- 
1406- 	mnl_attr_for_each_nested(nla_entry, nla_table) {
1407--		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
1408-+		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
1409- 
1410- 		ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
1411- 		if (ret != MNL_CB_OK)
1412-diff --git a/rdma/res-pd.c b/rdma/res-pd.c
1413-index 8b9f7aa6..e45b1d0d 100644
1414---- a/rdma/res-pd.c
1415-+++ b/rdma/res-pd.c
1416-@@ -82,7 +82,7 @@ out:
1417- 
1418- int res_pd_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1419- {
1420--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1421-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1422- 	struct rd *rd = data;
1423- 	const char *name;
1424- 	uint32_t idx;
1425-@@ -99,7 +99,7 @@ int res_pd_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1426- 
1427- int res_pd_parse_cb(const struct nlmsghdr *nlh, void *data)
1428- {
1429--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1430-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1431- 	struct nlattr *nla_table, *nla_entry;
1432- 	struct rd *rd = data;
1433- 	int ret = MNL_CB_OK;
1434-@@ -116,7 +116,7 @@ int res_pd_parse_cb(const struct nlmsghdr *nlh, void *data)
1435- 	nla_table = tb[RDMA_NLDEV_ATTR_RES_PD];
1436- 
1437- 	mnl_attr_for_each_nested(nla_entry, nla_table) {
1438--		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
1439-+		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
1440- 
1441- 		ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
1442- 		if (ret != MNL_CB_OK)
1443-diff --git a/rdma/res-qp.c b/rdma/res-qp.c
1444-index 65ff54ab..49a3d549 100644
1445---- a/rdma/res-qp.c
1446-+++ b/rdma/res-qp.c
1447-@@ -183,7 +183,7 @@ out:
1448- 
1449- int res_qp_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1450- {
1451--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1452-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1453- 	struct rd *rd = data;
1454- 	const char *name;
1455- 	uint32_t idx;
1456-@@ -201,7 +201,7 @@ int res_qp_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1457- 
1458- int res_qp_parse_cb(const struct nlmsghdr *nlh, void *data)
1459- {
1460--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1461-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1462- 	struct nlattr *nla_table, *nla_entry;
1463- 	struct rd *rd = data;
1464- 	int ret = MNL_CB_OK;
1465-@@ -218,7 +218,7 @@ int res_qp_parse_cb(const struct nlmsghdr *nlh, void *data)
1466- 	nla_table = tb[RDMA_NLDEV_ATTR_RES_QP];
1467- 
1468- 	mnl_attr_for_each_nested(nla_entry, nla_table) {
1469--		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
1470-+		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
1471- 
1472- 		ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
1473- 		if (ret != MNL_CB_OK)
1474-diff --git a/rdma/res.c b/rdma/res.c
1475-index 3e024134..fac047f2 100644
1476---- a/rdma/res.c
1477-+++ b/rdma/res.c
1478-@@ -38,7 +38,7 @@ static int res_print_summary(struct nlattr **tb)
1479- 	int err;
1480- 
1481- 	mnl_attr_for_each_nested(nla_entry, nla_table) {
1482--		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {};
1483-+		struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0};
1484- 
1485- 		err = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
1486- 		if (err != MNL_CB_OK)
1487-@@ -63,7 +63,7 @@ static int res_no_args_idx_parse_cb(const struct nlmsghdr *nlh, void *data)
1488- 
1489- static int res_no_args_parse_cb(const struct nlmsghdr *nlh, void *data)
1490- {
1491--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1492-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1493- 	const char *name;
1494- 	uint32_t idx;
1495- 
1496-diff --git a/rdma/utils.c b/rdma/utils.c
1497-index 27595a38..9ac34a0d 100644
1498---- a/rdma/utils.c
1499-+++ b/rdma/utils.c
1500-@@ -512,7 +512,7 @@ int rd_attr_cb(const struct nlattr *attr, void *data)
1501- 
1502- int rd_dev_init_cb(const struct nlmsghdr *nlh, void *data)
1503- {
1504--	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {};
1505-+	struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0};
1506- 	struct dev_map *dev_map;
1507- 	struct rd *rd = data;
1508- 	const char *dev_name;
1509-diff --git a/tc/e_bpf.c b/tc/e_bpf.c
1510-index 79cddace..9ab76e26 100644
1511---- a/tc/e_bpf.c
1512-+++ b/tc/e_bpf.c
1513-@@ -54,8 +54,8 @@ static int parse_bpf(struct exec_util *eu, int argc, char **argv)
1514- 	char **argv_run = argv_default, **envp_run, *tmp;
1515- 	int ret, i, env_old, env_num, env_map;
1516- 	const char *bpf_uds_name = NULL;
1517--	int fds[BPF_SCM_MAX_FDS] = {};
1518--	struct bpf_map_aux aux = {};
1519-+	int fds[BPF_SCM_MAX_FDS] = {0};
1520-+	struct bpf_map_aux aux = {0};
1521- 
1522- 	if (argc == 0)
1523- 		return 0;
1524-diff --git a/tc/em_cmp.c b/tc/em_cmp.c
1525-index dfd123df..75a39990 100644
1526---- a/tc/em_cmp.c
1527-+++ b/tc/em_cmp.c
1528-@@ -39,7 +39,7 @@ static int cmp_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
1529- 	int align, opnd = 0;
1530- 	unsigned long offset = 0, layer = TCF_LAYER_NETWORK, mask = 0, value = 0;
1531- 	int offset_present = 0, value_present = 0;
1532--	struct tcf_em_cmp cmp = {};
1533-+	struct tcf_em_cmp cmp = {0};
1534- 
1535- #define PARSE_ERR(CARG, FMT, ARGS...) \
1536- 	em_parse_error(EINVAL, args, CARG, &cmp_ematch_util, FMT, ##ARGS)
1537-diff --git a/tc/em_ipset.c b/tc/em_ipset.c
1538-index f97abaf3..c80c429e 100644
1539---- a/tc/em_ipset.c
1540-+++ b/tc/em_ipset.c
1541-@@ -195,7 +195,7 @@ static void ipset_print_usage(FILE *fd)
1542- static int ipset_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
1543- 			    struct bstr *args)
1544- {
1545--	struct xt_set_info set_info = {};
1546-+	struct xt_set_info set_info = {0};
1547- 	int ret;
1548- 
1549- #define PARSE_ERR(CARG, FMT, ARGS...) \
1550-diff --git a/tc/em_meta.c b/tc/em_meta.c
1551-index 6a5654f3..b0ba5ba2 100644
1552---- a/tc/em_meta.c
1553-+++ b/tc/em_meta.c
1554-@@ -356,7 +356,7 @@ static int meta_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
1555- {
1556- 	int opnd;
1557- 	struct bstr *a;
1558--	struct tcf_meta_hdr meta_hdr = {};
1559-+	struct tcf_meta_hdr meta_hdr = {0};
1560- 	unsigned long lvalue = 0, rvalue = 0;
1561- 
1562- 	if (args == NULL)
1563-diff --git a/tc/em_nbyte.c b/tc/em_nbyte.c
1564-index 9f421fb4..c6afd298 100644
1565---- a/tc/em_nbyte.c
1566-+++ b/tc/em_nbyte.c
1567-@@ -39,7 +39,7 @@ static int nbyte_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
1568- 	struct bstr *needle = args;
1569- 	unsigned long offset = 0, layer = TCF_LAYER_NETWORK;
1570- 	int offset_present = 0;
1571--	struct tcf_em_nbyte nb = {};
1572-+	struct tcf_em_nbyte nb = {0};
1573- 
1574- #define PARSE_ERR(CARG, FMT, ARGS...) \
1575- 	em_parse_error(EINVAL, args, CARG, &nbyte_ematch_util, FMT, ##ARGS)
1576-diff --git a/tc/em_u32.c b/tc/em_u32.c
1577-index a83382ba..604a0caf 100644
1578---- a/tc/em_u32.c
1579-+++ b/tc/em_u32.c
1580-@@ -34,7 +34,7 @@ static int u32_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr,
1581- 	struct bstr *a;
1582- 	int align, nh_len;
1583- 	unsigned long key, mask, offmask = 0, offset;
1584--	struct tc_u32_key u_key = {};
1585-+	struct tc_u32_key u_key = {0};
1586- 
1587- #define PARSE_ERR(CARG, FMT, ARGS...) \
1588- 	em_parse_error(EINVAL, args, CARG, &u32_ematch_util, FMT, ##ARGS)
1589-diff --git a/tc/f_bpf.c b/tc/f_bpf.c
1590-index a6d4875f..b71b24e9 100644
1591---- a/tc/f_bpf.c
1592-+++ b/tc/f_bpf.c
1593-@@ -78,7 +78,7 @@ static int bpf_parse_opt(struct filter_util *qu, char *handle,
1594- 	struct tcmsg *t = NLMSG_DATA(n);
1595- 	unsigned int bpf_gen_flags = 0;
1596- 	unsigned int bpf_flags = 0;
1597--	struct bpf_cfg_in cfg = {};
1598-+	struct bpf_cfg_in cfg = {0};
1599- 	bool seen_run = false;
1600- 	bool skip_sw = false;
1601- 	struct rtattr *tail;
1602-diff --git a/tc/f_fw.c b/tc/f_fw.c
1603-index 5e72e526..e2a11847 100644
1604---- a/tc/f_fw.c
1605-+++ b/tc/f_fw.c
1606-@@ -88,7 +88,7 @@ static int fw_parse_opt(struct filter_util *qu, char *handle, int argc, char **a
1607- 			}
1608- 			continue;
1609- 		} else if (strcmp(*argv, "indev") == 0) {
1610--			char d[IFNAMSIZ+1] = {};
1611-+			char d[IFNAMSIZ+1] = {0};
1612- 
1613- 			argc--;
1614- 			argv++;
1615-diff --git a/tc/f_u32.c b/tc/f_u32.c
1616-index 59aa4e3a..19f035d0 100644
1617---- a/tc/f_u32.c
1618-+++ b/tc/f_u32.c
1619-@@ -1024,7 +1024,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle,
1620- 	struct {
1621- 		struct tc_u32_sel sel;
1622- 		struct tc_u32_key keys[128];
1623--	} sel = {};
1624-+	} sel = {0};
1625- 	struct tcmsg *t = NLMSG_DATA(n);
1626- 	struct rtattr *tail;
1627- 	int sel_ok = 0, terminal_ok = 0;
1628-@@ -1129,7 +1129,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle,
1629- 			struct {
1630- 				struct tc_u32_sel sel;
1631- 				struct tc_u32_key keys[4];
1632--			} sel2 = {};
1633-+			} sel2 = {0};
1634- 
1635- 			NEXT_ARG();
1636- 			if (parse_selector(&argc, &argv, &sel2.sel, n)) {
1637-@@ -1155,7 +1155,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle,
1638- 			sample_ok = 1;
1639- 			continue;
1640- 		} else if (strcmp(*argv, "indev") == 0) {
1641--			char ind[IFNAMSIZ + 1] = {};
1642-+			char ind[IFNAMSIZ + 1] = {0};
1643- 
1644- 			argc--;
1645- 			argv++;
1646-diff --git a/tc/m_bpf.c b/tc/m_bpf.c
1647-index da50c05e..81866e55 100644
1648---- a/tc/m_bpf.c
1649-+++ b/tc/m_bpf.c
1650-@@ -73,8 +73,8 @@ static int bpf_parse_opt(struct action_util *a, int *ptr_argc, char ***ptr_argv,
1651- 			 int tca_id, struct nlmsghdr *n)
1652- {
1653- 	const char *bpf_obj = NULL, *bpf_uds_name = NULL;
1654--	struct tc_act_bpf parm = {};
1655--	struct bpf_cfg_in cfg = {};
1656-+	struct tc_act_bpf parm = {0};
1657-+	struct bpf_cfg_in cfg = {0};
1658- 	bool seen_run = false;
1659- 	struct rtattr *tail;
1660- 	int argc, ret = 0;
1661-diff --git a/tc/m_connmark.c b/tc/m_connmark.c
1662-index 8506d95a..9cc911b8 100644
1663---- a/tc/m_connmark.c
1664-+++ b/tc/m_connmark.c
1665-@@ -35,7 +35,7 @@ static int
1666- parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
1667- 	      struct nlmsghdr *n)
1668- {
1669--	struct tc_connmark sel = {};
1670-+	struct tc_connmark sel = {0};
1671- 	char **argv = *argv_p;
1672- 	int argc = *argc_p;
1673- 	int ok = 0;
1674-diff --git a/tc/m_csum.c b/tc/m_csum.c
1675-index f5fe8f55..b29353b1 100644
1676---- a/tc/m_csum.c
1677-+++ b/tc/m_csum.c
1678-@@ -84,7 +84,7 @@ static int
1679- parse_csum(struct action_util *a, int *argc_p,
1680- 	   char ***argv_p, int tca_id, struct nlmsghdr *n)
1681- {
1682--	struct tc_csum sel = {};
1683-+	struct tc_csum sel = {0};
1684- 
1685- 	int argc = *argc_p;
1686- 	char **argv = *argv_p;
1687-diff --git a/tc/m_mirred.c b/tc/m_mirred.c
1688-index e5653e67..6aca86ad 100644
1689---- a/tc/m_mirred.c
1690-+++ b/tc/m_mirred.c
1691-@@ -91,9 +91,9 @@ parse_direction(struct action_util *a, int *argc_p, char ***argv_p,
1692- 	int argc = *argc_p;
1693- 	char **argv = *argv_p;
1694- 	int ok = 0, iok = 0, mirror = 0, redir = 0, ingress = 0, egress = 0;
1695--	struct tc_mirred p = {};
1696-+	struct tc_mirred p = {0};
1697- 	struct rtattr *tail;
1698--	char d[IFNAMSIZ] = {};
1699-+	char d[IFNAMSIZ] = {0};
1700- 
1701- 	while (argc > 0) {
1702- 
1703-diff --git a/tc/m_nat.c b/tc/m_nat.c
1704-index 95b35584..b8869141 100644
1705---- a/tc/m_nat.c
1706-+++ b/tc/m_nat.c
1707-@@ -78,7 +78,7 @@ bad_val:
1708- static int
1709- parse_nat(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, struct nlmsghdr *n)
1710- {
1711--	struct tc_nat sel = {};
1712-+	struct tc_nat sel = {0};
1713- 
1714- 	int argc = *argc_p;
1715- 	char **argv = *argv_p;
1716-diff --git a/tc/m_pedit.c b/tc/m_pedit.c
1717-index 32f03415..f65fcedf 100644
1718---- a/tc/m_pedit.c
1719-+++ b/tc/m_pedit.c
1720-@@ -519,7 +519,7 @@ done:
1721- 
1722- static int parse_munge(int *argc_p, char ***argv_p, struct m_pedit_sel *sel)
1723- {
1724--	struct m_pedit_key tkey = {};
1725-+	struct m_pedit_key tkey = {0};
1726- 	int argc = *argc_p;
1727- 	char **argv = *argv_p;
1728- 	int res = -1;
1729-@@ -623,7 +623,7 @@ static int pedit_keys_ex_addattr(struct m_pedit_sel *sel, struct nlmsghdr *n)
1730- static int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p,
1731- 		       int tca_id, struct nlmsghdr *n)
1732- {
1733--	struct m_pedit_sel sel = {};
1734-+	struct m_pedit_sel sel = {0};
1735- 
1736- 	int argc = *argc_p;
1737- 	char **argv = *argv_p;
1738-diff --git a/tc/m_simple.c b/tc/m_simple.c
1739-index fe2bca21..765fef96 100644
1740---- a/tc/m_simple.c
1741-+++ b/tc/m_simple.c
1742-@@ -93,7 +93,7 @@ static int
1743- parse_simple(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
1744- 	     struct nlmsghdr *n)
1745- {
1746--	struct tc_defact sel = {};
1747-+	struct tc_defact sel = {0};
1748- 	int argc = *argc_p;
1749- 	char **argv = *argv_p;
1750- 	int ok = 0;
1751-diff --git a/tc/m_tunnel_key.c b/tc/m_tunnel_key.c
1752-index ff699cc8..c6aabb0c 100644
1753---- a/tc/m_tunnel_key.c
1754-+++ b/tc/m_tunnel_key.c
1755-@@ -314,7 +314,7 @@ static int tunnel_key_parse_tos_ttl(char *str, int type, struct nlmsghdr *n)
1756- static int parse_tunnel_key(struct action_util *a, int *argc_p, char ***argv_p,
1757- 			    int tca_id, struct nlmsghdr *n)
1758- {
1759--	struct tc_tunnel_key parm = {};
1760-+	struct tc_tunnel_key parm = {0};
1761- 	char **argv = *argv_p;
1762- 	int argc = *argc_p;
1763- 	struct rtattr *tail;
1764-diff --git a/tc/m_vlan.c b/tc/m_vlan.c
1765-index c1dc8b42..3293aae6 100644
1766---- a/tc/m_vlan.c
1767-+++ b/tc/m_vlan.c
1768-@@ -73,7 +73,7 @@ static int parse_vlan(struct action_util *a, int *argc_p, char ***argv_p,
1769- 	int proto_set = 0;
1770- 	__u8 prio;
1771- 	int prio_set = 0;
1772--	struct tc_vlan parm = {};
1773-+	struct tc_vlan parm = {0};
1774- 
1775- 	if (matches(*argv, "vlan") != 0)
1776- 		return -1;
1777-diff --git a/tc/q_cbs.c b/tc/q_cbs.c
1778-index 788535c6..072b393a 100644
1779---- a/tc/q_cbs.c
1780-+++ b/tc/q_cbs.c
1781-@@ -32,7 +32,7 @@ static void explain1(const char *arg, const char *val)
1782- static int cbs_parse_opt(struct qdisc_util *qu, int argc,
1783- 			 char **argv, struct nlmsghdr *n, const char *dev)
1784- {
1785--	struct tc_cbs_qopt opt = {};
1786-+	struct tc_cbs_qopt opt = {0};
1787- 	struct rtattr *tail;
1788- 
1789- 	while (argc > 0) {
1790-diff --git a/tc/q_choke.c b/tc/q_choke.c
1791-index 7653eb7e..4a69fdff 100644
1792---- a/tc/q_choke.c
1793-+++ b/tc/q_choke.c
1794-@@ -30,7 +30,7 @@ static void explain(void)
1795- static int choke_parse_opt(struct qdisc_util *qu, int argc, char **argv,
1796- 			   struct nlmsghdr *n, const char *dev)
1797- {
1798--	struct tc_red_qopt opt = {};
1799-+	struct tc_red_qopt opt = {0};
1800- 	unsigned int burst = 0;
1801- 	unsigned int avpkt = 1000;
1802- 	double probability = 0.02;
1803-diff --git a/tc/q_codel.c b/tc/q_codel.c
1804-index 03b6f92f..37e31495 100644
1805---- a/tc/q_codel.c
1806-+++ b/tc/q_codel.c
1807-@@ -150,7 +150,7 @@ static int codel_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt)
1808- static int codel_print_xstats(struct qdisc_util *qu, FILE *f,
1809- 			      struct rtattr *xstats)
1810- {
1811--	struct tc_codel_xstats _st = {}, *st;
1812-+	struct tc_codel_xstats _st = {0}, *st;
1813- 
1814- 	SPRINT_BUF(b1);
1815- 
1816-diff --git a/tc/q_fifo.c b/tc/q_fifo.c
1817-index 9b2c5348..2db11c7c 100644
1818---- a/tc/q_fifo.c
1819-+++ b/tc/q_fifo.c
1820-@@ -26,7 +26,7 @@ static int fifo_parse_opt(struct qdisc_util *qu, int argc, char **argv,
1821- 			  struct nlmsghdr *n, const char *dev)
1822- {
1823- 	int ok = 0;
1824--	struct tc_fifo_qopt opt = {};
1825-+	struct tc_fifo_qopt opt = {0};
1826- 
1827- 	while (argc > 0) {
1828- 		if (strcmp(*argv, "limit") == 0) {
1829-diff --git a/tc/q_fq_codel.c b/tc/q_fq_codel.c
1830-index 9c9d7bc1..ac52c160 100644
1831---- a/tc/q_fq_codel.c
1832-+++ b/tc/q_fq_codel.c
1833-@@ -253,7 +253,7 @@ static int fq_codel_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt
1834- static int fq_codel_print_xstats(struct qdisc_util *qu, FILE *f,
1835- 				 struct rtattr *xstats)
1836- {
1837--	struct tc_fq_codel_xstats _st = {}, *st;
1838-+	struct tc_fq_codel_xstats _st = {0}, *st;
1839- 
1840- 	SPRINT_BUF(b1);
1841- 
1842-diff --git a/tc/q_gred.c b/tc/q_gred.c
1843-index f6a3f05e..85387e2b 100644
1844---- a/tc/q_gred.c
1845-+++ b/tc/q_gred.c
1846-@@ -299,8 +299,8 @@ gred_parse_vqs(struct tc_gred_info *info, struct rtattr *vqs)
1847- 	unsigned int offset = 0;
1848- 
1849- 	while (rem > offset) {
1850--		struct rtattr *tb_entry[TCA_GRED_VQ_ENTRY_MAX + 1] = {};
1851--		struct rtattr *tb[TCA_GRED_VQ_MAX + 1] = {};
1852-+		struct rtattr *tb_entry[TCA_GRED_VQ_ENTRY_MAX + 1] = {0};
1853-+		struct rtattr *tb[TCA_GRED_VQ_MAX + 1] = {0};
1854- 		struct rtattr *entry;
1855- 		unsigned int len;
1856- 		unsigned int dp;
1857-@@ -408,7 +408,7 @@ gred_print_stats(struct tc_gred_info *info, struct tc_gred_qopt *qopt)
1858- 
1859- static int gred_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt)
1860- {
1861--	struct tc_gred_info infos[MAX_DPs] = {};
1862-+	struct tc_gred_info infos[MAX_DPs] = {0};
1863- 	struct rtattr *tb[TCA_GRED_MAX + 1];
1864- 	struct tc_gred_sopt *sopt;
1865- 	struct tc_gred_qopt *qopt;
1866-diff --git a/tc/q_hfsc.c b/tc/q_hfsc.c
1867-index 609d925a..b4bb78f2 100644
1868---- a/tc/q_hfsc.c
1869-+++ b/tc/q_hfsc.c
1870-@@ -68,7 +68,7 @@ static int
1871- hfsc_parse_opt(struct qdisc_util *qu, int argc, char **argv,
1872- 	       struct nlmsghdr *n, const char *dev)
1873- {
1874--	struct tc_hfsc_qopt qopt = {};
1875-+	struct tc_hfsc_qopt qopt = {0};
1876- 
1877- 	while (argc > 0) {
1878- 		if (matches(*argv, "default") == 0) {
1879-@@ -139,7 +139,7 @@ static int
1880- hfsc_parse_class_opt(struct qdisc_util *qu, int argc, char **argv,
1881- 		     struct nlmsghdr *n, const char *dev)
1882- {
1883--	struct tc_service_curve rsc = {}, fsc = {}, usc = {};
1884-+	struct tc_service_curve rsc = {0}, fsc = {}, usc = {};
1885- 	int rsc_ok = 0, fsc_ok = 0, usc_ok = 0;
1886- 	struct rtattr *tail;
1887- 
1888-diff --git a/tc/q_htb.c b/tc/q_htb.c
1889-index 9afb293d..83401cde 100644
1890---- a/tc/q_htb.c
1891-+++ b/tc/q_htb.c
1892-@@ -110,7 +110,7 @@ static int htb_parse_opt(struct qdisc_util *qu, int argc,
1893- static int htb_parse_class_opt(struct qdisc_util *qu, int argc, char **argv,
1894- 			       struct nlmsghdr *n, const char *dev)
1895- {
1896--	struct tc_htb_opt opt = {};
1897-+	struct tc_htb_opt opt = {0};
1898- 	__u32 rtab[256], ctab[256];
1899- 	unsigned buffer = 0, cbuffer = 0;
1900- 	int cell_log =  -1, ccell_log = -1;
1901-diff --git a/tc/q_multiq.c b/tc/q_multiq.c
1902-index b1e6c9a8..12027bc8 100644
1903---- a/tc/q_multiq.c
1904-+++ b/tc/q_multiq.c
1905-@@ -31,7 +31,7 @@ static void explain(void)
1906- static int multiq_parse_opt(struct qdisc_util *qu, int argc, char **argv,
1907- 			    struct nlmsghdr *n, const char *dev)
1908- {
1909--	struct tc_multiq_qopt opt = {};
1910-+	struct tc_multiq_qopt opt = {0};
1911- 
1912- 	if (argc) {
1913- 		if (strcmp(*argv, "help") == 0) {
1914-diff --git a/tc/q_netem.c b/tc/q_netem.c
1915-index 4ce9ab6e..9fa40cc4 100644
1916---- a/tc/q_netem.c
1917-+++ b/tc/q_netem.c
1918-@@ -197,17 +197,17 @@ static int netem_parse_opt(struct qdisc_util *qu, int argc, char **argv,
1919- 	int slot_dist_size = 0;
1920- 	struct rtattr *tail;
1921- 	struct tc_netem_qopt opt = { .limit = 1000 };
1922--	struct tc_netem_corr cor = {};
1923--	struct tc_netem_reorder reorder = {};
1924--	struct tc_netem_corrupt corrupt = {};
1925-+	struct tc_netem_corr cor = {0};
1926-+	struct tc_netem_reorder reorder = {0};
1927-+	struct tc_netem_corrupt corrupt = {0};
1928- 	struct tc_netem_gimodel gimodel;
1929- 	struct tc_netem_gemodel gemodel;
1930--	struct tc_netem_rate rate = {};
1931--	struct tc_netem_slot slot = {};
1932-+	struct tc_netem_rate rate = {0};
1933-+	struct tc_netem_slot slot = {0};
1934- 	__s16 *dist_data = NULL;
1935- 	__s16 *slot_dist_data = NULL;
1936- 	__u16 loss_type = NETEM_LOSS_UNSPEC;
1937--	int present[__TCA_NETEM_MAX] = {};
1938-+	int present[__TCA_NETEM_MAX] = {0};
1939- 	__u64 rate64 = 0;
1940- 	__u64 seed = 0;
1941- 
1942-diff --git a/tc/q_red.c b/tc/q_red.c
1943-index f760253d..5c523a16 100644
1944---- a/tc/q_red.c
1945-+++ b/tc/q_red.c
1946-@@ -46,7 +46,7 @@ static int red_parse_opt(struct qdisc_util *qu, int argc, char **argv,
1947- 	struct nla_bitfield32 flags_bf = {
1948- 		.selector = RED_SUPPORTED_FLAGS,
1949- 	};
1950--	struct tc_red_qopt opt = {};
1951-+	struct tc_red_qopt opt = {0};
1952- 	unsigned int burst = 0;
1953- 	unsigned int avpkt = 0;
1954- 	double probability = 0.02;
1955-diff --git a/tc/q_sfq.c b/tc/q_sfq.c
1956-index 17bf8f63..62911069 100644
1957---- a/tc/q_sfq.c
1958-+++ b/tc/q_sfq.c
1959-@@ -33,7 +33,7 @@ static void explain(void)
1960- static int sfq_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nlmsghdr *n, const char *dev)
1961- {
1962- 	int ok = 0, red = 0;
1963--	struct tc_sfq_qopt_v1 opt = {};
1964-+	struct tc_sfq_qopt_v1 opt = {0};
1965- 	unsigned int burst = 0;
1966- 	int wlog;
1967- 	unsigned int avpkt = 1000;
1968-diff --git a/tc/q_skbprio.c b/tc/q_skbprio.c
1969-index b0ba180a..cdb174ff 100644
1970---- a/tc/q_skbprio.c
1971-+++ b/tc/q_skbprio.c
1972-@@ -27,7 +27,7 @@ static int skbprio_parse_opt(struct qdisc_util *qu, int argc, char **argv,
1973- 			     struct nlmsghdr *n, const char *dev)
1974- {
1975- 	int ok = 0;
1976--	struct tc_skbprio_qopt opt = {};
1977-+	struct tc_skbprio_qopt opt = {0};
1978- 
1979- 	while (argc > 0) {
1980- 		if (strcmp(*argv, "limit") == 0) {
1981-diff --git a/tc/q_tbf.c b/tc/q_tbf.c
1982-index f621756d..7b149228 100644
1983---- a/tc/q_tbf.c
1984-+++ b/tc/q_tbf.c
1985-@@ -34,7 +34,7 @@ static void explain1(const char *arg, const char *val)
1986- static int tbf_parse_opt(struct qdisc_util *qu, int argc, char **argv,
1987- 			 struct nlmsghdr *n, const char *dev)
1988- {
1989--	struct tc_tbf_qopt opt = {};
1990-+	struct tc_tbf_qopt opt = {0};
1991- 	__u32 rtab[256];
1992- 	__u32 ptab[256];
1993- 	unsigned buffer = 0, mtu = 0, mpu = 0, latency = 0;
1994-diff --git a/tc/tc_class.c b/tc/tc_class.c
1995-index f6a3d134..31712a8a 100644
1996---- a/tc/tc_class.c
1997-+++ b/tc/tc_class.c
1998-@@ -31,8 +31,8 @@ struct graph_node {
1999- 	int nodes_count;
2000- };
2001- 
2002--static struct hlist_head cls_list = {};
2003--static struct hlist_head root_cls_list = {};
2004-+static struct hlist_head cls_list = {0};
2005-+static struct hlist_head root_cls_list = {0};
2006- 
2007- static void usage(void);
2008- 
2009-@@ -62,9 +62,9 @@ static int tc_class_modify(int cmd, unsigned int flags, int argc, char **argv)
2010- 		.t.tcm_family = AF_UNSPEC,
2011- 	};
2012- 	struct qdisc_util *q = NULL;
2013--	struct tc_estimator est = {};
2014--	char  d[IFNAMSIZ] = {};
2015--	char  k[FILTER_NAMESZ] = {};
2016-+	struct tc_estimator est = {0};
2017-+	char  d[IFNAMSIZ] = {0};
2018-+	char  k[FILTER_NAMESZ] = {0};
2019- 
2020- 	while (argc > 0) {
2021- 		if (strcmp(*argv, "dev") == 0) {
2022-@@ -211,14 +211,14 @@ static void graph_cls_show(FILE *fp, char *buf, struct hlist_head *root_list,
2023- 		int level)
2024- {
2025- 	struct hlist_node *n, *tmp_cls;
2026--	char cls_id_str[256] = {};
2027-+	char cls_id_str[256] = {0};
2028- 	struct rtattr *tb[TCA_MAX + 1];
2029- 	struct qdisc_util *q;
2030--	char str[300] = {};
2031-+	char str[300] = {0};
2032- 
2033- 	hlist_for_each_safe(n, tmp_cls, root_list) {
2034- 		struct hlist_node *c, *tmp_chld;
2035--		struct hlist_head children = {};
2036-+		struct hlist_head children = {0};
2037- 		struct graph_node *cls = container_of(n, struct graph_node,
2038- 				hlist);
2039- 
2040-@@ -388,7 +388,7 @@ int print_class(struct nlmsghdr *n, void *arg)
2041- static int tc_class_list(int argc, char **argv)
2042- {
2043- 	struct tcmsg t = { .tcm_family = AF_UNSPEC };
2044--	char d[IFNAMSIZ] = {};
2045-+	char d[IFNAMSIZ] = {0};
2046- 	char buf[1024] = {0};
2047- 
2048- 	filter_qdisc = 0;
2049-diff --git a/tc/tc_exec.c b/tc/tc_exec.c
2050-index 182fbb4c..0893aa03 100644
2051---- a/tc/tc_exec.c
2052-+++ b/tc/tc_exec.c
2053-@@ -81,7 +81,7 @@ noexist:
2054- int do_exec(int argc, char **argv)
2055- {
2056- 	struct exec_util *eu;
2057--	char kind[FILTER_NAMESZ] = {};
2058-+	char kind[FILTER_NAMESZ] = {0};
2059- 
2060- 	if (argc < 1) {
2061- 		fprintf(stderr, "No command given, try \"tc exec help\".\n");
2062-diff --git a/tc/tc_filter.c b/tc/tc_filter.c
2063-index eb45c588..31c9788c 100644
2064---- a/tc/tc_filter.c
2065-+++ b/tc/tc_filter.c
2066-@@ -73,9 +73,9 @@ static int tc_filter_modify(int cmd, unsigned int flags, int argc, char **argv)
2067- 	__u32 chain_index = 0;
2068- 	int chain_index_set = 0;
2069- 	char *fhandle = NULL;
2070--	char  d[IFNAMSIZ] = {};
2071--	char  k[FILTER_NAMESZ] = {};
2072--	struct tc_estimator est = {};
2073-+	char  d[IFNAMSIZ] = {0};
2074-+	char  k[FILTER_NAMESZ] = {0};
2075-+	struct tc_estimator est = {0};
2076- 
2077- 	if (cmd == RTM_NEWTFILTER && flags & NLM_F_CREATE)
2078- 		protocol = htons(ETH_P_ALL);
2079-@@ -401,8 +401,8 @@ static int tc_filter_get(int cmd, unsigned int flags, int argc, char **argv)
2080- 	__u32 block_index = 0;
2081- 	__u32 parent_handle = 0;
2082- 	char *fhandle = NULL;
2083--	char  d[IFNAMSIZ] = {};
2084--	char  k[FILTER_NAMESZ] = {};
2085-+	char  d[IFNAMSIZ] = {0};
2086-+	char  k[FILTER_NAMESZ] = {0};
2087- 
2088- 	while (argc > 0) {
2089- 		if (strcmp(*argv, "dev") == 0) {
2090-@@ -591,7 +591,7 @@ static int tc_filter_list(int cmd, int argc, char **argv)
2091- 		.t.tcm_parent = TC_H_UNSPEC,
2092- 		.t.tcm_family = AF_UNSPEC,
2093- 	};
2094--	char d[IFNAMSIZ] = {};
2095-+	char d[IFNAMSIZ] = {0};
2096- 	__u32 prio = 0;
2097- 	__u32 protocol = 0;
2098- 	__u32 block_index = 0;
2099-diff --git a/tc/tc_qdisc.c b/tc/tc_qdisc.c
2100-index 84fd659f..175b7fab 100644
2101---- a/tc/tc_qdisc.c
2102-+++ b/tc/tc_qdisc.c
2103-@@ -43,13 +43,13 @@ static int usage(void)
2104- static int tc_qdisc_modify(int cmd, unsigned int flags, int argc, char **argv)
2105- {
2106- 	struct qdisc_util *q = NULL;
2107--	struct tc_estimator est = {};
2108-+	struct tc_estimator est = {0};
2109- 	struct {
2110- 		struct tc_sizespec	szopts;
2111- 		__u16			*data;
2112--	} stab = {};
2113--	char  d[IFNAMSIZ] = {};
2114--	char  k[FILTER_NAMESZ] = {};
2115-+	} stab = {0};
2116-+	char  d[IFNAMSIZ] = {0};
2117-+	char  k[FILTER_NAMESZ] = {0};
2118- 	struct {
2119- 		struct nlmsghdr	n;
2120- 		struct tcmsg		t;
2121-@@ -360,7 +360,7 @@ static int tc_qdisc_list(int argc, char **argv)
2122- 		.t.tcm_family = AF_UNSPEC,
2123- 	};
2124- 
2125--	char d[IFNAMSIZ] = {};
2126-+	char d[IFNAMSIZ] = {0};
2127- 	bool dump_invisible = false;
2128- 	__u32 handle;
2129- 
2130-diff --git a/tc/tc_stab.c b/tc/tc_stab.c
2131-index a7733726..32f649f5 100644
2132---- a/tc/tc_stab.c
2133-+++ b/tc/tc_stab.c
2134-@@ -46,7 +46,7 @@ int parse_size_table(int *argcp, char ***argvp, struct tc_sizespec *sp)
2135- {
2136- 	char **argv = *argvp;
2137- 	int argc = *argcp;
2138--	struct tc_sizespec s = {};
2139-+	struct tc_sizespec s = {0};
2140- 
2141- 	NEXT_ARG();
2142- 	if (matches(*argv, "help") == 0) {
2143-diff --git a/tc/tc_util.c b/tc/tc_util.c
2144-index aa7cf60f..83026c65 100644
2145---- a/tc/tc_util.c
2146-+++ b/tc/tc_util.c
2147-@@ -132,7 +132,7 @@ ok:
2148- 
2149- int print_tc_classid(char *buf, int blen, __u32 h)
2150- {
2151--	SPRINT_BUF(handle) = {};
2152-+	SPRINT_BUF(handle) = {0};
2153- 	int hlen = SPRINT_BSIZE - 1;
2154- 
2155- 	if (h == TC_H_ROOT)
2156-@@ -147,7 +147,7 @@ int print_tc_classid(char *buf, int blen, __u32 h)
2157- 		snprintf(handle, hlen, "%x:%x", TC_H_MAJ(h) >> 16, TC_H_MIN(h));
2158- 
2159- 	if (use_names) {
2160--		char clname[IDNAME_MAX] = {};
2161-+		char clname[IDNAME_MAX] = {0};
2162- 
2163- 		if (id_to_name(cls_names, h, clname))
2164- 			snprintf(buf, blen, "%s#%s", clname, handle);
2165-@@ -798,7 +798,7 @@ void print_tcstats_attr(FILE *fp, struct rtattr *tb[], const char *prefix,
2166- 	}
2167- 	/* backward compatibility */
2168- 	if (tb[TCA_STATS]) {
2169--		struct tc_stats st = {};
2170-+		struct tc_stats st = {0};
2171- 
2172- 		/* handle case where kernel returns more/less than we know about */
2173- 		memcpy(&st, RTA_DATA(tb[TCA_STATS]),
2174-diff --git a/tipc/bearer.c b/tipc/bearer.c
2175-index bb434f5f..3f703066 100644
2176---- a/tipc/bearer.c
2177-+++ b/tipc/bearer.c
2178-@@ -79,8 +79,8 @@ static void cmd_bearer_enable_udp_help(struct cmdl *cmdl, char *media)
2179- static int get_netid_cb(const struct nlmsghdr *nlh, void *data)
2180- {
2181- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2182--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2183--	struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {};
2184-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2185-+	struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {0};
2186- 	int *netid = (int*)data;
2187- 
2188- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2189-@@ -750,7 +750,7 @@ static int bearer_dump_udp_cb(const struct nlmsghdr *nlh, void *data)
2190- {
2191- 	struct sockaddr_storage *addr;
2192- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2193--	struct nlattr *info[TIPC_NLA_UDP_MAX + 1] = {};
2194-+	struct nlattr *info[TIPC_NLA_UDP_MAX + 1] = {0};
2195- 
2196- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2197- 
2198-@@ -786,9 +786,9 @@ static int bearer_get_udp_cb(const struct nlmsghdr *nlh, void *data)
2199- 	struct cb_data *cb_data = (struct cb_data *) data;
2200- 	struct sockaddr_storage *addr;
2201- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2202--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2203--	struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {};
2204--	struct nlattr *opts[TIPC_NLA_UDP_MAX + 1] = {};
2205-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2206-+	struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {0};
2207-+	struct nlattr *opts[TIPC_NLA_UDP_MAX + 1] = {0};
2208- 
2209- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2210- 	if (!info[TIPC_NLA_BEARER])
2211-@@ -883,9 +883,9 @@ static int bearer_get_cb(const struct nlmsghdr *nlh, void *data)
2212- {
2213- 	int *prop = data;
2214- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2215--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2216--	struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {};
2217--	struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {};
2218-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2219-+	struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {0};
2220-+	struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {0};
2221- 
2222- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2223- 	if (!info[TIPC_NLA_BEARER])
2224-@@ -1066,8 +1066,8 @@ static int cmd_bearer_get(struct nlmsghdr *nlh, const struct cmd *cmd,
2225- static int bearer_list_cb(const struct nlmsghdr *nlh, void *data)
2226- {
2227- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2228--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2229--	struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {};
2230-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2231-+	struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {0};
2232- 
2233- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2234- 	if (!info[TIPC_NLA_BEARER]) {
2235-diff --git a/tipc/link.c b/tipc/link.c
2236-index f91c3000..15805757 100644
2237---- a/tipc/link.c
2238-+++ b/tipc/link.c
2239-@@ -32,8 +32,8 @@ static const char tipc_bclink_name[] = "broadcast-link";
2240- static int link_list_cb(const struct nlmsghdr *nlh, void *data)
2241- {
2242- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2243--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2244--	struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {};
2245-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2246-+	struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {0};
2247- 
2248- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2249- 	if (!info[TIPC_NLA_LINK])
2250-@@ -82,9 +82,9 @@ static int link_get_cb(const struct nlmsghdr *nlh, void *data)
2251- {
2252- 	int *prop = data;
2253- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2254--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2255--	struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {};
2256--	struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {};
2257-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2258-+	struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {0};
2259-+	struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {0};
2260- 
2261- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2262- 	if (!info[TIPC_NLA_LINK])
2263-@@ -501,10 +501,10 @@ static int link_stat_show_cb(const struct nlmsghdr *nlh, void *data)
2264- 	const char *name;
2265- 	const char *link = data;
2266- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2267--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2268--	struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {};
2269--	struct nlattr *prop[TIPC_NLA_PROP_MAX + 1] = {};
2270--	struct nlattr *stats[TIPC_NLA_STATS_MAX + 1] = {};
2271-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2272-+	struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {0};
2273-+	struct nlattr *prop[TIPC_NLA_PROP_MAX + 1] = {0};
2274-+	struct nlattr *stats[TIPC_NLA_STATS_MAX + 1] = {0};
2275- 
2276- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2277- 	if (!info[TIPC_NLA_LINK])
2278-@@ -803,8 +803,8 @@ static int cmd_link_mon_set_prop(struct nlmsghdr *nlh, const struct cmd *cmd,
2279- static int link_mon_summary_cb(const struct nlmsghdr *nlh, void *data)
2280- {
2281- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2282--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2283--	struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {};
2284-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2285-+	struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {0};
2286- 
2287- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2288- 	if (!info[TIPC_NLA_MON])
2289-@@ -935,8 +935,8 @@ static void link_mon_print_peer_state(const uint32_t addr, const char *status,
2290- static int link_mon_peer_list_cb(const struct nlmsghdr *nlh, void *data)
2291- {
2292- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2293--	struct nlattr *attrs[TIPC_NLA_MON_PEER_MAX + 1] = {};
2294--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2295-+	struct nlattr *attrs[TIPC_NLA_MON_PEER_MAX + 1] = {0};
2296-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2297- 	uint16_t member_cnt;
2298- 	uint32_t applied;
2299- 	uint32_t dom_gen;
2300-@@ -1021,8 +1021,8 @@ static int link_mon_peer_list(uint32_t mon_ref)
2301- static int link_mon_list_cb(const struct nlmsghdr *nlh, void *data)
2302- {
2303- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2304--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2305--	struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {};
2306-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2307-+	struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {0};
2308- 	char *req_bearer = data;
2309- 	const char *bname;
2310- 	const char title[] =
2311-@@ -1149,8 +1149,8 @@ static void cmd_link_mon_get_help(struct cmdl *cmdl)
2312- static int link_mon_get_cb(const struct nlmsghdr *nlh, void *data)
2313- {
2314- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2315--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2316--	struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {};
2317-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2318-+	struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {0};
2319- 
2320- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2321- 	if (!info[TIPC_NLA_MON])
2322-diff --git a/tipc/media.c b/tipc/media.c
2323-index 5ff0c8c4..b5c03bae 100644
2324---- a/tipc/media.c
2325-+++ b/tipc/media.c
2326-@@ -20,8 +20,8 @@
2327- static int media_list_cb(const struct nlmsghdr *nlh, void *data)
2328- {
2329- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2330--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2331--	struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {};
2332-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2333-+	struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {0};
2334- 
2335- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2336- 	if (!info[TIPC_NLA_MEDIA])
2337-@@ -57,9 +57,9 @@ static int media_get_cb(const struct nlmsghdr *nlh, void *data)
2338- {
2339- 	int *prop = data;
2340- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2341--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2342--	struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {};
2343--	struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {};
2344-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2345-+	struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {0};
2346-+	struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {0};
2347- 
2348- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2349- 	if (!info[TIPC_NLA_MEDIA])
2350-diff --git a/tipc/misc.c b/tipc/misc.c
2351-index 32d4a5e0..a4870762 100644
2352---- a/tipc/misc.c
2353-+++ b/tipc/misc.c
2354-@@ -152,7 +152,7 @@ void nodeid2str(uint8_t *id, char *str)
2355- 
2356- void hash2nodestr(uint32_t hash, char *str)
2357- {
2358--	struct tipc_sioc_nodeid_req nr = {};
2359-+	struct tipc_sioc_nodeid_req nr = {0};
2360- 	int sd;
2361- 
2362- 	sd = socket(AF_TIPC, SOCK_RDM, 0);
2363-diff --git a/tipc/nametable.c b/tipc/nametable.c
2364-index 5162f7fc..fedae24e 100644
2365---- a/tipc/nametable.c
2366-+++ b/tipc/nametable.c
2367-@@ -24,9 +24,9 @@ static int nametable_show_cb(const struct nlmsghdr *nlh, void *data)
2368- {
2369- 	int *iteration = data;
2370- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2371--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2372--	struct nlattr *attrs[TIPC_NLA_NAME_TABLE_MAX + 1] = {};
2373--	struct nlattr *publ[TIPC_NLA_PUBL_MAX + 1] = {};
2374-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2375-+	struct nlattr *attrs[TIPC_NLA_NAME_TABLE_MAX + 1] = {0};
2376-+	struct nlattr *publ[TIPC_NLA_PUBL_MAX + 1] = {0};
2377- 	const char *scope[] = { "", "zone", "cluster", "node" };
2378- 	char str[33] = {0,};
2379- 
2380-diff --git a/tipc/node.c b/tipc/node.c
2381-index e645d374..6d86043f 100644
2382---- a/tipc/node.c
2383-+++ b/tipc/node.c
2384-@@ -21,9 +21,9 @@
2385- 
2386- static int node_list_cb(const struct nlmsghdr *nlh, void *data)
2387- {
2388--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2389--	struct nlattr *attrs[TIPC_NLA_NODE_MAX + 1] = {};
2390--	char str[33] = {};
2391-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2392-+	struct nlattr *attrs[TIPC_NLA_NODE_MAX + 1] = {0};
2393-+	char str[33] = {0};
2394- 	uint32_t addr;
2395- 
2396- 	mnl_attr_parse(nlh, sizeof(struct genlmsghdr), parse_attrs, info);
2397-@@ -300,8 +300,8 @@ static int cmd_node_flush_key(struct nlmsghdr *nlh, const struct cmd *cmd,
2398- 
2399- static int nodeid_get_cb(const struct nlmsghdr *nlh, void *data)
2400- {
2401--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2402--	struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {};
2403-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2404-+	struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {0};
2405- 	char str[33] = {0,};
2406- 	uint8_t id[16] = {0,};
2407- 	uint64_t *w0 = (uint64_t *) &id[0];
2408-@@ -344,8 +344,8 @@ static int cmd_node_get_nodeid(struct nlmsghdr *nlh, const struct cmd *cmd,
2409- 
2410- static int netid_get_cb(const struct nlmsghdr *nlh, void *data)
2411- {
2412--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2413--	struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {};
2414-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2415-+	struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {0};
2416- 
2417- 	mnl_attr_parse(nlh, sizeof(struct genlmsghdr), parse_attrs, info);
2418- 	if (!info[TIPC_NLA_NET])
2419-diff --git a/tipc/socket.c b/tipc/socket.c
2420-index 4d376e07..178ecd8e 100644
2421---- a/tipc/socket.c
2422-+++ b/tipc/socket.c
2423-@@ -23,8 +23,8 @@
2424- static int publ_list_cb(const struct nlmsghdr *nlh, void *data)
2425- {
2426- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2427--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2428--	struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {};
2429-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2430-+	struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {0};
2431- 
2432- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2433- 	if (!info[TIPC_NLA_PUBL])
2434-@@ -72,8 +72,8 @@ static int publ_list(uint32_t sock)
2435- static int sock_list_cb(const struct nlmsghdr *nlh, void *data)
2436- {
2437- 	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
2438--	struct nlattr *info[TIPC_NLA_MAX + 1] = {};
2439--	struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {};
2440-+	struct nlattr *info[TIPC_NLA_MAX + 1] = {0};
2441-+	struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {0};
2442- 
2443- 	mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info);
2444- 	if (!info[TIPC_NLA_SOCK])
2445-@@ -87,7 +87,7 @@ static int sock_list_cb(const struct nlmsghdr *nlh, void *data)
2446- 
2447- 	if (attrs[TIPC_NLA_SOCK_CON]) {
2448- 		uint32_t node;
2449--		struct nlattr *con[TIPC_NLA_CON_MAX + 1] = {};
2450-+		struct nlattr *con[TIPC_NLA_CON_MAX + 1] = {0};
2451- 
2452- 		mnl_attr_parse_nested(attrs[TIPC_NLA_SOCK_CON], parse_attrs, con);
2453- 		node = mnl_attr_get_u32(con[TIPC_NLA_CON_NODE]);
2454--- 
2455-2.44.0
2456-
R pkg/iproute2/patch/0007-Remove-semicolon-after-function-definitions.patch => pkg/iproute2/patch/0006-Remove-semicolon-after-function-definitions.patch
+0, -0
R pkg/iproute2/patch/0008-Don-t-omit-second-operand-to-operator.patch => pkg/iproute2/patch/0007-Don-t-omit-second-operand-to-operator.patch
+0, -0
R pkg/iproute2/patch/0009-Avoid-unnecessary-VLAs.patch => pkg/iproute2/patch/0008-Avoid-unnecessary-VLAs.patch
+0, -0
R pkg/iproute2/patch/0011-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch => pkg/iproute2/patch/0010-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch
+0, -0
R pkg/iproute2/patch/0012-Use-static-inline-function-for-min.patch => pkg/iproute2/patch/0011-Use-static-inline-function-for-min.patch
+0, -0
R pkg/iproute2/patch/0014-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch => pkg/iproute2/patch/0012-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch
+0, -0
R pkg/iproute2/patch/0016-Fix-overflow-check-for-strtod-and-strtoul.patch => pkg/iproute2/patch/0013-Fix-overflow-check-for-strtod-and-strtoul.patch
+0, -0
+0, -86
 1@@ -1,86 +0,0 @@
 2-From 0d20d0e247e074dd3e8892053387295062c3c666 Mon Sep 17 00:00:00 2001
 3-From: Michael Forney <mforney@mforney.org>
 4-Date: Wed, 29 Jan 2020 15:36:37 -0800
 5-Subject: [PATCH] Use __typeof__ instead of typeof
 6-
 7----
 8- include/list.h | 18 +++++++++---------
 9- lib/ll_map.c   |  2 +-
10- 2 files changed, 10 insertions(+), 10 deletions(-)
11-
12-diff --git a/include/list.h b/include/list.h
13-index 7108cea7..36d73d96 100644
14---- a/include/list.h
15-+++ b/include/list.h
16-@@ -7,7 +7,7 @@
17- 
18- #ifdef __GNUC__
19- #define container_of(ptr, type, member) ({			\
20--	const typeof( ((type *)0)->member ) *__mptr = (ptr);	\
21-+	const __typeof__( ((type *)0)->member ) *__mptr = (ptr);\
22- 	(type *)( (char *)__mptr - offsetof(type,member) );})
23- #else
24- #define container_of(ptr, type, member) (			\
25-@@ -65,24 +65,24 @@ static inline void list_del(struct list_head *entry)
26- 	list_entry((ptr)->prev, type, member)
27- 
28- #define list_next_entry(pos, member) \
29--	list_entry((pos)->member.next, typeof(*(pos)), member)
30-+	list_entry((pos)->member.next, __typeof__(*(pos)), member)
31- 
32- #define list_prev_entry(pos, member) \
33--	list_entry((pos)->member.prev, typeof(*(pos)), member)
34-+	list_entry((pos)->member.prev, __typeof__(*(pos)), member)
35- 
36- #define list_for_each_entry(pos, head, member)				\
37--	for (pos = list_first_entry(head, typeof(*pos), member);	\
38-+	for (pos = list_first_entry(head, __typeof__(*pos), member);	\
39- 	     &pos->member != (head);					\
40- 	     pos = list_next_entry(pos, member))
41- 
42- #define list_for_each_entry_safe(pos, n, head, member)			\
43--	for (pos = list_first_entry(head, typeof(*pos), member),	\
44-+	for (pos = list_first_entry(head, __typeof__(*pos), member),	\
45- 		n = list_next_entry(pos, member);			\
46- 	     &pos->member != (head);					\
47- 	     pos = n, n = list_next_entry(n, member))
48- 
49- #define list_for_each_entry_reverse(pos, head, member)			\
50--	for (pos = list_last_entry(head, typeof(*pos), member);		\
51-+	for (pos = list_last_entry(head, __typeof(*pos)__, member);	\
52- 	     &pos->member != (head);					\
53- 	     pos = list_prev_entry(pos, member))
54- 
55-@@ -127,13 +127,13 @@ static inline int list_empty(const struct list_head *head)
56- 	     pos = n)
57- 
58- #define hlist_entry_safe(ptr, type, member) \
59--	({ typeof(ptr) ____ptr = (ptr); \
60-+	({ __typeof__(ptr) ____ptr = (ptr); \
61- 	   ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
62- 	})
63- 
64- #define hlist_for_each_entry(pos, head, member)				\
65--	for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\
66-+	for (pos = hlist_entry_safe((head)->first, __typeof__(*(pos)), member);\
67- 	     pos;							\
68--	     pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
69-+	     pos = hlist_entry_safe((pos)->member.next, __typeof__(*(pos)), member))
70- 
71- #endif /* __LIST_H__ */
72-diff --git a/lib/ll_map.c b/lib/ll_map.c
73-index 7fe5f0bc..0f7305ab 100644
74---- a/lib/ll_map.c
75-+++ b/lib/ll_map.c
76-@@ -168,7 +168,7 @@ static void ll_altname_entries_update(struct ll_cache *parent_im,
77- 	 * and if it does not fit 1:1, recreate the cached list
78- 	 * from scratch.
79- 	 */
80--	im = list_first_entry(&parent_im->altnames_list, typeof(*im),
81-+	im = list_first_entry(&parent_im->altnames_list, __typeof__(*im),
82- 			      altnames_list);
83- 	rem = RTA_PAYLOAD(proplist);
84- 	for (i = RTA_DATA(proplist); RTA_OK(i, rem);
85--- 
86-2.44.0
87-
R pkg/iproute2/patch/0017-Remove-flexible-array-member-in-embedded-struct.patch => pkg/iproute2/patch/0014-Remove-flexible-array-member-in-embedded-struct.patch
+0, -0
+0, -32
 1@@ -1,32 +0,0 @@
 2-From e53788b231f05d0383fa8433e972384028340bb4 Mon Sep 17 00:00:00 2001
 3-From: Michael Forney <mforney@mforney.org>
 4-Date: Tue, 2 Jun 2020 03:56:03 -0700
 5-Subject: [PATCH] Revert change of BPF_F_* to enum constants
 6-
 7----
 8- include/uapi/linux/bpf.h | 8 +++-----
 9- 1 file changed, 3 insertions(+), 5 deletions(-)
10-
11-diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
12-index 0a2380a1..4a0d5760 100644
13---- a/include/uapi/linux/bpf.h
14-+++ b/include/uapi/linux/bpf.h
15-@@ -5970,12 +5970,10 @@ enum {
16- /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and
17-  * BPF_FUNC_perf_event_read_value flags.
18-  */
19--enum {
20--	BPF_F_INDEX_MASK		= 0xffffffffULL,
21--	BPF_F_CURRENT_CPU		= BPF_F_INDEX_MASK,
22-+#define BPF_F_INDEX_MASK		0xffffffffULL
23-+#define BPF_F_CURRENT_CPU		BPF_F_INDEX_MASK
24- /* BPF_FUNC_perf_event_output for sk_buff input context. */
25--	BPF_F_CTXLEN_MASK		= (0xfffffULL << 32),
26--};
27-+#define BPF_F_CTXLEN_MASK		(0xfffffULL << 32)
28- 
29- /* Current network namespace */
30- enum {
31--- 
32-2.44.0
33-
+1, -1
1@@ -1 +1 @@
2-6.8.0 r0
3+6.8.0 r1
R pkg/linux-headers/patch/0003-Prevent-zero-length-array-members-in-asound.h.patch => pkg/linux-headers/patch/0002-Prevent-zero-length-array-members-in-asound.h.patch
+0, -0
+0, -32
 1@@ -1,32 +0,0 @@
 2-From 72b27c48f468c547dcd93beae9041417c05ef655 Mon Sep 17 00:00:00 2001
 3-From: Michael Forney <mforney@mforney.org>
 4-Date: Tue, 2 Jun 2020 03:56:03 -0700
 5-Subject: [PATCH] Revert change of BPF_F_* to enum constants
 6-
 7----
 8- include/uapi/linux/bpf.h | 8 +++-----
 9- 1 file changed, 3 insertions(+), 5 deletions(-)
10-
11-diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
12-index 754e68ca8744..11bef290a69e 100644
13---- a/include/uapi/linux/bpf.h
14-+++ b/include/uapi/linux/bpf.h
15-@@ -5970,12 +5970,10 @@ enum {
16- /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and
17-  * BPF_FUNC_perf_event_read_value flags.
18-  */
19--enum {
20--	BPF_F_INDEX_MASK		= 0xffffffffULL,
21--	BPF_F_CURRENT_CPU		= BPF_F_INDEX_MASK,
22-+#define BPF_F_INDEX_MASK		0xffffffffULL
23-+#define BPF_F_CURRENT_CPU		BPF_F_INDEX_MASK
24- /* BPF_FUNC_perf_event_output for sk_buff input context. */
25--	BPF_F_CTXLEN_MASK		= (0xfffffULL << 32),
26--};
27-+#define BPF_F_CTXLEN_MASK		(0xfffffULL << 32)
28- 
29- /* Current network namespace */
30- enum {
31--- 
32-2.44.0
33-
R pkg/linux-headers/patch/0004-nfc-uapi-remove-stray-semicolon-in-struct-declaratio.patch => pkg/linux-headers/patch/0003-nfc-uapi-remove-stray-semicolon-in-struct-declaratio.patch
+0, -0
+1, -1
1@@ -1 +1 @@
2-6.8 r0
3+6.8 r1
R pkg/strace/patch/0003-Make-tcp_sysent-a-static-inline-function.patch => pkg/strace/patch/0002-Make-tcp_sysent-a-static-inline-function.patch
+0, -0
+0, -349
  1@@ -1,349 +0,0 @@
  2-From 268084161926ad4d1d110a3a5432e7ffd4e92fdf Mon Sep 17 00:00:00 2001
  3-From: Michael Forney <mforney@mforney.org>
  4-Date: Sat, 6 Jul 2019 01:33:01 -0700
  5-Subject: [PATCH] Use __typeof__ spelling of typeof
  6-
  7----
  8- src/bpf.c            | 10 +++++-----
  9- src/btrfs.c          | 12 ++++++------
 10- src/defs.h           |  6 +++---
 11- src/fs_0x94_ioctl.c  |  2 +-
 12- src/fs_f_ioctl.c     |  2 +-
 13- src/landlock.c       |  4 ++--
 14- src/list.h           | 10 +++++-----
 15- src/macros.h         |  2 +-
 16- src/print_fields.h   |  2 +-
 17- src/s390.c           |  6 +++---
 18- src/tee.c            |  2 +-
 19- src/ubi.c            |  2 +-
 20- tests/btrfs.c        |  2 +-
 21- tests/fcntl-common.c |  2 +-
 22- 14 files changed, 32 insertions(+), 32 deletions(-)
 23-
 24-diff --git a/src/bpf.c b/src/bpf.c
 25-index bbcdceddd..690df570d 100644
 26---- a/src/bpf.c
 27-+++ b/src/bpf.c
 28-@@ -1440,7 +1440,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
 29- 			tprint_struct_next();
 30- 			PRINT_FIELD_U(attr, target_btf_id);
 31- 		}
 32--		attr_size = offsetofend(typeof(attr), target_btf_id);
 33-+		attr_size = offsetofend(__typeof__(attr), target_btf_id);
 34- 		break;
 35- 
 36- 	/* TODO: prog type == BPF_PROG_TYPE_TRACING */
 37-@@ -1456,7 +1456,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
 38- 			    print_iter_info_array_member, 0);
 39- 		tprint_struct_next();
 40- 		PRINT_FIELD_U(attr, iter_info_len);
 41--		attr_size = offsetofend(typeof(attr), iter_info_len);
 42-+		attr_size = offsetofend(__typeof__(attr), iter_info_len);
 43- 		break;
 44- 	}
 45- 
 46-@@ -1468,7 +1468,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
 47- 		tprint_struct_begin();
 48- 		PRINT_FIELD_X(attr.perf_event, bpf_cookie);
 49- 		tprint_struct_end();
 50--		attr_size = offsetofend(typeof(attr), perf_event.bpf_cookie);
 51-+		attr_size = offsetofend(__typeof__(attr), perf_event.bpf_cookie);
 52- 		break;
 53- 
 54- 	/* TODO: prog type == BPF_PROG_TYPE_KPROBE */
 55-@@ -1508,7 +1508,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
 56- 			    &buf.cookie, sizeof(buf.cookie),
 57- 			    tfetch_mem, print_xint_array_member, 0);
 58- 		tprint_struct_end();
 59--		attr_size = offsetofend(typeof(attr), kprobe_multi.cookies);
 60-+		attr_size = offsetofend(__typeof__(attr), kprobe_multi.cookies);
 61- 		break;
 62- 	}
 63- 
 64-@@ -1518,7 +1518,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
 65- 		 *     can pick up non-zero values in the union at the end
 66- 		 *     of the link_create struct.
 67- 		 */
 68--		attr_size = offsetofend(typeof(attr), flags);
 69-+		attr_size = offsetofend(__typeof__(attr), flags);
 70- 	}
 71- 
 72- print_bpf_link_create_end:
 73-diff --git a/src/btrfs.c b/src/btrfs.c
 74-index 31ee871b3..76d7a2bec 100644
 75---- a/src/btrfs.c
 76-+++ b/src/btrfs.c
 77-@@ -216,7 +216,7 @@ btrfs_print_logical_ino_container(struct tcb *tcp,
 78- 		tprint_more_data_follows();
 79- 	} else {
 80- 		const uint64_t val_addr =
 81--			inodes_addr + offsetof(typeof(container), val);
 82-+			inodes_addr + offsetof(__typeof__(container), val);
 83- 		uint64_t record[3];
 84- 		tprint_struct_next();
 85- 		tprints_field_name("val");
 86-@@ -257,7 +257,7 @@ btrfs_print_ino_path_container(struct tcb *tcp,
 87- 		tprint_more_data_follows();
 88- 	} else {
 89- 		uint64_t val_addr =
 90--			fspath_addr + offsetof(typeof(container), val);
 91-+			fspath_addr + offsetof(__typeof__(container), val);
 92- 		uint64_t offset;
 93- 		tprint_struct_next();
 94- 		tprints_field_name("val");
 95-@@ -298,7 +298,7 @@ btrfs_print_qgroup_inherit(struct tcb *const tcp, const kernel_ulong_t qgi_addr)
 96- 		uint64_t record;
 97- 		tprint_struct_next();
 98- 		tprints_field_name("qgroups");
 99--		print_array(tcp, qgi_addr + offsetof(typeof(inherit), qgroups),
100-+		print_array(tcp, qgi_addr + offsetof(__typeof__(inherit), qgroups),
101- 			    inherit.num_qgroups, &record, sizeof(record),
102- 			    tfetch_mem, print_uint_array_member, 0);
103- 	}
104-@@ -1170,7 +1170,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
105- 		PRINT_FIELD_OBJ_PTR(args, key,
106- 				    print_btrfs_ioctl_search_key,
107- 				    entering(tcp), !abbrev(tcp));
108--		decode_search_arg_buf(tcp, arg + offsetof(typeof(args), buf),
109-+		decode_search_arg_buf(tcp, arg + offsetof(__typeof__(args), buf),
110- 				      sizeof(args.buf), args.key.nr_items);
111- 		tprint_struct_end();
112- 		if (entering(tcp))
113-@@ -1206,7 +1206,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
114- 				    entering(tcp), !abbrev(tcp));
115- 		tprint_struct_next();
116- 		PRINT_FIELD_U(args, buf_size);
117--		decode_search_arg_buf(tcp, arg + offsetof(typeof(args), buf),
118-+		decode_search_arg_buf(tcp, arg + offsetof(__typeof__(args), buf),
119- 				      args.buf_size, args.key.nr_items);
120- 		tprint_struct_end();
121- 		if (entering(tcp))
122-@@ -1284,7 +1284,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
123- 			struct btrfs_ioctl_space_info info;
124- 			tprint_struct_next();
125- 			tprints_field_name("spaces");
126--			print_array(tcp, arg + offsetof(typeof(args), spaces),
127-+			print_array(tcp, arg + offsetof(__typeof__(args), spaces),
128- 				    args.total_spaces,
129- 				    &info, sizeof(info), tfetch_mem,
130- 				    print_btrfs_ioctl_space_info, 0);
131-diff --git a/src/defs.h b/src/defs.h
132-index 465d58139..ae1d1d1dc 100644
133---- a/src/defs.h
134-+++ b/src/defs.h
135-@@ -1162,7 +1162,7 @@ print_local_array_ex(struct tcb *tcp,
136- # define print_local_array_upto(tcp_, start_addr_, upto_, print_func_)	     \
137- 	print_local_array_ex((tcp_), (start_addr_),			     \
138- 			     CLAMP((upto_), 0,				     \
139--				   (typeof(upto_)) ARRAY_SIZE(start_addr_)), \
140-+				   (__typeof__(upto_)) ARRAY_SIZE(start_addr_)), \
141- 			     sizeof((start_addr_)[0]), (print_func_),        \
142- 			     NULL, 0, NULL, NULL)
143- 
144-@@ -2045,8 +2045,8 @@ scno_pers_is_valid(kernel_ulong_t scno, unsigned int pers)
145- 
146- # define ILOG2_ITER_(val_, ret_, bit_)					\
147- 	do {								\
148--		typeof(ret_) shift_ =					\
149--			((val_) > ((((typeof(val_)) 1)			\
150-+		__typeof__(ret_) shift_ =				\
151-+			((val_) > ((((__typeof__(val_)) 1)		\
152- 				   << (1 << (bit_))) - 1)) << (bit_);	\
153- 		(val_) >>= shift_;					\
154- 		(ret_) |= shift_;					\
155-diff --git a/src/fs_0x94_ioctl.c b/src/fs_0x94_ioctl.c
156-index 7aa170af0..b908ea1fb 100644
157---- a/src/fs_0x94_ioctl.c
158-+++ b/src/fs_0x94_ioctl.c
159-@@ -94,7 +94,7 @@ decode_file_dedupe_range(struct tcb *const tcp, const kernel_ulong_t arg)
160- 	if (abbrev(tcp) && range.dest_count > count)
161- 		limit = &count;
162- 
163--	rc = print_array(tcp, arg + offsetof(typeof(range), info),
164-+	rc = print_array(tcp, arg + offsetof(__typeof__(range), info),
165- 			 range.dest_count, &info, sizeof(info),
166- 			 tfetch_mem,
167- 			 print_file_dedupe_range_info, limit);
168-diff --git a/src/fs_f_ioctl.c b/src/fs_f_ioctl.c
169-index 7b51bc9f9..ee9a42754 100644
170---- a/src/fs_f_ioctl.c
171-+++ b/src/fs_f_ioctl.c
172-@@ -72,7 +72,7 @@ decode_fiemap(struct tcb *const tcp, const kernel_ulong_t arg)
173- 		struct fiemap_extent fe;
174- 		tprint_struct_next();
175- 		tprints_field_name("fm_extents");
176--		print_array(tcp, arg + offsetof(typeof(args), fm_extents),
177-+		print_array(tcp, arg + offsetof(__typeof__(args), fm_extents),
178- 			    args.fm_mapped_extents, &fe, sizeof(fe),
179- 			    tfetch_mem, print_fiemap_extent, 0);
180- 	}
181-diff --git a/src/landlock.c b/src/landlock.c
182-index 7ee44f84c..16a430de8 100644
183---- a/src/landlock.c
184-+++ b/src/landlock.c
185-@@ -21,9 +21,9 @@ print_landlock_ruleset_attr(struct tcb *tcp, const kernel_ulong_t addr,
186- {
187- 	struct landlock_ruleset_attr attr = { 0 };
188- 	const size_t min_attr_size =
189--		offsetofend(typeof(attr), handled_access_fs);
190-+		offsetofend(__typeof__(attr), handled_access_fs);
191- 	const size_t max_attr_size =
192--		offsetofend(typeof(attr), handled_access_net);
193-+		offsetofend(__typeof__(attr), handled_access_net);
194- 
195- 	if (size < min_attr_size) {
196- 		printaddr(addr);
197-diff --git a/src/list.h b/src/list.h
198-index 4de4cb3be..f4ec11f0e 100644
199---- a/src/list.h
200-+++ b/src/list.h
201-@@ -158,7 +158,7 @@ list_is_empty(const struct list_item *l)
202-  * @param field Name of the field that holds the respective struct list_item.
203-  */
204- # define list_next(var, field) \
205--	list_elem((var)->field.next, typeof(*(var)), field)
206-+	list_elem((var)->field.next, __typeof__(*(var)), field)
207- /**
208-  * Get the previous element in a list.
209-  *
210-@@ -166,7 +166,7 @@ list_is_empty(const struct list_item *l)
211-  * @param field Name of the field that holds the respective struct list_item.
212-  */
213- # define list_prev(var, field) \
214--	list_elem((var)->field.prev, typeof(*(var)), field)
215-+	list_elem((var)->field.prev, __typeof__(*(var)), field)
216- 
217- /**
218-  * Insert an item into a list. The item is placed as the next list item
219-@@ -280,7 +280,7 @@ list_replace(struct list_item *old, struct list_item *new)
220-  *               inside list items.
221-  */
222- # define list_foreach(var_, head_, field_) \
223--	for (var_ = list_elem((head_)->next, typeof(*var_), field_); \
224-+	for (var_ = list_elem((head_)->next, __typeof__(*var_), field_); \
225- 	    &(var_->field_) != (head_); var_ = list_next(var_, field_))
226- 
227- /**
228-@@ -293,8 +293,8 @@ list_replace(struct list_item *old, struct list_item *new)
229-  * @param _tmp   Temporary variable for storing pointer to the next item.
230-  */
231- # define list_foreach_safe(var_, head_, field_, _tmp) \
232--	for (var_ = list_elem((head_)->next, typeof(*var_), field_), \
233--	    _tmp = list_elem((var_)->field_.next, typeof(*var_), field_); \
234-+	for (var_ = list_elem((head_)->next, __typeof__(*var_), field_), \
235-+	    _tmp = list_elem((var_)->field_.next, __typeof__(*var_), field_); \
236- 	    &var_->field_ != head_; var_ = _tmp, _tmp = list_next(_tmp, field_))
237- 
238- #endif /* !STRACE_LIST_H */
239-diff --git a/src/macros.h b/src/macros.h
240-index cb290c612..81cde400a 100644
241---- a/src/macros.h
242-+++ b/src/macros.h
243-@@ -62,7 +62,7 @@
244- 
245- # define sizeof_field(type_, member_) (sizeof(((type_ *)0)->member_))
246- 
247--# define typeof_field(type_, member_) typeof(((type_ *)0)->member_)
248-+# define typeof_field(type_, member_) __typeof__(((type_ *)0)->member_)
249- 
250- # ifndef offsetofend
251- #  define offsetofend(type_, member_)	\
252-diff --git a/src/print_fields.h b/src/print_fields.h
253-index 09548ce21..6a7e76982 100644
254---- a/src/print_fields.h
255-+++ b/src/print_fields.h
256-@@ -792,7 +792,7 @@ tprint_sysret_end(void)
257- # define MAYBE_PRINT_FIELD_LEN(print_prefix_, where_, field_,		\
258- 			len_, print_func_, ...)				\
259- 	do {								\
260--		unsigned int start = offsetof(typeof(where_), field_);	\
261-+		unsigned int start = offsetof(__typeof__(where_), field_); \
262- 		unsigned int end = start + sizeof((where_).field_);	\
263- 		if (len_ > start) {					\
264- 			print_prefix_;					\
265-diff --git a/src/s390.c b/src/s390.c
266-index ca71730c4..455144fe7 100644
267---- a/src/s390.c
268-+++ b/src/s390.c
269-@@ -505,7 +505,7 @@ static void
270- print_sthyi_machine(struct tcb *tcp, struct sthyi_machine *hdr, uint16_t size,
271- 		    bool *dummy)
272- {
273--	size_t last_decoded = offsetofend(typeof(*hdr), infmpman);
274-+	size_t last_decoded = offsetofend(__typeof__(*hdr), infmpman);
275- 	int cnt_val, name_val, id_val;
276- 
277- 	CHECK_SIZE_EX(hdr, last_decoded, size, "machine structure");
278-@@ -611,7 +611,7 @@ static void
279- print_sthyi_partition(struct tcb *tcp, struct sthyi_partition *hdr,
280- 		      uint16_t size, bool *mt)
281- {
282--	size_t last_decoded = offsetofend(typeof(*hdr), infpabif);
283-+	size_t last_decoded = offsetofend(__typeof__(*hdr), infpabif);
284- 	int cnt_val, wcap_val, acap_val, id_val, lpar_val;
285- 
286- 	*mt = false;
287-@@ -802,7 +802,7 @@ static void
288- print_sthyi_hypervisor(struct tcb *tcp, struct sthyi_hypervisor *hdr,
289- 		       uint16_t size, int num, bool mt)
290- {
291--	size_t last_decoded = offsetofend(typeof(*hdr), infydifl);
292-+	size_t last_decoded = offsetofend(__typeof__(*hdr), infydifl);
293- 
294- 	CHECK_SIZE_EX(hdr, last_decoded, size, "hypervisor %d structure", num);
295- 
296-diff --git a/src/tee.c b/src/tee.c
297-index 25f6e76c5..c62566800 100644
298---- a/src/tee.c
299-+++ b/src/tee.c
300-@@ -33,7 +33,7 @@ struct tee_ioctl_shm_register_fd_data {
301- 
302- #define TEE_FETCH_BUF_DATA(buf_, arg_, params_) \
303- 	tee_fetch_buf_data(tcp, arg, &buf_, sizeof(arg_), \
304--			   &arg_, offsetof(typeof(arg_), num_params), \
305-+			   &arg_, offsetof(__typeof__(arg_), num_params), \
306- 			   params_)
307- 
308- /* session id is printed as 0x%x in libteec */
309-diff --git a/src/ubi.c b/src/ubi.c
310-index 11a435b10..e75377783 100644
311---- a/src/ubi.c
312-+++ b/src/ubi.c
313-@@ -76,7 +76,7 @@ static bool
314- print_ubi_rnvol_req_ent_array_member(struct tcb *tcp, void *elem_buf,
315- 				     size_t elem_size, void *data)
316- {
317--	typeof(&((struct ubi_rnvol_req *) NULL)->ents[0]) p = elem_buf;
318-+	__typeof__(&((struct ubi_rnvol_req *) NULL)->ents[0]) p = elem_buf;
319- 
320- 	tprint_struct_begin();
321- 	PRINT_FIELD_D(*p, vol_id);
322-diff --git a/tests/btrfs.c b/tests/btrfs.c
323-index ab5bfae68..a3161875b 100644
324---- a/tests/btrfs.c
325-+++ b/tests/btrfs.c
326-@@ -876,7 +876,7 @@ btrfs_print_tree_search_buf(struct btrfs_ioctl_search_key *key,
327- 		printf("buf=[");
328- 		for (uint64_t i = 0; i < key->nr_items; ++i) {
329- 			struct btrfs_ioctl_search_header *sh;
330--			sh = (typeof(sh))(buf + off);
331-+			sh = (__typeof__(sh))(buf + off);
332- 			if (i)
333- 				printf(", ");
334- 			printf("{transid=%" PRI__u64 ", objectid=",
335-diff --git a/tests/fcntl-common.c b/tests/fcntl-common.c
336-index 20f92dd1d..aa6ecc8f5 100644
337---- a/tests/fcntl-common.c
338-+++ b/tests/fcntl-common.c
339-@@ -28,7 +28,7 @@
340- #endif
341- 
342- #ifdef HAVE_TYPEOF
343--# define TYPEOF_FLOCK_OFF_T typeof(((struct flock *) NULL)->l_len)
344-+# define TYPEOF_FLOCK_OFF_T __typeof__(((struct flock *) NULL)->l_len)
345- #else
346- # define TYPEOF_FLOCK_OFF_T off_t
347- #endif
348--- 
349-2.44.0
350-
R pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch => pkg/strace/patch/0003-Avoid-pointer-arithmetic-on-void.patch
+0, -0
+0, -215
  1@@ -1,215 +0,0 @@
  2-From 70c04478b105ab15e3e3a4bfcfcf96ace104b32e Mon Sep 17 00:00:00 2001
  3-From: Michael Forney <mforney@mforney.org>
  4-Date: Sat, 6 Jul 2019 01:54:05 -0700
  5-Subject: [PATCH] Avoid empty initializer lists
  6-
  7----
  8- src/bpf.c               | 4 ++--
  9- src/sched.c             | 2 +-
 10- src/signal.c            | 2 +-
 11- src/strace.c            | 2 +-
 12- tests/btrfs.c           | 8 ++++----
 13- tests/clock_nanosleep.c | 2 +-
 14- tests/nanosleep.c       | 2 +-
 15- tests/restart_syscall.c | 2 +-
 16- tests/setrlimit.c       | 2 +-
 17- tests/timer_create.c    | 2 +-
 18- tests/wait4.c           | 2 +-
 19- tests/waitid.c          | 2 +-
 20- 12 files changed, 16 insertions(+), 16 deletions(-)
 21-
 22-diff --git a/src/bpf.c b/src/bpf.c
 23-index 690df570d..16f2b7d31 100644
 24---- a/src/bpf.c
 25-+++ b/src/bpf.c
 26-@@ -50,7 +50,7 @@ bpf_cmd_decoder(struct tcb *const tcp,					\
 27- #define BEGIN_BPF_CMD_DECODER(bpf_cmd)					\
 28- 	static DECL_BPF_CMD_DECODER(decode_ ## bpf_cmd)			\
 29- 	{								\
 30--		struct bpf_cmd ## _struct attr = {};			\
 31-+		struct bpf_cmd ## _struct attr = {0};			\
 32- 		size_t attr_size = bpf_cmd ## _struct_size;	\
 33- 		const unsigned int len = MIN(size, attr_size);		\
 34- 		memcpy(&attr, data, len);				\
 35-@@ -161,7 +161,7 @@ print_ebpf_prog(struct tcb *const tcp, const uint64_t addr, const uint32_t len)
 36- 	if (abbrev(tcp)) {
 37- 		printaddr(addr);
 38- 	} else {
 39--		struct ebpf_insns_data eid = {};
 40-+		struct ebpf_insns_data eid = {0};
 41- 		struct ebpf_insn insn;
 42- 
 43- 		print_array(tcp, addr, len, &insn, sizeof(insn),
 44-diff --git a/src/sched.c b/src/sched.c
 45-index 010366871..2dda5b872 100644
 46---- a/src/sched.c
 47-+++ b/src/sched.c
 48-@@ -111,7 +111,7 @@ static void
 49- print_sched_attr(struct tcb *const tcp, const kernel_ulong_t addr,
 50- 		 unsigned int usize)
 51- {
 52--	struct sched_attr attr = {};
 53-+	struct sched_attr attr = {0};
 54- 	unsigned int size;
 55- 	bool is_set = false;
 56- 
 57-diff --git a/src/signal.c b/src/signal.c
 58-index 98f84d500..8680b10fb 100644
 59---- a/src/signal.c
 60-+++ b/src/signal.c
 61-@@ -257,7 +257,7 @@ print_sigset_addr_len_limit(struct tcb *const tcp, const kernel_ulong_t addr,
 62- 		printaddr(addr);
 63- 		return;
 64- 	}
 65--	int mask[NSIG_BYTES / sizeof(int)] = {};
 66-+	int mask[NSIG_BYTES / sizeof(int)] = {0};
 67- 	if (umoven_or_printaddr(tcp, addr, len, mask))
 68- 		return;
 69- 	tprints_string(sprintsigmask_n("", mask, len));
 70-diff --git a/src/strace.c b/src/strace.c
 71-index 649b8d160..9c87e34ed 100644
 72---- a/src/strace.c
 73-+++ b/src/strace.c
 74-@@ -3891,7 +3891,7 @@ trace_syscall(struct tcb *tcp, unsigned int *sig)
 75- 		syscall_entering_finish(tcp, res);
 76- 		return res;
 77- 	} else {
 78--		struct timespec ts = {};
 79-+		struct timespec ts = {0};
 80- 		int res = syscall_exiting_decode(tcp, &ts);
 81- 		if (res != 0) {
 82- 			res = syscall_exiting_trace(tcp, &ts, res);
 83-diff --git a/tests/btrfs.c b/tests/btrfs.c
 84-index a3161875b..88112e463 100644
 85---- a/tests/btrfs.c
 86-+++ b/tests/btrfs.c
 87-@@ -313,7 +313,7 @@ btrfs_test_subvol_ioctls(void)
 88- 	char *long_subvol_name;
 89- 	void *bad_pointer = (void *) (unsigned long) 0xdeadbeeffffffeedULL;
 90- 	uint64_t u64val = 0xdeadbeefbadc0dedULL;
 91--	struct btrfs_ioctl_vol_args vol_args = {};
 92-+	struct btrfs_ioctl_vol_args vol_args = {0};
 93- 	struct btrfs_ioctl_vol_args_v2 vol_args_v2 = {
 94- 		.fd = 2,
 95- 		.flags = max_flags_plus_one(2),
 96-@@ -554,7 +554,7 @@ btrfs_test_balance_ioctls(void)
 97- 			.devid = 1,
 98- 		},
 99- 	};
100--	struct btrfs_ioctl_vol_args vol_args = {};
101-+	struct btrfs_ioctl_vol_args vol_args = {0};
102- 
103- 	ioctl(-1, BTRFS_IOC_BALANCE_CTL, 1);
104- 	printf("ioctl(-1, %s, %sBTRFS_BALANCE_CTL_PAUSE%s)" RVAL_EBADF,
105-@@ -764,7 +764,7 @@ btrfs_print_defrag_range_args(struct btrfs_ioctl_defrag_range_args *args,
106- static void
107- btrfs_test_defrag_ioctls(void)
108- {
109--	struct btrfs_ioctl_vol_args vol_args = {};
110-+	struct btrfs_ioctl_vol_args vol_args = {0};
111- 	struct btrfs_ioctl_defrag_range_args args = {
112- 		.start = 0,
113- 		.len = -1ULL,
114-@@ -1092,7 +1092,7 @@ btrfs_test_ino_lookup_ioctl(void)
115- static void
116- btrfs_test_space_info_ioctl(void)
117- {
118--	struct btrfs_ioctl_space_args args = {};
119-+	struct btrfs_ioctl_space_args args = {0};
120- 
121- 	ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL);
122- 	printf("ioctl(-1, %s, NULL)" RVAL_EBADF,
123-diff --git a/tests/clock_nanosleep.c b/tests/clock_nanosleep.c
124-index 13c3dad87..4638d492b 100644
125---- a/tests/clock_nanosleep.c
126-+++ b/tests/clock_nanosleep.c
127-@@ -39,7 +39,7 @@ main(void)
128- 		.ts = { .tv_sec = 0xc0de2, .tv_nsec = 0xc0de3 },
129- 		.pad = { 0xdeadbeef, 0xbadc0ded }
130- 	};
131--	const sigset_t set = {};
132-+	const sigset_t set = {0};
133- 	const struct sigaction act = { .sa_handler = handler };
134- 	const struct itimerval itv = {
135- 		.it_interval.tv_usec = 222222,
136-diff --git a/tests/nanosleep.c b/tests/nanosleep.c
137-index 743105e80..2a7ddff5c 100644
138---- a/tests/nanosleep.c
139-+++ b/tests/nanosleep.c
140-@@ -53,7 +53,7 @@ main(void)
141- 		.ts = { .tv_sec = 0xc0de2, .tv_nsec = 0xc0de3 },
142- 		.pad = { 0xdeadbeef, 0xbadc0ded }
143- 	};
144--	const sigset_t set = {};
145-+	const sigset_t set = {0};
146- 	const struct sigaction act = { .sa_handler = handler };
147- 	const struct itimerval itv = { .it_value.tv_usec = 111111 };
148- 
149-diff --git a/tests/restart_syscall.c b/tests/restart_syscall.c
150-index a9b1d2291..7fd7fb602 100644
151---- a/tests/restart_syscall.c
152-+++ b/tests/restart_syscall.c
153-@@ -26,7 +26,7 @@ main(void)
154- 	 */
155- 	error_msg_and_skip("x32 is broken");
156- #else
157--	const sigset_t set = {};
158-+	const sigset_t set = {0};
159- 	const struct sigaction act = { .sa_handler = SIG_IGN };
160- 	const struct itimerval itv = { .it_interval.tv_usec = 22222,
161- 				       .it_value.tv_usec = 11111 };
162-diff --git a/tests/setrlimit.c b/tests/setrlimit.c
163-index d4953f6f8..60d54fbd8 100644
164---- a/tests/setrlimit.c
165-+++ b/tests/setrlimit.c
166-@@ -39,7 +39,7 @@ main(void)
167- 		printf("setrlimit(%s, NULL) = %s\n", xlat->str, sprintrc(rc));
168- # endif
169- 
170--		struct rlimit libc_rlim = {};
171-+		struct rlimit libc_rlim = {0};
172- 		if (getrlimit((int) res, &libc_rlim))
173- 			continue;
174- 		rlimit[0] = libc_rlim.rlim_cur;
175-diff --git a/tests/timer_create.c b/tests/timer_create.c
176-index e4357b2cf..8d6cd415f 100644
177---- a/tests/timer_create.c
178-+++ b/tests/timer_create.c
179-@@ -24,7 +24,7 @@ main(void)
180- 	printf("timer_create(CLOCK_REALTIME, NULL, NULL) = %s\n",
181- 	       sprintrc(-1));
182- 
183--	int tid[4] = {};
184-+	int tid[4] = {0};
185- 	struct_sigevent sev = {
186- 		.sigev_notify = 0xdefaced,
187- 		.sigev_signo = 0xfacefeed,
188-diff --git a/tests/wait4.c b/tests/wait4.c
189-index faf9423f8..eacee2366 100644
190---- a/tests/wait4.c
191-+++ b/tests/wait4.c
192-@@ -89,7 +89,7 @@ k_wait4(const unsigned int pid, void const *wstatus,
193- static pid_t
194- do_wait4(pid_t pid, int *wstatus, int options, kernel_rusage_t *ru)
195- {
196--	sigset_t mask = {};
197-+	sigset_t mask = {0};
198- 	sigaddset(&mask, SIGCHLD);
199- 
200- 	assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
201-diff --git a/tests/waitid.c b/tests/waitid.c
202-index 1ed763840..fef941874 100644
203---- a/tests/waitid.c
204-+++ b/tests/waitid.c
205-@@ -146,7 +146,7 @@ do_waitid(const unsigned int idtype,
206- 	  const unsigned int options,
207- 	  const kernel_rusage_t *const rusage)
208- {
209--	sigset_t mask = {};
210-+	sigset_t mask = {0};
211- 	sigaddset(&mask, SIGCHLD);
212- 
213- 	assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
214--- 
215-2.44.0
216-
R pkg/strace/patch/0006-Avoid-empty-struct-definition.patch => pkg/strace/patch/0004-Avoid-empty-struct-definition.patch
+0, -0
R pkg/strace/patch/0007-Don-t-omit-second-operand-to-operator.patch => pkg/strace/patch/0005-Don-t-omit-second-operand-to-operator.patch
+0, -0
R pkg/strace/patch/0008-Avoid-unnecessary-VLAs.patch => pkg/strace/patch/0006-Avoid-unnecessary-VLAs.patch
+0, -0
R pkg/strace/patch/0009-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch => pkg/strace/patch/0007-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch
+0, -0
R pkg/strace/patch/0010-Use-alloca-when-VLAs-aren-t-available.patch => pkg/strace/patch/0008-Use-alloca-when-VLAs-aren-t-available.patch
+0, -0
R pkg/strace/patch/0011-Avoid-index-ranges.patch => pkg/strace/patch/0009-Avoid-index-ranges.patch
+0, -0
+1, -1
1@@ -1 +1 @@
2-6.8 r0
3+6.8 r1