From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E5214C4332F for ; Tue, 1 Nov 2022 19:31:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230288AbiKATbq (ORCPT ); Tue, 1 Nov 2022 15:31:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230266AbiKATbl (ORCPT ); Tue, 1 Nov 2022 15:31:41 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4C2231DF07 for ; Tue, 1 Nov 2022 12:31:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E6BA46171A for ; Tue, 1 Nov 2022 19:31:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 291B9C433C1; Tue, 1 Nov 2022 19:31:37 +0000 (UTC) Date: Tue, 1 Nov 2022 15:31:35 -0400 From: Steven Rostedt To: Roland Ruckerbauer Cc: Masami Hiramatsu , linux-kernel@vger.kernel.org, Takashi Iwai , regressions@lists.linux.dev, Steven Noonan Subject: Re: [BUG] NULL pointer dereference probably caused by kernel/trace/ring_buffer.c Message-ID: <20221101153135.5345c748@rorschach.local.home> In-Reply-To: References: <20221031145046.2a7f9d32@rorschach.local.home> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 31 Oct 2022 21:20:33 +0100 Roland Ruckerbauer wrote: > Unfortunately the same thing is still happening. Can you try this? If it stops the crash, it should trigger the warning, which hopefully will shed more light onto the issue. Thanks! -- Steve diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 199759c73519..8dd793833b51 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -937,6 +937,9 @@ void ring_buffer_wake_waiters(struct trace_buffer *buffer, int cpu) struct ring_buffer_per_cpu *cpu_buffer; struct rb_irq_work *rbwork; + if (!buffer) + return; + if (cpu == RING_BUFFER_ALL_CPUS) { /* Wake up individual ones too. One level recursion */ @@ -945,6 +948,10 @@ void ring_buffer_wake_waiters(struct trace_buffer *buffer, int cpu) rbwork = &buffer->irq_work; } else { + if (WARN_ON_ONCE(!buffer->buffers)) + return; + if (WARN_ON_ONCE(cpu >= nr_cpu_ids)) + return; cpu_buffer = buffer->buffers[cpu]; rbwork = &cpu_buffer->irq_work; }