Perf tool now is broken by commit 9dff0aa95a32 ("perf/core: Don't WARN() for impossible ring-buffer sizes"). The get_order() should be used but not the order_base_2(). This mistake makes mmap() on perf fd always fail. Fixes: 9dff0aa95a32 ("perf/core: Don't WARN() for impossible ring-buffer sizes") Signed-off-by: Changbin Du <changbin.du@xxxxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Julien Thierry <julien.thierry@xxxxxxx> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Cc: Jiri Olsa <jolsa@xxxxxxxxxx> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx> Cc: <stable@xxxxxxxxxxxxxxx> --- kernel/events/ring_buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c index 309ef5a64af5..55faafca4a6e 100644 --- a/kernel/events/ring_buffer.c +++ b/kernel/events/ring_buffer.c @@ -734,7 +734,7 @@ struct ring_buffer *rb_alloc(int nr_pages, long watermark, int cpu, int flags) size = sizeof(struct ring_buffer); size += nr_pages * sizeof(void *); - if (order_base_2(size) >= MAX_ORDER) + if (get_order(size) >= MAX_ORDER) goto fail; rb = kzalloc(size, GFP_KERNEL); -- 2.19.1