diff --git a/0001-Initialize-nl_pid-so-gcc-shuts-up.patch b/0001-Initialize-nl_pid-so-gcc-shuts-up.patch new file mode 100644 index 0000000..b8e5080 --- /dev/null +++ b/0001-Initialize-nl_pid-so-gcc-shuts-up.patch @@ -0,0 +1,45 @@ +From 6d23065901549562b69fc84f34279d4635e5e9f0 Mon Sep 17 00:00:00 2001 +From: Jeremy Cline +Date: Fri, 3 Apr 2020 21:25:00 -0400 +Subject: [PATCH] libbpf: Initialize *nl_pid so gcc 10 is happy + +Builds of Fedora's kernel-tools package started to fail with "may be +used uninitialized" warnings for nl_pid in bpf_set_link_xdp_fd() and +bpf_get_link_xdp_info() on the s390 architecture. + +Although libbpf_netlink_open() always returns a negative number when it +does not set *nl_pid, the compiler does not determine this and thus +believes the variable might be used uninitialized. Assuage gcc's fears +by explicitly initializing nl_pid. + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1807781 +Signed-off-by: Jeremy Cline +--- + tools/lib/bpf/netlink.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tools/lib/bpf/netlink.c b/tools/lib/bpf/netlink.c +index 18b5319025e19..9a14694176de0 100644 +--- a/tools/lib/bpf/netlink.c ++++ b/tools/lib/bpf/netlink.c +@@ -142,7 +142,7 @@ static int __bpf_set_link_xdp_fd_replace(int ifindex, int fd, int old_fd, + struct ifinfomsg ifinfo; + char attrbuf[64]; + } req; +- __u32 nl_pid; ++ __u32 nl_pid = 0; + + sock = libbpf_netlink_open(&nl_pid); + if (sock < 0) +@@ -288,7 +288,7 @@ int bpf_get_link_xdp_info(int ifindex, struct xdp_link_info *info, + { + struct xdp_id_md xdp_id = {}; + int sock, ret; +- __u32 nl_pid; ++ __u32 nl_pid = 0; + __u32 mask; + + if (flags & ~XDP_FLAGS_MASK || !info_size) +-- +2.26.0 + diff --git a/kernel-tools.spec b/kernel-tools.spec index e046ab0..5dda185 100644 --- a/kernel-tools.spec +++ b/kernel-tools.spec @@ -109,6 +109,8 @@ Patch0: 0001-iio-Use-event-header-from-kernel-tree.patch # rpmlint cleanup Patch6: 0002-perf-Don-t-make-sourced-script-executable.patch +Patch7: 0001-Initialize-nl_pid-so-gcc-shuts-up.patch + Name: kernel-tools Summary: Assortment of tools for the Linux kernel License: GPLv2 @@ -202,6 +204,7 @@ cd linux-%{kversion} %patch0 -p1 %patch6 -p1 +%patch7 -p1 # END OF PATCH APPLICATIONS