Received: by 2002:a05:7412:5112:b0:fa:6e18:a558 with SMTP id fm18csp275611rdb; Mon, 22 Jan 2024 21:41:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IHKSwC0fdkKlS8J5YKzgj5h/2HyG/6/01TAvA/GPeB+/MiY38/x7BOwGv7buux/nlNYcHDH X-Received: by 2002:ae9:c301:0:b0:783:84be:332a with SMTP id n1-20020ae9c301000000b0078384be332amr5795530qkg.113.1705988494842; Mon, 22 Jan 2024 21:41:34 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1705988494; cv=pass; d=google.com; s=arc-20160816; b=DbabW8jXoxh8M4cY3srN7+bWz01sNo6Bk4dk1Ts4qCmm2HCP4uEQndA+yFaFp0n4dk gpvWNHcFEwivmmTZKzWjubc31i4YH0R/BOVVH4EQsWuLeIJtFpF9TQrPaRA5MszKov6c 0mAnwj5Mnopp+0LNTW/tOzcPE8YNxVu+QpCuLE42wMRiXrjxDf0p1DqfiisKr+tu8cmM dGKB7g7hKw3FAFP2mKiHdYvuR5Ouobow7Z9NXOZwncy5Gy611VupqeENRo5xXCpzMnQa JvgrGGGXAlaGLB4duhxUd0gShjLdwiSfcUQWheZg4HN4OXDwPbTWsi+YX5QpOwGVCXAZ IM4Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=zdYKrlDzUSCR+k1c6htQmOpzX7HqoD22HE6w5MctqLo=; fh=3n9yk9H0aP61VWOkjV8qJHqEh2nN7MsL3m9A3XvFOBk=; b=oZGDt0MSBO2ME3OH9b7ynEKAWnWVcug4lqvW709JLy9563ZbmyB30Fr+NdHpZGQ1Us wkM3zXX+4IgBCiic5msyT6P8zOuz+YWrqwDn9h4Z55OPwkX3LC69Sp8jGCQSK//kcZFj vrb67+HIDrXMvxMhju0tIV6yVZHPuusfesJW0wg5+578tQC9lmgvAyNbtPrpd3rI3nRy Muh1q8OpbKRfQ6GsxxRl2GT/bfK4O54pkF8G8QlhMfdeUBDNbNY9KxyEiAfA4vf04p1i s9bCpByrup03tt7xKNsDjo3vDV3qzk2CwzVpZGtP5+wzZu28GsrkILIIaxck6chSBQil mzZQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="iOHK/kbF"; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-34729-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-34729-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id t27-20020a05620a035b00b007835a6907bfsi6973966qkm.389.2024.01.22.21.41.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jan 2024 21:41:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-34729-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="iOHK/kbF"; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-34729-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-34729-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 985451C22949 for ; Tue, 23 Jan 2024 05:41:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A1FF95678; Tue, 23 Jan 2024 05:41:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="iOHK/kbF" Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D86AE4400; Tue, 23 Jan 2024 05:41:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.10 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705988462; cv=none; b=JFN5115qd4ZIHMnpo2A1H6YDJ5JQxeruZ7JQeYdGUyif+08vTFv9+MS9qISLHMvoAuuDlv7GTL1V6QSwcHhdK+I5KW+X1gXLB7DLSZf+PoJpJaDNF6axPEmYxDX3SKTMDQ0192ATgH7DWmeA+sZ25QFWBSQXRBfoG8i+2R1wG4E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705988462; c=relaxed/simple; bh=45JX5R3MtKe14ZwW9pBMEaHbWJ2PGWM2phoKEB3As6Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=irYRVAb8xpU2MUr6V6wcGtdP/XKgWpA/AVws5UcE39F9KsgFqOnw87VPJ9wuHNARk1brqcXNUsS6ru+bZxPr2DCkQJ2gNuItj+/GYxB/fkdFl2UjRzFO4vzTHvHjHgC7IdtICkCKTUoGDqbJmyBqdn7yawvfK4j9bbvBctq4fc8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=iOHK/kbF; arc=none smtp.client-ip=198.175.65.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1705988462; x=1737524462; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=45JX5R3MtKe14ZwW9pBMEaHbWJ2PGWM2phoKEB3As6Y=; b=iOHK/kbF1RCIy31w4f2T8ABgitPlIUoG8S/2RI3TqQ4xRBpi3irxI57G MNCQZI+S/BYsDoVMGLE2QG2S5cn/B8BmnPCgjD7kIMuBnHxXznL66TgLT +dE3Rtl3ddXd/2Lkmj/gjFHvp3YqCNpvJbQQvqAHD4DQhrmCkoEcn2+iE 2jK38+KKwLWSpZgIO/J4SnZ+Sqwgek61ZomUSOJKcCMzkits634MUWWXU Ueu9Rz2D4wzbN3qW+UUwXuf60g13gTZMyvEwdyniCAh2lnFdb+KYI2YYc 9UIl82PBlrYYlqYtkqBmNn+BJbbq6Q3L0M+r29/zf8sUvZIK7aBLX7di8 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10961"; a="14770148" X-IronPort-AV: E=Sophos;i="6.05,213,1701158400"; d="scan'208";a="14770148" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jan 2024 21:40:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.05,213,1701158400"; d="scan'208";a="1471996" Received: from junxiaochang.bj.intel.com ([10.238.157.86]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jan 2024 21:40:44 -0800 From: Junxiao Chang To: bigeasy@linutronix.de, tglx@linutronix.de, rostedt@goodmis.org, linux-kernel@vger.kernel.org Cc: john.ogness@linutronix.de, hao3.li@intel.com, lili.li@intel.com, jianfeng.gao@intel.com, linux-rt-users@vger.kernel.org Subject: [PATCH 1/2] printk: nbcon: move locked_port flag to struct uart_port Date: Tue, 23 Jan 2024 13:40:32 +0800 Message-Id: <20240123054033.183114-2-junxiao.chang@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240123054033.183114-1-junxiao.chang@intel.com> References: <20240123054033.183114-1-junxiao.chang@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Console pointer in uart_port might be shared among multiple uart ports. Flag port locked by nbcon should be saved in uart_port structure instead of in console structure. Fixes: 6424f396c49e ("printk: nbcon: Implement processing in port->lock wrapper") Suggested-by: John Ogness Signed-off-by: Junxiao Chang --- include/linux/console.h | 2 -- include/linux/serial_core.h | 1 + kernel/printk/nbcon.c | 8 ++++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/include/linux/console.h b/include/linux/console.h index f8a0628678886..1eb9580e9b18a 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -304,7 +304,6 @@ struct nbcon_write_context { * @nbcon_state: State for nbcon consoles * @nbcon_seq: Sequence number of the next record for nbcon to print * @pbufs: Pointer to nbcon private buffer - * @locked_port: True, if the port lock is locked by nbcon * @kthread: Printer kthread for this console * @rcuwait: RCU-safe wait object for @kthread waking * @irq_work: Defer @kthread waking to IRQ work context @@ -338,7 +337,6 @@ struct console { atomic_t __private nbcon_state; atomic_long_t __private nbcon_seq; struct printk_buffers *pbufs; - bool locked_port; struct task_struct *kthread; struct rcuwait rcuwait; struct irq_work irq_work; diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 245c11753effd..b2221a50fcb29 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -488,6 +488,7 @@ struct uart_port { struct uart_icount icount; /* statistics */ struct console *cons; /* struct console, if any */ + bool nbcon_locked_port; /* True, if the port is locked by nbcon */ /* flags must be updated while holding port mutex */ upf_t flags; diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c index 1b1b585b1675b..b53d93585ee71 100644 --- a/kernel/printk/nbcon.c +++ b/kernel/printk/nbcon.c @@ -1586,7 +1586,7 @@ void nbcon_acquire(struct uart_port *up) if (!uart_is_nbcon(up)) return; - WARN_ON_ONCE(con->locked_port); + WARN_ON_ONCE(up->nbcon_locked_port); do { do { @@ -1597,7 +1597,7 @@ void nbcon_acquire(struct uart_port *up) } while (!nbcon_context_enter_unsafe(&ctxt)); - con->locked_port = true; + up->nbcon_locked_port = true; } EXPORT_SYMBOL_GPL(nbcon_acquire); @@ -1623,13 +1623,13 @@ void nbcon_release(struct uart_port *up) .prio = NBCON_PRIO_NORMAL, }; - if (!con->locked_port) + if (!up->nbcon_locked_port) return; if (nbcon_context_exit_unsafe(&ctxt)) nbcon_context_release(&ctxt); - con->locked_port = false; + up->nbcon_locked_port = false; } EXPORT_SYMBOL_GPL(nbcon_release); -- 2.34.1