From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 474523469F5 for ; Thu, 23 Apr 2026 13:00:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776949236; cv=none; b=lA5TQC3VuAOX9ySWSfFwe/Z46+yATtQgdarnTWBWM2WoeJ2bFqXP+Y6l3X1wvn4+mkHgz36lWI5MTeIGyJKT5lPXibSOn0hBfaioQfLpAnVml4hHgUnlg/ZL+MllfXZIWMo+eyA3WhZ+gcS3nQjsbSwe37YIM/Sq+PhBCiSNGs0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776949236; c=relaxed/simple; bh=SgHKeCs8xze07lgjpkuPVSOQvG7raIYOk8VG9bUtSvo=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=EhEXU1sfNjiy5ct9VuO+4JekXOUH+F08vDT2nIxI6DmCrYwGJ9y/wmY7o4BauOvRQkukFzd76x+TBbqARuZXcRmmoDCu1ZNbSF0vhe0PLqfWFLlGAHqOCrOQuWmA0jF2aU0gRLgd7vLDQ7FO3p+gHN0sGXPFhWblLsGOFWEx600= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=KtI53BZn; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="KtI53BZn" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-488d2079582so77647645e9.2 for ; Thu, 23 Apr 2026 06:00:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776949234; x=1777554034; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=/FoqyGAPReLzZNhLCdBce+28A7BimFiEgHKIFIXqa7c=; b=KtI53BZnGBw11Zo28TWdCQLYEUogaxuoXMGgfKicFBooNpLbwwaB66pXB/SliBvZIQ bV/LCWCMlBqq/vdRLmBZd0oY700+Uw/pREdtJROp6r3agUG4XZ5plemVaZIfgLKu4g5w spsmpNBogzZIyjZ5Vh000L6zib9mFwXXBN4bO4FM0UW1a6tW1FALY27XmX/WRS61ImDS C8BAyTz/S4CoopUWtbWC4fbneZnivbVRxovOwQUCIJYjBbCHMFk3hqWRoeHWBGtQs5m3 EbiYMcd6LOiigJdePhZYFDRZsEP8UB+AEnxTNrKZVcpfaSc9z40TPhRuCXTd0ZOZ2Gun 7keA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776949234; x=1777554034; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/FoqyGAPReLzZNhLCdBce+28A7BimFiEgHKIFIXqa7c=; b=T6fqQXpZ285WDvoxe7TVpTJOhErDQM+BWtUlnitdr1/LZJcslf1/DEUJqPClcsk7+u meJOJ9EOUbIPr5TxGd93tfL/zgXxEf/Irdo2Cxh7935yaYvyC3o8N2JFtSuxCQVyJaoW w4HdtXz2Hnn+AERyCldHKpULrVMtHy5Bmmb8o6W0Io0mxSJ9HMne8r61g3oqHBu/1K7N BreXaw+FGP6rydLMSspR41M90mP/nth5ylZvTLuck/orhaUtCUSChJVmAhxU5gII6Wrq RJlYfCRqKq94Oj5ls/JDjNj0j78KKaQA9EmS+Ts9DPhB37MmbzPUNMWyMjdzAOKEJIGo fTbg== X-Forwarded-Encrypted: i=1; AFNElJ/u541Amn/+UUuswAurTn3uHxmaNGVCIsyWgulwgckfaVGhn04FPdmRuMJVdSS1FL4bVTHcSTdDO5eaiv8=@vger.kernel.org X-Gm-Message-State: AOJu0Yyad9AvqvC8jjjdNnHvkG1+SQ9r8EtIdbSWkLY5b85eDt0pbhv/ RdE4iEsTMI+zTTXiD1Q5UDdjD5sxohJFib0vDFpip0yLlkjZxxrk92HAl+nUo96jxlU= X-Gm-Gg: AeBDies54ll5ROk6m5UXUoZ23dDeDGAaLi+5QrKDwzZiTVM2E9GpCs6Q+kurZiV2A+N qIh6sOkDNER+FNq9rtP90vWyAR5e0kyL3mNRym+ERtYlrDdJ3LySxsBB8/m+SDc7KD87O0d0LzD 5NLwj0VVTkaGY/iLASNhZDIp6tNF0VgGV0rnHWj/0ptO251tknls2nM0do3TGvwKEbL+Kp0Barf TxZyVXfpH+bFKJ79K4l939XFOAIZbzkJfthsDG7KdSX7muePVDHmqCSzbIlgBmBCLLWrHqI71BO Hvgy2EYxwbaXO0w6OSIWaSoHpryJkPWQVapfzSCEcukzxfI/e4Ss//PeEZCw2SzFtv9dlTsfuTk hgXRD8FEcM2/aCcr3+7A/73zjivQBcafDe4fVSJnU1n2du58EZr3f7aT6Se2pzcCkwBBffzbACb y4VVuKBOHAEpNmLLMq5Bm0RKodNhCs9u2BP41Go6miEBHlc2s= X-Received: by 2002:a05:600c:64c7:b0:488:a2ac:a334 with SMTP id 5b1f17b1804b1-488fb73aa3bmr402696725e9.3.1776949233469; Thu, 23 Apr 2026 06:00:33 -0700 (PDT) Received: from pathway.suse.cz ([176.114.240.130]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fc14a61asm482695255e9.15.2026.04.23.06.00.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 06:00:32 -0700 (PDT) From: Petr Mladek To: John Ogness Cc: Sergey Senozhatsky , Steven Rostedt , Marcos Paulo de Souza , Chris Down , linux-kernel@vger.kernel.org, Petr Mladek Subject: [PATCH v2 0/9] printk: Clean up preferred console handling Date: Thu, 23 Apr 2026 15:00:05 +0200 Message-ID: <20260423130015.85175-1-pmladek@suse.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hi, this patchset does some clean up of the code for handling preferred consoles in the console registration code. + 1st and 2nd patch try to improve some naming. + 3rd patch removes some code duplication. It better defines and describes the rules for adding and updating preferred consoles. It uses a more defensive coding style. + 4th, 5th, 6th, and 7th patch improve handling of Braille consoles. They are preferred via the command line but they do not get printk() messages and are not associated with /dev/console. The new code makes this more obvious. Also it explicitly defines the relation against default consoles and other non-Braille preferred consoles. + 8th patch removes a hidden side effect of try_enable_preferred_console() + 9th patch removes the last hidden side effect of try_enable_preferred_console() and allows to call it only when there are any non-Braille preferred consoles. This patchset is a prerequisite for Marcos' clean up of CON_ENABLE flag handling. It should prevent regressions caused by the hidden effects of try_enable_preferred_console(), for example, see https://lore.kernel.org/r/89409a0f48e6998ff6dd2245691b9954f0e1e435.camel@suse.com Also I am working on a feature which would allow to explicitly enable/prefer consoles proposed by SPCR, device tree, or platform-specific code using a generic "console=platform". This clean up is a prerequisite, see https://github.com/pmladek/linux/tree/console-platform-poc1-iter9 Changes against [v1]: + Fix stale comment (1st patch, Chris) + Add comment descibing update_preferred_console() behavior (3rd patch, John) + Better describe behavior changes caused by update_preferred_console() in the commit message (3rd patch, Chris) + Use unsigned int for iterating/indexing preferred_consoles[] table (3rd patch, John) + Add a check preventing an update via "devname" is already assigned to a real "name". (3rd patch, Petr) + Use only Braille entries when trying to enable Braille console (Chris) + Split all try_enable_*console() calls into new try_enable_console() and return early when try_enable_braille_console() succeeded. Note that we do not longer need to initialize "err" variable in this case. (new 5th patch, Chris, Petr) + Put back the explicit check of CON_BRL flag in register_console() so that it returns prelimitary only when the driver is used in Braille mode. (6th patch, Chris, Petr) + Add comments explaining that try_enable_braille_console() might succeeded also when newcon->match() succeeded. In this case, the Braille mode can't be used because the console device was already used as an early console.[*] (6th patch, Chris, Petr) + Reset preferred_dev_console_prev when used to revert the value. (7th patch, John) + Add Acked-by and Reviewed-by tags (1st, 2nd, 4th patch, Chris, Marcos) [*] This is a questional behavior. I would personally prefer when the early console is unregistered at this point and the console device is converted into Braille console. I consider the Braille mode more important. But it might be changed/fixed later in another patchset. [v1] https://lore.kernel.org/r/20260206165002.496724-1-pmladek@suse.com Petr Mladek (9): printk: Rename struct console_cmdline to preferred_console printk: Rename preferred_console to preferred_dev_console printk: Separate code for adding/updating preferred console metadata printk: Cleanup _braille_(un)register_console() wrappers printk: Separate code for enabling console printk: Try to register each console as Braille first printk: Do not set Braille console as preferred_console printk: Handle pre-enabled consoles in the top-level try_enable_console() printk: Try enable preferred consoles only when there are any .../accessibility/braille/braille_console.c | 7 +- kernel/printk/braille.c | 20 +- kernel/printk/braille.h | 23 +- .../{console_cmdline.h => console_register.h} | 6 +- kernel/printk/printk.c | 390 ++++++++++++------ 5 files changed, 301 insertions(+), 145 deletions(-) rename kernel/printk/{console_cmdline.h => console_register.h} (83%) -- 2.53.0