From nobody Wed Feb 11 10:42:29 2026 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.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 7B8781922C0 for ; Sun, 5 Jan 2025 17:27:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736098070; cv=none; b=X+yWWfWt/6BcOVrpy7689hmsvj9nUokEgHf+XKsMadbt8cNkcs9nAf/v6UI26HitySreYUGG2dooOM/QeeWQ3yqYsN7ZAhVIjNN2B71GjTX2eB0g6cKIe2o21M12/nPmgXB0mS0WaRGs9CmRUmS1I40MNJ9gxdCsSjEX31+pgPo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736098070; c=relaxed/simple; bh=ugPkk0xuE0DOxXifT7SkqrrxnsW/tCcCapkBSno8/CM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PqKOM0hDsdb7isRf7on+ymi9yXkVO3Q8hp2ql60cABChsCFW2IsrSkKDIO/6OuWr6xKb7F6gQEys7mXbSYtrLpMBzp/6Os2WTiOFQ+/wDteNXUK9Y2PK3mGiD1j3LapPCmmCHCzG96dydzfd8ao3kAXq+Ef7HdxPmpG9AY/ay3c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=Bw2spqqo; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="Bw2spqqo" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-385de59c1a0so8243706f8f.2 for ; Sun, 05 Jan 2025 09:27:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1736098067; x=1736702867; 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=J0GjmDNgFtYMS4CNHIpakXuXjn5IlFWM6hL+vU1HdSU=; b=Bw2spqqoGXqFuHJUBNajM72VMjvpEcNjuvunaRBIGcvVk6v1Fbyi0SVQvEKkhENP/+ mm/Q3XpcKXApvPFDjKsUC6TrChxTxB07DM6sfdKIu3x1f7A7MvC+o6Dlm1IBPa5cXt+L Oome1KAUvw4WqnA/N1I84mT4ylmImiUCrLHdQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736098067; x=1736702867; 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=J0GjmDNgFtYMS4CNHIpakXuXjn5IlFWM6hL+vU1HdSU=; b=qwyyZ+YJ0S8ZYwPizUKCVOW4P8xkKALTE+m8WIpHAsK8MH6wRLevnNZssrPDujxUcv U88s2ywexdSx6oax+1iaLfUHyaW7j337i99C7rTJ8gRd6lESOGB9naGiYqD5aqn7PL+b EHshiDTRcOYVm/I2vircljeu7pen3PiZ+7aN36SF8AUomTCCeCTzxPrNy7Ip6zfn0iJd F2iKU36O0kpk/b15rGZn/JdNzk5/R6+bGhblyN54SOSDx6FKsm4jlySXqe23wsaxLJKd 4RKCIZ6zvD6MaVf0KnNCwde3lhBhO+PEal0noBV/ECWACVguYZTF/ZnePGvlGjBOo81K 6W8A== X-Forwarded-Encrypted: i=1; AJvYcCUU1WkVKYNsUDM3gYnsR5FeWLe70PEw+Uyhimld2trmMlDGv9McGbnfoMDF36JNZocBnsSECIBq3GB/Fck=@vger.kernel.org X-Gm-Message-State: AOJu0YwqT+CDqYO8GHA7xlIVSK6985jEHGHPe12rmbhTMKgIgrzRxeqd 6UfIWKQ91uUR1VJYn2BI284XTMfeSW3XFPPqJ3OzozaAMkfz3pKEPTflM6n98Q== X-Gm-Gg: ASbGncsqAbIvP79g5IzWGpu3/tYH4rmK99E0que0cXgizxkNbTU0c2/qKneZGE6bxgG d2Ae0cagOZPKznAi+JKn47LhVK5p3Q8YoMiLcAjryUQxCOujudJ6Vdd+LofzxjrC0UKFJnU1yWi H/AHx8MW3ckSFAeslfF7AM/QOteYcRtev0ByBcd10neXv9dApcxeo41au38gZfrI78Q2d4E/rYk ExMBEXbaqfh0PBKMGhf1uVGrBOTkUIKILDqe/RlJsrzijYmrtZHJKgQYHMRteOeuuLxUBp6ujnB +OK/912gSA+n4k73xrn5iXAI4c5BOsjw2Kuf X-Google-Smtp-Source: AGHT+IErDaqq4n8+yQtju94LarucyCOjKMDTL98018Mz40UKjANI6+lIM1YMTHyRQHqF/lsvezZZSg== X-Received: by 2002:a05:6000:1fae:b0:386:7fe:af8e with SMTP id ffacd0b85a97d-38a221e2086mr43718342f8f.12.1736098066822; Sun, 05 Jan 2025 09:27:46 -0800 (PST) Received: from dmaluka.c.googlers.com.com (19.50.76.34.bc.googleusercontent.com. [34.76.50.19]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43656b3b207sm575631395e9.32.2025.01.05.09.27.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Jan 2025 09:27:46 -0800 (PST) From: Dmytro Maluka To: Thomas Gleixner , Rob Herring Cc: Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), "H. Peter Anvin" , Saravana Kannan , Saurabh Sengar , Usama Arif , Stephen Boyd , Frank Rowand , linux-kernel@vger.kernel.org (open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)), devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE), =?UTF-8?q?Pierre-Cl=C3=A9ment=20Tosi?= , Shikha Panwar , Will Deacon , Keir Fraser , Michal Mazurek , =?UTF-8?q?Bart=C5=82omiej=20Grzesik?= , Tomasz Nowicki , Grzegorz Jaszczyk , Dmytro Maluka Subject: [PATCH v2 1/2] x86/of: Don't use DTB for SMP setup if ACPI is enabled Date: Sun, 5 Jan 2025 17:27:40 +0000 Message-ID: <20250105172741.3476758-2-dmaluka@chromium.org> X-Mailer: git-send-email 2.47.1.613.gc27f4b7a9f-goog In-Reply-To: <20250105172741.3476758-1-dmaluka@chromium.org> References: <20250105172741.3476758-1-dmaluka@chromium.org> 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" There are cases when it is useful to use both ACPI and DTB provided by the bootloader, however in such cases we should make sure to prevent conflicts between the two. Namely, don't try to use DTB for SMP setup if ACPI is enabled. Precisely, this prevents at least: - incorrectly calling register_lapic_address(APIC_DEFAULT_PHYS_BASE) after the LAPIC was already successfully enumerated via ACPI, causing noisy kernel warnings and probably potential real issues as well - failed IOAPIC setup in the case when IOAPIC is enumerated via mptable instead of ACPI (e.g. with acpi=3Dnoirq), due to mpparse_parse_smp_config() overridden by x86_dtb_parse_smp_config() Signed-off-by: Dmytro Maluka --- arch/x86/kernel/devicetree.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/devicetree.c b/arch/x86/kernel/devicetree.c index 59d23cdf4ed0..dd8748c45529 100644 --- a/arch/x86/kernel/devicetree.c +++ b/arch/x86/kernel/devicetree.c @@ -2,6 +2,7 @@ /* * Architecture specific OF callbacks. */ +#include #include #include #include @@ -313,6 +314,6 @@ void __init x86_flattree_get_config(void) if (initial_dtb) early_memunmap(dt, map_len); #endif - if (of_have_populated_dt()) + if (acpi_disabled && of_have_populated_dt()) x86_init.mpparse.parse_smp_cfg =3D x86_dtb_parse_smp_config; } --=20 2.47.1.613.gc27f4b7a9f-goog From nobody Wed Feb 11 10:42:29 2026 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 0F3561B21AB for ; Sun, 5 Jan 2025 17:27:49 +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=1736098073; cv=none; b=PjaduKVOI1AQQOYtxhtjsYg/R6Xie71/ZFCtPbEsr4TXdHNlLF0AJhGogITaGOB9tPlIQ7Qi10hk4m7j5MHYJlGLLmZGpM/XzzMrdtLt/BB624bq/+CvASohaE+xGIqSKRWB3l8qT79W0OuCp4cG+IOSKLm4yXgS5xY4q5Q8wco= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736098073; c=relaxed/simple; bh=cQimmwB3iNQGTyLREuAKfsmql7piInL4jdzSszYRtYs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IpIAoLEtfgqENc45TDyt8zl2tdC+686ZysJ9bXUBT1Dq10qIkrfNdLkO9oaJGrZIOtLE5pb156lPST2EU5+wuZXP3E95MmbNh4TJGV6U8otSsBD0Boy+m+kLNehT9rZdwtwAmzqe4YO+5tCX5NN5DXiSCPeLa445rdskrb5ZiVE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=iF4L2IZL; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="iF4L2IZL" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-43623f0c574so93423835e9.2 for ; Sun, 05 Jan 2025 09:27:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1736098068; x=1736702868; 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=waaXYIjfvBCsra9ANlbbeFiP++cQQ67tbxpqxfXM0M8=; b=iF4L2IZL+JRZB8U1yr9MXqvfwQipXAzG9Jsz5LmaHz2JmrfKZj/c/d1QfyiTXqDwy8 I09V6Ys9FT6uUaA7MuV4Y40mhNgdBf97aVivPXvLTWssSNBIr7wJdcvnfGik7s9BN1KO x+gwVoZ92IKHvSpOLtZNWSbqMG78C/CdyxfHU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736098068; x=1736702868; 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=waaXYIjfvBCsra9ANlbbeFiP++cQQ67tbxpqxfXM0M8=; b=PW3qK57eRbfoggkPEaPJW6pKWC20FVwLK1//NUkPsY74nip79gDdfaKWZmAgcsLrwM ddE6LORoMCA7btVMP1qCA2UpssY3xrZypcqWR5Tx+Fge03gpYeIlq9D3Ajg7DH6qSbAQ td3ybDPWnUerYwBTVmh6xRP3bBxbAH8+sU+MSIC1rzH6t1EdDJmG3xlsD6J8XHNveKww X7V3R5jsH7l2K4lY+1BV6FEoFj7A/HSkc7A++ThtEzxoyAtHfukdyVIaovHSgOJ9niUl c4/n+kxXreFU3dTQgoKmOuMuiRiQEjlxpjdtKrx7RY+77RwKDUaZP+/QtQ362kufUgTb FFGQ== X-Forwarded-Encrypted: i=1; AJvYcCVaHYDq2Mkg98uwyqdELsk53Bl9qOAoNwlTcvd4hgpZmeR6N3h95u3YyJbgHXVeId559mTF7YrXqIl3TBc=@vger.kernel.org X-Gm-Message-State: AOJu0YxZgzSkbtaKAI4XaDn0Eh6o3AWTnvUwKj7/6rhub5QkgeaNRXv5 aloSY1EScQ2d+4sqTJyClQeO6hZz+CuCh7VFJdUVzMzl/5ac157ZKA5nCPO77Q== X-Gm-Gg: ASbGnculDIz9DLCZgsWuQVfc5XQ2VjlMCiRjzUa39CIoOpkVhd+1NOa17juPfL72BvB QtyhrWtn+cZpqVCiuXqN1r+SymsiIwJhm+C5ajdNRkLkO5BYMN0jLv+wgiQhnc+SiwkhoWhEJLJ vvZgxPbyXwzcAj5pCbRodby70r1UH5Z+jM/rVPG6iWfNBq7lVYR18pgZz3lefuPp2CIOQIb8Rzp lTxa9kANmmg/z2+dbKXpAbtX2I6XGwIAhA4tb1sH9XIlrFu+3ab59RYbTghXtgsiFi5cqPGBbOW 7gs3atbl/XiiCqi18xVf2ZMeU3YCe19NdD6e X-Google-Smtp-Source: AGHT+IHiNwbJ187d46qxrfop63B+HCgvRb2Ef3wESL8M0dbIrsfxBBochkFYVdYSsn+GD5KaM3Wlnw== X-Received: by 2002:a05:600c:3b23:b0:431:60ec:7a96 with SMTP id 5b1f17b1804b1-43668b49950mr413350735e9.25.1736098068404; Sun, 05 Jan 2025 09:27:48 -0800 (PST) Received: from dmaluka.c.googlers.com.com (19.50.76.34.bc.googleusercontent.com. [34.76.50.19]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43656b3b207sm575631395e9.32.2025.01.05.09.27.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Jan 2025 09:27:47 -0800 (PST) From: Dmytro Maluka To: Thomas Gleixner , Rob Herring Cc: Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), "H. Peter Anvin" , Saravana Kannan , Saurabh Sengar , Usama Arif , Stephen Boyd , Frank Rowand , linux-kernel@vger.kernel.org (open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)), devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE), =?UTF-8?q?Pierre-Cl=C3=A9ment=20Tosi?= , Shikha Panwar , Will Deacon , Keir Fraser , Michal Mazurek , =?UTF-8?q?Bart=C5=82omiej=20Grzesik?= , Tomasz Nowicki , Grzegorz Jaszczyk , Dmytro Maluka Subject: [PATCH v2 2/2] of/fdt: Restore possibility to use both ACPI and FDT from bootloader Date: Sun, 5 Jan 2025 17:27:41 +0000 Message-ID: <20250105172741.3476758-3-dmaluka@chromium.org> X-Mailer: git-send-email 2.47.1.613.gc27f4b7a9f-goog In-Reply-To: <20250105172741.3476758-1-dmaluka@chromium.org> References: <20250105172741.3476758-1-dmaluka@chromium.org> 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" There are cases when the bootloader provides information to the kernel in both ACPI and DTB, not interchangeably. One such use case is virtual machines in Android. When running on x86, the Android Virtualization Framework (AVF) boots VMs with ACPI like it is usually done on x86 (i.e. the virtual LAPIC, IOAPIC, HPET, PCI MMCONFIG etc are described in ACPI) but also passes various AVF-specific boot parameters in DTB. This allows reusing the same implementations of various AVF components on both arm64 and x86. Commit 7b937cc243e5 ("of: Create of_root if no dtb provided by firmware") removed the possibility to do that, since among other things it introduced forcing emptying the bootloader-provided DTB if ACPI is enabled (probably assuming that if ACPI is available, a DTB can only be useful for applying overlays to it afterwards, for testing purposes). So restore this possibility. Instead of completely preventing using ACPI and DT together, rely on arch-specific setup code to prevent using both to set up the same things (see various acpi_disabled checks under arch/). Fixes: 7b937cc243e5 ("of: Create of_root if no dtb provided by firmware") Signed-off-by: Dmytro Maluka --- drivers/of/fdt.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 0121100372b4..3b29a5c50e2e 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -8,7 +8,6 @@ =20 #define pr_fmt(fmt) "OF: fdt: " fmt =20 -#include #include #include #include @@ -1215,14 +1214,7 @@ void __init unflatten_device_tree(void) /* Save the statically-placed regions in the reserved_mem array */ fdt_scan_reserved_mem_reg_nodes(); =20 - /* Don't use the bootloader provided DTB if ACPI is enabled */ - if (!acpi_disabled) - fdt =3D NULL; - - /* - * Populate an empty root node when ACPI is enabled or bootloader - * doesn't provide one. - */ + /* Populate an empty root node when bootloader doesn't provide one */ if (!fdt) { fdt =3D (void *) __dtb_empty_root_begin; /* fdt_totalsize() will be used for copy size */ --=20 2.47.1.613.gc27f4b7a9f-goog