From nobody Wed Oct 1 23:27:58 2025 Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) (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 54FD130C626 for ; Fri, 26 Sep 2025 18:08:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758910127; cv=none; b=LvFz1wZPO1VcyV4k6Brull9B7q25tM4ci0DWfabN0JMuKVAj/wnfpZ8Dd9mzo4bLLUGA/Z+smvNgSDrKntKeAuR9ZLAzNxpJJiftq8UbLB7HoKRvgFXqtWpTqtGDeoAdArmjq6Omi1kHCIL6Cb4cERfU+I1dMHwADJ9rtLikAHU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758910127; c=relaxed/simple; bh=yQ6uxULy2wt26h1V0g5CV/+7PMYoWAfUMXHtEfBFNok=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PheI1nFqjw7sxpmQXkgsETGYFNbY4+xHkkcoPmuyqstkq23H9xp7qBEF6dSgRVosnnO5cSI1O+HoJUKAI48Th8f/VM7KeKYYPnKGm4UEHPHC6Juq2CCUJ5cQIqy2bLkAndQZOUTyx2lLMFifj3LTrN/+e8OMAH8T/GjaqT+NxXo= 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=EsJCKjw+; arc=none smtp.client-ip=209.85.208.46 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="EsJCKjw+" Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-63483420e3dso440042a12.2 for ; Fri, 26 Sep 2025 11:08:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1758910124; x=1759514924; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=A/O4vMHBPDM1vxmT0wJASM1D4z5xiXlF5sqaZaCau4w=; b=EsJCKjw+l4NSMSXcRP2TeLxQwm/BO4XOBP+KoE+YaaLFc/YVTUKv/T5xNLHzwRpcCs clFD7bbsKMcy/IjD5adc4ALYUvWXblUONcwMHIBvYnqaVFsY10CGKOBlpx7G1Y+NsZCO CXGjdW9qTiKIscsQHP/3w/8Gfq9V7ZmQil0SoJjd0h0jzYfsB3b88TqMJv886gPFchwq KCIc3m5fFlnxTjpUIFXDjYlojcGUJBDdjkFwXPKzITrcYrZ8oU1htz+udh+ZUXqrKFEY Kgmm0TOz6cU0FM8oF3t/pT+rBgKccaGbgBqdRntLGZULun+5G7SIuS+HdKecyvTC0h5c k9SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758910124; x=1759514924; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=A/O4vMHBPDM1vxmT0wJASM1D4z5xiXlF5sqaZaCau4w=; b=jqvv/CLTAHC/H9+Ojfq60sMHuHMUF/WP8mfHtroOCwzMQwRydR8v9Vm3VElfqqviqC n876ccc9VBuupmLyBGPy2IclRK8e78pkMBqSvHVJxK1nYComvgVSIXz0wbYx4Tp4GouF KZuu5oP0fSvl/DlOjQHQm/2yv1DF38/jy5UusTl0PdXpzOVwt/6ih0TH5kZFizT81EvX HBuxMqdMr1q6KlIf9ZfA1BidjG2AjB/qKRFzcWy6Ri0cdzBUxEJcTozUH/hvjKCRRNMo TgBVRMwyhZKQbe5L8GbvtJJORNHlznBslbkjDlezQ3IHJHNbHPkAZEzS3XAgxpXIpk8/ rvTQ== X-Forwarded-Encrypted: i=1; AJvYcCU6bHwhzJrIKxMtElSxAPn8ne07lnCg2F7PpaYNj0ccrvByp+J+6A8TMni6IA3hAs0RcWuYQ0DcZ/1ItyQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yypcl/kMTDr9ubxPsop/7cxFzK4VSRSvUIE6KeuJP2owTTPwZqr E4jT46xXAnPY8tMGfYcH/4KgfCsZlu+QjszdGgoHuPUzf+yiXNLfH9qIVsCZaQW1Xrc= X-Gm-Gg: ASbGncsmHmlGRyiwl1CNfsoNZwO0XWChMvBdqRAVJMwhc4cubms1Cu3Hv2Bom3KRN8H SjLNxFxvwPlEfTD48HUy+t+pw5OGAOdAMNv8PBtGnvPSer7wFgcOKSDYKQ8tqaTvoJ9EzGi0X1S 1cFByiHc6RiiAF8pMZO4gzCt1mycN3MUTtgEXGmVkG5OqfzW4DK67nuVHXcwvObuE1TwfylHky2 9HQckKzNG4uAULKpJn8y3aeQcaJDaLQFJpX69GKJkdpn771mv6eV8b5OYm4u/bUc5xNzo2gs1il 4q/JMpBOTQjzeChrB3215yL87jSgAgSJWAy4+T8RFR9lGl6VQhq8i/lVrjz2XwFHZyDWG7j9g3x DYe4FqqZ7rqT9/YUIrIqDSu6aLKF5VEaCR4EHDUfvf8qZH82BpsantWmz1NeWN5J5DCfGyHfTWL w3sValu28CjqPqtQ== X-Google-Smtp-Source: AGHT+IEC/4NK0xEhofl4eSkgsE6EXEHSggLI1ncWazk+S7Rs5yicBQGmHOfEzTV6hVKlmojmttzlFA== X-Received: by 2002:a17:907:2da7:b0:ad8:8c0c:bb3d with SMTP id a640c23a62f3a-b34ba93cac0mr504811166b.3.1758910123636; Fri, 26 Sep 2025 11:08:43 -0700 (PDT) Received: from localhost (dynamic-2a00-1028-83b8-1e7a-3010-3bd6-8521-caf1.ipv6.o2.cz. [2a00:1028:83b8:1e7a:3010:3bd6:8521:caf1]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-b353f772528sm404316866b.37.2025.09.26.11.08.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Sep 2025 11:08:43 -0700 (PDT) From: Petr Tesarik To: "H. Peter Anvin" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen Cc: Pawan Gupta , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), linux-kernel@vger.kernel.org (open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Petr Tesarik Subject: [PATCH v2 1/2] x86/tsx: Make tsx_ctrl_state static Date: Fri, 26 Sep 2025 20:01:01 +0200 Message-ID: <8b7d5f2baf55334a06da558afc7e12f3a78ae7ef.1758906115.git.ptesarik@suse.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Move all definitions related to tsx_ctrl_state to tsx.c. They are never referenced outside this file. No functional change. Signed-off-by: Petr Tesarik --- arch/x86/kernel/cpu/cpu.h | 9 --------- arch/x86/kernel/cpu/tsx.c | 10 +++++++++- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/arch/x86/kernel/cpu/cpu.h b/arch/x86/kernel/cpu/cpu.h index bc38b2d56f26a..5c7a3a71191a1 100644 --- a/arch/x86/kernel/cpu/cpu.h +++ b/arch/x86/kernel/cpu/cpu.h @@ -42,15 +42,6 @@ extern const struct cpu_dev *const __x86_cpu_dev_start[], *const __x86_cpu_dev_end[]; =20 #ifdef CONFIG_CPU_SUP_INTEL -enum tsx_ctrl_states { - TSX_CTRL_ENABLE, - TSX_CTRL_DISABLE, - TSX_CTRL_RTM_ALWAYS_ABORT, - TSX_CTRL_NOT_SUPPORTED, -}; - -extern __ro_after_init enum tsx_ctrl_states tsx_ctrl_state; - extern void __init tsx_init(void); void tsx_ap_init(void); void intel_unlock_cpuid_leafs(struct cpuinfo_x86 *c); diff --git a/arch/x86/kernel/cpu/tsx.c b/arch/x86/kernel/cpu/tsx.c index 49782724a9430..167dfd38b87a2 100644 --- a/arch/x86/kernel/cpu/tsx.c +++ b/arch/x86/kernel/cpu/tsx.c @@ -19,7 +19,15 @@ #undef pr_fmt #define pr_fmt(fmt) "tsx: " fmt =20 -enum tsx_ctrl_states tsx_ctrl_state __ro_after_init =3D TSX_CTRL_NOT_SUPPO= RTED; +enum tsx_ctrl_states { + TSX_CTRL_ENABLE, + TSX_CTRL_DISABLE, + TSX_CTRL_RTM_ALWAYS_ABORT, + TSX_CTRL_NOT_SUPPORTED, +}; + +static enum tsx_ctrl_states tsx_ctrl_state __ro_after_init =3D + TSX_CTRL_NOT_SUPPORTED; =20 static void tsx_disable(void) { --=20 2.50.1 From nobody Wed Oct 1 23:27:58 2025 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (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 AE6B12FFDD3 for ; Fri, 26 Sep 2025 18:08:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758910128; cv=none; b=ffpE8ncpYsPvEvTvUMeSzyTPeoGTZ3n7rwMtIU/dM4dkWUdDI+RBqYrffLeYB/MaTxB4xh1/lJ2mk9UZlhnWCg95hP86rlZCfhqde+HdlYb3MZ2IN6oWEPrK9TEIUw094Rb26guiXh3oOZC3gP6lqvoSfUCofOsUqDe3peFogoM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758910128; c=relaxed/simple; bh=bNery69c0iKX/wsItQ9Jw9E2x5N8wDAy1y6rrlTnxAc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CWjhxkbJ4U7K4xT+iJIVhSxgilqT7BxuL36XRiMsWRd4Z4WwiRm8/AWMB2tvJ23LndsiE4kqgwHSU7usel16atc601X9hfahZyd9Y04Zdqz8iY8gkNFh5Z6zmF0jeKiW/AJK1ng2K9cksv+qj5Cw+QkFDw5Qsg84bUoyjvZNz6Q= 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=dy2WENu3; arc=none smtp.client-ip=209.85.208.51 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="dy2WENu3" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-634beb1a884so156365a12.3 for ; Fri, 26 Sep 2025 11:08:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1758910125; x=1759514925; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=m8ZUoVYGkxtsuJxVT/vNYCs4iW+iTZPQ/ORTQlDYkQ4=; b=dy2WENu3xR3y9szfMnkEBr3ylc7zvqYYookj/8SiCD+KFIxW8dfK4Oh+b7VB3z5aud 9JEQR2VdiSGNHLIKfJdZlevYyiReEkUNmE5pPkKQp9VdtUJb74pnG40i+iEZIfhDPTCf ttkzOyFCsxiPMPB2mv4fG+YkIpK5f2l6MoKNETRUVH/iOgmMjdeCPWhAqoPgmfmRiKDz 739MPdGf2dzN7Q7O5KLP/9nxPd592n5iouEdMIAx3J9XNEa3M83AdcHAIznytlEGB9Wo bSV/M07XUrVi7DqE3S9L3MglgBfk0jz1SBxhkmdwprc9/ayokb2YLxdjV+WivYb4XcUE 7lug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758910125; x=1759514925; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=m8ZUoVYGkxtsuJxVT/vNYCs4iW+iTZPQ/ORTQlDYkQ4=; b=gA6aRd5gYvEZ7RXmzBxYk5281eWMxTRAnd5KUGBlfX+e14ekcwtVlisajR865NQASa x9fY+PeEMxswXbV0PJhHVPpJRS/zhvX8rknUGC3o/JWzLJ/Ve3cKW92BaEG2uUHomed8 hucE/B5PozM0n2vxgZyg7sURbtlluKtHgawS8gu1JqkCtPVzqXy8r0KA5ftpTDJScNH3 ETl86QaT7bUlV4SwhWT3rMROXIcCOjyI1BVodsSE6JFcjZ3k4oU54sBr5tVzNDwCBTWe zbyvxonQQQ6cwAhRsLzgOMQLgDIA/X/n+69YusTxBAmgpY6NBMjIkTOkvrSL24vI/rqm JKVQ== X-Forwarded-Encrypted: i=1; AJvYcCVYe25WSd03sT+1a16uuOizRd7Ll3tdmVe2eSayuJqjHAQCKV3N2/kvsRMJAqWWfFkaK9DT6wvQnIK0acs=@vger.kernel.org X-Gm-Message-State: AOJu0Ywc0pfdlr3qwPIiz+NNY+FrSVxtpXQmo+YFp44I0hxHqMdlDRS0 obqZqQ8qRtuJmnrQ6hiU+XBEfBulMJ+f/KZeStAw3qakmRqBmp4C+3EfQ31XlLCd8SE= X-Gm-Gg: ASbGncsguCVAGlPfyyMDgAtGHSMpjPrBIAHofu1kbhQwR0I6hdmeZwKp0JEHV8ixLC1 NsVbEkkcP7JmNkdHvV/xqJLK+Py2YtG9plIpIPEvsvM6d1s6TZToP3kkd4eP8o8P962wAFF7okg THfTg9wDNZC9UECm36sQX1zen18gKNs4eOraegF8pTrCd+mQVD5BpdzWBr6fJfgjbB6SweE7dBD 4slN4bIxGJZ0mg1ufVSeMrmip9mrrwO6LS3iM9F52xz511F3rkvHxp0nuhVVW+iSpgJFzZoqm5o 631bBPcG71sk0Mpov+r0hkSaf5LT5tX9ZlZJrswDsNcjRQLWSuiKYfNberJY/0GL5Vm6EeGEDhC eL7duirJdVwa6u2ZJ5b6aMMPpLvp3H4mJ9tWL8MfCzfeoU5jfnkdidBj5i3iHqzGHGhLGimeJeO 5sRlyvUFKHIY8HgA== X-Google-Smtp-Source: AGHT+IE4jVGwCYI6ZVnYVxSIptfTujoHFppW4MAqE9DyEWtLc68C61ZW53cQq0aa1WzCP8CmllHxcw== X-Received: by 2002:a17:907:9719:b0:b04:7d57:d3f4 with SMTP id a640c23a62f3a-b34beab0aecmr421189766b.7.1758910124864; Fri, 26 Sep 2025 11:08:44 -0700 (PDT) Received: from localhost (dynamic-2a00-1028-83b8-1e7a-3010-3bd6-8521-caf1.ipv6.o2.cz. [2a00:1028:83b8:1e7a:3010:3bd6:8521:caf1]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-b3544fcde4asm410415466b.76.2025.09.26.11.08.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Sep 2025 11:08:44 -0700 (PDT) From: Petr Tesarik To: "H. Peter Anvin" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen Cc: Pawan Gupta , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), linux-kernel@vger.kernel.org (open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Petr Tesarik Subject: [PATCH v2 2/2] x86/tsx: Get the tsx= command line parameter with early_param() Date: Fri, 26 Sep 2025 20:01:02 +0200 Message-ID: <63118e583443490a285fd194baeae874d65eff87.1758906115.git.ptesarik@suse.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use early_param() to get the value of the tsx=3D command line parameter. Although cmdline_find_option() works fine, the option is later reported as unknown and passed to user space. The latter is not a real issue, but the former is confusing and makes people wonder if the tsx=3D parameter had any effect and double-check for typos unnecessarily. The behavior changes slightly if "tsx" is given without any argument (which is invalid syntax). Prior to this patch, the kernel logged an error message and disabled TSX. With this patch, the parameter is ignored. The new behavior is consistent with other parameters, e.g. "tsx_async_abort". Signed-off-by: Petr Tesarik --- arch/x86/kernel/cpu/tsx.c | 41 ++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/arch/x86/kernel/cpu/tsx.c b/arch/x86/kernel/cpu/tsx.c index 167dfd38b87a2..bb407331f64b5 100644 --- a/arch/x86/kernel/cpu/tsx.c +++ b/arch/x86/kernel/cpu/tsx.c @@ -20,14 +20,14 @@ #define pr_fmt(fmt) "tsx: " fmt =20 enum tsx_ctrl_states { + TSC_CTRL_UNSPECIFIED, TSX_CTRL_ENABLE, TSX_CTRL_DISABLE, TSX_CTRL_RTM_ALWAYS_ABORT, TSX_CTRL_NOT_SUPPORTED, }; =20 -static enum tsx_ctrl_states tsx_ctrl_state __ro_after_init =3D - TSX_CTRL_NOT_SUPPORTED; +static enum tsx_ctrl_states tsx_ctrl_state __ro_after_init; =20 static void tsx_disable(void) { @@ -164,11 +164,28 @@ static void tsx_dev_mode_disable(void) } } =20 -void __init tsx_init(void) +static int __init tsx_parse_cmdline(char *str) { - char arg[5] =3D {}; - int ret; + if (!str) + return -EINVAL; + + if (!strcmp(str, "on")) { + tsx_ctrl_state =3D TSX_CTRL_ENABLE; + } else if (!strcmp(str, "off")) { + tsx_ctrl_state =3D TSX_CTRL_DISABLE; + } else if (!strcmp(str, "auto")) { + tsx_ctrl_state =3D x86_get_tsx_auto_mode(); + } else { + tsx_ctrl_state =3D TSX_CTRL_DISABLE; + pr_err("invalid option, defaulting to off\n"); + } =20 + return 0; +} +early_param("tsx", tsx_parse_cmdline); + +void __init tsx_init(void) +{ tsx_dev_mode_disable(); =20 /* @@ -202,19 +219,7 @@ void __init tsx_init(void) return; } =20 - ret =3D cmdline_find_option(boot_command_line, "tsx", arg, sizeof(arg)); - if (ret >=3D 0) { - if (!strcmp(arg, "on")) { - tsx_ctrl_state =3D TSX_CTRL_ENABLE; - } else if (!strcmp(arg, "off")) { - tsx_ctrl_state =3D TSX_CTRL_DISABLE; - } else if (!strcmp(arg, "auto")) { - tsx_ctrl_state =3D x86_get_tsx_auto_mode(); - } else { - tsx_ctrl_state =3D TSX_CTRL_DISABLE; - pr_err("invalid option, defaulting to off\n"); - } - } else { + if (tsx_ctrl_state =3D=3D TSC_CTRL_UNSPECIFIED) { /* tsx=3D not provided */ if (IS_ENABLED(CONFIG_X86_INTEL_TSX_MODE_AUTO)) tsx_ctrl_state =3D x86_get_tsx_auto_mode(); --=20 2.50.1