From patchwork Fri Nov 25 19:09:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 26122 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp4238025wrr; Fri, 25 Nov 2022 11:11:42 -0800 (PST) X-Google-Smtp-Source: AA0mqf6bM/W5IRnd/PNbazJLoEmQlZWr3z1YFPynbEd8vL1PiYBVaRCbTu6RIDMrB6u5romFuEnX X-Received: by 2002:a63:5850:0:b0:46e:f67c:c0a7 with SMTP id i16-20020a635850000000b0046ef67cc0a7mr35523417pgm.464.1669403502630; Fri, 25 Nov 2022 11:11:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669403502; cv=none; d=google.com; s=arc-20160816; b=vtcLSOCevluF6voqqCu1pmkfTw4aGjGTwJkwCt5NmWKQr1Y6wQnxC10GzdZbfzNlea QQ6WaMhokNWsDgqmRMeQ0c9GTVqDIrsL03sUaGj1TDjnVnV4jqSKpelkaPcE2EGaVQ9C cG+yWGjlb73uB6v6hH/dmhaOxHQOs2EMnOfc9FFG1qhgPmOlbxfIlYPx3/C/z6op5tdy gSfGA6X9dl4+F9mIFAb6P5VdHCFtQrIkK6NUJVvuQ8Y3M6Bvc9Er4YovVuI+/PsaY0cm Ka2azA5Fe73CmsKn5P1iTGGFDx5NealpmpPCSND2irUv86YbMTU6pREzacLnkIDkKT64 v15A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:dkim-signature :from; bh=AInAeJQRa0wUnLsqszPOtT5W97/Tl9OXthaU8zwZmKI=; b=H1/jTSxumGf3IuXJxo5BPx94hJ1pJiotpv+pDDp0aMACybWuzMrLTePkMEEpiv27R2 /pbW3Sgv90XH+FZL6FuQEU/4fmb6YLtJ7YnpJZ8wU/jMi23h1z4SzJS53Nc9ff+6D9Vt qKAMtPw/sd6JFQwlOAydO8tYhzzyL26FE8w9zghdt0SkXESeeQ75OdnwfMPAsHh8QG94 xrTa7+fH2NfE5m1k/PbDYOkoGOK4+s867QZYwg2/5ZVvyKN/iwP35vAuXvrsWTbbVVsJ VjSVmE9i3KOEqpeJfsZza2q15nBSIRkTq49CLvcG/f9rUOjZCJ+Lk1VFUiZLjTYs9rEI eZwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=CdjwjO5h; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mu10-20020a17090b388a00b0020d5dfb9d69si5326548pjb.187.2022.11.25.11.11.29; Fri, 25 Nov 2022 11:11:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=CdjwjO5h; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229847AbiKYTKQ (ORCPT + 99 others); Fri, 25 Nov 2022 14:10:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40690 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229473AbiKYTKO (ORCPT ); Fri, 25 Nov 2022 14:10:14 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [IPv6:2a01:4f8:c010:41de::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE920554E9 for ; Fri, 25 Nov 2022 11:10:12 -0800 (PST) From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net; s=mail; t=1669403409; bh=Cfs+sOQDL6GBgQ3fenqAT1FujV3he1f3Lpmpy6WNGIY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CdjwjO5hHtwgwX90USoA3/oYV6gNtrbEg2T9br83TK4zdDJz6VEWprrsMkCEyvepp PUB2jhZPZu/9ERMHp8awa/NpE4O55WPPfRNpkBArX3qyjoKkMYY6qFKJ6AYFFZNbTp LoHFvTGLPJslEBlrSWMXLfJZLDQva+Kk9Vuypl2s= To: "Rafael J. Wysocki" , Pavel Machek , Len Brown , linux-pm@vger.kernel.org, Petr Mladek , Sergey Senozhatsky , Andy Whitcroft , Joe Perches Cc: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= , linux-kernel@vger.kernel.org, Steven Rostedt , Dwaipayan Ray , Lukas Bulwahn Subject: [PATCH v2 1/3] printk: introduce new macros pr__cont() Date: Fri, 25 Nov 2022 20:09:46 +0100 Message-Id: <20221125190948.2062-2-linux@weissschuh.net> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221125190948.2062-1-linux@weissschuh.net> References: <20221125190948.2062-1-linux@weissschuh.net> MIME-Version: 1.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1669403373; l=2153; i=linux@weissschuh.net; s=20211113; h=from:subject; bh=Cfs+sOQDL6GBgQ3fenqAT1FujV3he1f3Lpmpy6WNGIY=; b=HrAjdosSOqn753OZecTREHBNiVZHFXNRlI3g1j+9iLw4cn/f064kUy61f5eptIvvv5OiNU3b0iWm VqdxqwJmBCtf2AP3qCG9Gek6WHudS6izrr6XXVq30kQbg1PoiGz4 X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=9LP6KM4vD/8CwHW7nouRBhWLyQLcK1MkP6aTZbzUlj4= X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750496447396228338?= X-GMAIL-MSGID: =?utf-8?q?1750496447396228338?= These macros emit continuation messages with explicit levels. In case the continuation is logged separately from the original message it will retain its level instead of falling back to KERN_DEFAULT. This remedies the issue that logs filtered by level contain stray continuation messages without context. Suggested-by: Petr Mladek Signed-off-by: Thomas Weißschuh --- include/linux/printk.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/linux/printk.h b/include/linux/printk.h index 8c81806c2e99..8f564c38f121 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -537,6 +537,8 @@ struct pi_entry { * This macro expands to a printk with KERN_CONT loglevel. It should only be * used when continuing a log message with no newline ('\n') enclosed. Otherwise * it defaults back to KERN_DEFAULT loglevel. + * + * Use the dedicated pr__cont() macros instead. */ #define pr_cont(fmt, ...) \ printk(KERN_CONT fmt, ##__VA_ARGS__) @@ -701,6 +703,27 @@ do { \ no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) #endif +/* + * Print a continuation message with level. In case the continuation is split + * from the main message it preserves the level. + */ + +#define pr_emerg_cont(fmt, ...) \ + printk(KERN_EMERG KERN_CONT pr_fmt(fmt), ##__VA_ARGS__) +#define pr_alert_cont(fmt, ...) \ + printk(KERN_ALERT KERN_CONT pr_fmt(fmt), ##__VA_ARGS__) +#define pr_crit_cont(fmt, ...) \ + printk(KERN_CRIT KERN_CONT pr_fmt(fmt), ##__VA_ARGS__) +#define pr_err_cont(fmt, ...) \ + printk(KERN_ERR KERN_CONT pr_fmt(fmt), ##__VA_ARGS__) +#define pr_warn_cont(fmt, ...) \ + printk(KERN_WARN KERN_CONT pr_fmt(fmt), ##__VA_ARGS__) +#define pr_notice_cont(fmt, ...) \ + printk(KERN_NOTICE KERN_CONT pr_fmt(fmt), ##__VA_ARGS__) +#define pr_info_cont(fmt, ...) \ + printk(KERN_INFO KERN_CONT pr_fmt(fmt), ##__VA_ARGS__) +/* no pr_debug_ratelimited, it doesn't make sense with CONFIG_DYNAMIC_DEBUG. */ + extern const struct file_operations kmsg_fops; enum {