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 X-Spam-Level: X-Spam-Status: No, score=-10.2 required=3.0 tests=BAYES_00, BUG6152_INVALID_DATE_TZ_ABSURD,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,INVALID_DATE_TZ_ABSURD, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 60F0FC433FE for ; Tue, 8 Dec 2020 07:46:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 211C523A3C for ; Tue, 8 Dec 2020 07:46:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727505AbgLHHqP (ORCPT ); Tue, 8 Dec 2020 02:46:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726777AbgLHHqP (ORCPT ); Tue, 8 Dec 2020 02:46:15 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C44F3C061749 for ; Mon, 7 Dec 2020 23:45:34 -0800 (PST) From: John Ogness DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1607413532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=994Mu/eBbAgjKa9RtniOqVKR4U+12PtsGbiLcFEIluU=; b=1lyul3nfOkCQwfjc2LmwAGVM5/dUK8kYL1txp7kxLoUZyYRqpWW09sVV5/vFqt+1TUWpnb Foc4sm6uivtJgJ5jvuNITj3RkEFijfz3jN/CqwlmX3p86NI5Bw1Ts7vDfVhh0bx6dAQ/hw TssHj5JuHnYrrRKkbYdlv19WVeGVS40aRciYyt+CkxGp20OIL976PM9xMJHuqNFEPBTVFn xzPnC6oefXKrBRmUc1xXN2FNOfkhkm0P1eCb708TSr0IZhlxGwn696JPQ2/Bm+HQA56uGx uPtLhue/NM8SrDTAyki2n5/sOVF3tX81VvtunIo3K5k1dmWVnz0bwJRT61XXdQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1607413532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=994Mu/eBbAgjKa9RtniOqVKR4U+12PtsGbiLcFEIluU=; b=hlS7/qn5H4HHWExN0K9k+VlTDLiNlOuA/3nbQp2p99qZepuh7kw15Dx09zwiR7xBMWDGbQ pNC7FKYaq+Wu7iCg== To: Petr Mladek Cc: Sergey Senozhatsky , Sergey Senozhatsky , Steven Rostedt , Linus Torvalds , Greg Kroah-Hartman , Thomas Gleixner , linux-kernel@vger.kernel.org Subject: Re: [PATCH next v3 3/3] printk: remove logbuf_lock protection for ringbuffer In-Reply-To: <20201207222020.2923-4-john.ogness@linutronix.de> References: <20201207222020.2923-1-john.ogness@linutronix.de> <20201207222020.2923-4-john.ogness@linutronix.de> Date: Tue, 08 Dec 2020 08:51:32 +0106 Message-ID: <87h7owd9lv.fsf@jogness.linutronix.de> MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-12-07, John Ogness wrote: > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c > index e1f068677a74..f3c0fcc3163f 100644 > --- a/kernel/printk/printk.c > +++ b/kernel/printk/printk.c [...] > int vprintk_store(int facility, int level, > const struct dev_printk_info *dev_info, > const char *fmt, va_list args) > { > const u32 caller_id = printk_caller_id(); > - static char textbuf[LOG_LINE_MAX]; > struct prb_reserved_entry e; > enum log_flags lflags = 0; > struct printk_record r; > u16 trunc_msg_len = 0; > - char *text = textbuf; > + char prefix_buf[8]; > + va_list args2; > u16 text_len; > + int ret = 0; > u64 ts_nsec; > > /* > @@ -1884,35 +1951,21 @@ int vprintk_store(int facility, int level, > */ > ts_nsec = local_clock(); > > + va_copy(args2, args); > + > /* > * The printf needs to come first; we need the syslog > * prefix which might be passed-in as a parameter. > */ > - text_len = vscnprintf(text, sizeof(textbuf), fmt, args); > + text_len = vsnprintf(&prefix_buf[0], sizeof(prefix_buf), fmt, args) + 1; > + if (text_len > CONSOLE_LOG_MAX) > + text_len = CONSOLE_LOG_MAX; LOG_LINE_MAX should be the limit. That was the size of the static @textbuf. John Ogness