--- /dev/null
+From 0c5f1acc2a14416bf30023f373558d369afdbfc8 Mon Sep 17 00:00:00 2001
+From: Tiezhu Yang <yangtiezhu@loongson.cn>
+Date: Tue, 18 Aug 2020 20:30:37 +0800
+Subject: perf top: Skip side-band event setup if HAVE_LIBBPF_SUPPORT is not set
+
+From: Tiezhu Yang <yangtiezhu@loongson.cn>
+
+commit 0c5f1acc2a14416bf30023f373558d369afdbfc8 upstream.
+
+When I execute 'perf top' without HAVE_LIBBPF_SUPPORT, there exists the
+following segmentation fault, skip the side-band event setup to fix it,
+this is similar with commit 1101c872c8c7 ("perf record: Skip side-band
+event setup if HAVE_LIBBPF_SUPPORT is not set").
+
+ [yangtiezhu@linux perf]$ ./perf top
+ <SNIP>
+ perf: Segmentation fault
+ Obtained 6 stack frames.
+ ./perf(sighandler_dump_stack+0x5c) [0x12011b604]
+ [0xffffffc010]
+ ./perf(perf_mmap__read_init+0x3e) [0x1201feeae]
+ ./perf() [0x1200d715c]
+ /lib64/libpthread.so.0(+0xab9c) [0xffee10ab9c]
+ /lib64/libc.so.6(+0x128f4c) [0xffedc08f4c]
+ Segmentation fault
+ [yangtiezhu@linux perf]$
+
+I use git bisect to find commit b38d85ef49cf ("perf bpf: Decouple
+creating the evlist from adding the SB event") is the first bad commit,
+so also add the Fixes tag.
+
+Committer testing:
+
+First build perf explicitely disabling libbpf:
+
+ $ make NO_LIBBPF=1 O=/tmp/build/perf -C tools/perf install-bin && perf test python
+
+Now make sure it isn't linked:
+
+ $ perf -vv | grep -w bpf
+ bpf: [ OFF ] # HAVE_LIBBPF_SUPPORT
+ $
+ $ nm ~/bin/perf | grep libbpf
+ $
+
+And now try to run 'perf top':
+
+ # perf top
+ perf: Segmentation fault
+ -------- backtrace --------
+ perf[0x5bcd6d]
+ /lib64/libc.so.6(+0x3ca6f)[0x7fd0f5a66a6f]
+ perf(perf_mmap__read_init+0x1e)[0x5e1afe]
+ perf[0x4cc468]
+ /lib64/libpthread.so.0(+0x9431)[0x7fd0f645a431]
+ /lib64/libc.so.6(clone+0x42)[0x7fd0f5b2b912]
+ #
+
+Applying this patch fixes the issue.
+
+Fixes: b38d85ef49cf ("perf bpf: Decouple creating the evlist from adding the SB event")
+Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
+Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
+Cc: Jiri Olsa <jolsa@redhat.com>
+Cc: Mark Rutland <mark.rutland@arm.com>
+Cc: Namhyung Kim <namhyung@kernel.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Xuefeng Li <lixuefeng@loongson.cn>
+Link: http://lore.kernel.org/lkml/1597753837-16222-1-git-send-email-yangtiezhu@loongson.cn
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/perf/builtin-top.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/tools/perf/builtin-top.c
++++ b/tools/perf/builtin-top.c
+@@ -1682,6 +1682,7 @@ int cmd_top(int argc, const char **argv)
+ goto out_delete_evlist;
+ }
+
++#ifdef HAVE_LIBBPF_SUPPORT
+ if (!top.record_opts.no_bpf_event) {
+ top.sb_evlist = evlist__new();
+
+@@ -1695,6 +1696,7 @@ int cmd_top(int argc, const char **argv)
+ goto out_delete_evlist;
+ }
+ }
++#endif
+
+ if (perf_evlist__start_sb_thread(top.sb_evlist, target)) {
+ pr_debug("Couldn't start the BPF side band thread:\nBPF programs starting from now on won't be annotatable\n");