Received: by 2002:a05:7412:2a91:b0:fc:a2b0:25d7 with SMTP id u17csp181056rdh; Tue, 13 Feb 2024 13:22:07 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWnL2MBxMPjbogSIOr9NBN9EHU8WM4MBLytkGxEANSAxn/Iy6Cxu5MoFqKkzGLadSkhcsHrxBFu1wErT34JsE3tMrFrBpdlTk4na0lEYg== X-Google-Smtp-Source: AGHT+IFynv4+LyNHpbsmpL/nUPxXOTuOHA54I1pJuXDXUXdDNpwGL2XZ6PwKzh/G45H740rgCZd7 X-Received: by 2002:a17:90b:810:b0:297:18fc:5885 with SMTP id bk16-20020a17090b081000b0029718fc5885mr787381pjb.34.1707859326958; Tue, 13 Feb 2024 13:22:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707859326; cv=pass; d=google.com; s=arc-20160816; b=YTUTYiDNhgCWqBwmtUPXX6QogESwQQWhTMrhXGlG0WouWBlb6pqkkt1pY6sc50TmjB P3lENIP+Vrl1SGMgjXiyKl7d6rO14q5NXSqva3/W7NqiqMBah675osmSHD3DownkxF5r YD0PipuXZ7qEdIZl8sf9pPZqRbmdSBpci4Q41AI9llfw0uXVmk1RZPQiteQYu/m6r0Bh QJvBNfoKClpgLqxjogOzRdZQfBfJho9RW7bp5+9U2LkmWLBJH4kT/0ZJMJk5EZcGSf1+ bHT6HTjPYeXaFtK5lnUFRHQ46RSmjLnWUJZ8YM5IVd7rOWhi2LM6EfZXUc++5wUBCd9H oo+w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=date:mime-version:list-unsubscribe:list-subscribe:list-id :precedence:references:subject:cc:to:from:dkim-signature :dkim-signature:message-id; bh=5JJur1G2I1XboqcLYG+3cvwsrYIK9ClOurubWw6N59g=; fh=WcKbHvXoMtrLuGR82G73xZGNvpLBtQOntaH+W6+63ws=; b=nA1OSfhxmtwkQCazkELzAZ33hWkrXRqFT13Fi1PW306ScoxqFDuu1cz3q3JUQGn6VC Ztbkf9zO41lwe4rfAZmOWEmmq4qpKg8K9YCKdh0yuUw0IXgUL4ILst1tJhZiKf7QagT6 iEd9iFQil1P/piumCCXILZa3AQgi5rUXmPGXFf3jcGyDwSKz2WPpU9VmgY5MS2bz9CAZ LX8tUUcqMpIkMHMOALgfTpdIFkW0lrSWjBORqqB9s434gNcVi4ATrZTvPC82X9cLsi4s +EKEQrAzTWKWCLI7pxxqLMESllsUv1Iz2M55v8nxaP47gW6e280s/YfUbI/PpoLzol8L 8GtQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=3LmvAtsd; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; arc=pass (i=1 spf=pass spfdomain=linutronix.de dkim=pass dkdomain=linutronix.de dmarc=pass fromdomain=linutronix.de); spf=pass (google.com: domain of linux-kernel+bounces-64302-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64302-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de X-Forwarded-Encrypted: i=2; AJvYcCWfoBxrv1qYaX2jlI8QJ3Otp68BDjg+ARgKPCe2rZtlT+3VpYUsxwUHwdYnbUQ3BS2/jckp5NuwCGtGLvIIWTR+oSW2D0B/1Jx6O+dsLA== Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id u16-20020a170903125000b001d8dd5bb9a1si2645768plh.412.2024.02.13.13.22.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Feb 2024 13:22:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-64302-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=3LmvAtsd; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; arc=pass (i=1 spf=pass spfdomain=linutronix.de dkim=pass dkdomain=linutronix.de dmarc=pass fromdomain=linutronix.de); spf=pass (google.com: domain of linux-kernel+bounces-64302-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-64302-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de 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 sy.mirrors.kernel.org (Postfix) with ESMTPS id 7A3DFB280C0 for ; Tue, 13 Feb 2024 21:18:50 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D913682C97; Tue, 13 Feb 2024 21:06:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="3LmvAtsd"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="W/G5phlw" Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (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 A9DF38174F for ; Tue, 13 Feb 2024 21:05:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707858361; cv=none; b=PpF+f5aftNVxRuko8ihWhOQhT9Fe5hOKcp0OOMNVwHlfn1ey/IyTDUsjvs6rHLzN3ro3BZeF1HJ7tVp0n1nuHnqv1wFRJSwb3LrXrf31xPyNIARfqzvxVl/Xx+ic3FQJjC/acEJc1eDlJB9eGDsxZnl+rGWPodcD9awomG41FPs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707858361; c=relaxed/simple; bh=HtpJ3xliOS+lPd3a3JPFOOp0Bo2w5a0wYDFDoURbUEc=; h=Message-ID:From:To:Cc:Subject:References:MIME-Version: Content-Type:Date; b=e/bYG5loZ5CsZnJvGcuH6jKS75OxmdCCOolWQy9ZxihXUQFwlIH2pVX/iPrSt7LIhDYLrZVVxUGfBYHw+8v2I+QYjKs2TPyNuWfRWUpU1LZTog2lS1n6V78PWD9lJTJvnsPucob6LQWwbr6uETjQIL6nj8zTE+jDkTlfPSWnK0I= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=3LmvAtsd; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=W/G5phlw; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Message-ID: <20240213210252.462231229@linutronix.de> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1707858358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: references:references; bh=5JJur1G2I1XboqcLYG+3cvwsrYIK9ClOurubWw6N59g=; b=3LmvAtsdVeujQdo7UnZ7n3gPd2u6LuvJ12D7j7Q/OAex3Tz20+9lnZ9WOjRmvoOKvzSdBy teJdnz7sBDo/GOpIRiwzPeSEa8R+28cvWZAsTxIileQnt3XXMCnrfjQzaEdBmZNmdzKFV6 4eLEPrVkk5MTOiLmfNJOn+H8zXjsGAjK2rFOTjVT0stpD2xMK8UxecOR0ZaB3fRg/dzI1Z yub0+4ismEhZoBPIaWkbe8vUYhGST5vw8XwdUzpSyZy6n1vwvtwqJHoc3Fknc+Ex+y5av9 TLIe8gh3Eqp+N9OoQqNJAroioOZdEBuMiKYudmjh9fFaNKNB2Rn02xK2BKynCQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1707858358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: references:references; bh=5JJur1G2I1XboqcLYG+3cvwsrYIK9ClOurubWw6N59g=; b=W/G5phlwoDRR/PczSSP9ln5sld6ZNCEsiZWpdwtNQOP6KaTMl61YhqjIdobHV0NjUB+dWI M/Zg1y/1CmSOt1BQ== From: Thomas Gleixner To: LKML Cc: x86@kernel.org, Tom Lendacky , Andrew Cooper , Arjan van de Ven , Huang Rui , Juergen Gross , Dimitri Sivanich , Sohil Mehta , K Prateek Nayak , Kan Liang , Zhang Rui , "Paul E. McKenney" , Feng Tang , Andy Shevchenko , Michael Kelley , "Peter Zijlstra (Intel)" Subject: [patch 17/30] x86/cpu/topology: Reject unknown APIC IDs on ACPI hotplug References: <20240213205415.307029033@linutronix.de> 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 Date: Tue, 13 Feb 2024 22:05:57 +0100 (CET) From: Thomas Gleixner The topology bitmaps track all possible APIC IDs which have been registered during enumeration. As sizing and further topology information is going to be derived from these bitmaps, reject attempts to hotplug an APIC ID which was not registered during enumeration. Signed-off-by: Thomas Gleixner --- arch/x86/kernel/cpu/topology.c | 4 ++++ 1 file changed, 4 insertions(+) --- --- a/arch/x86/kernel/cpu/topology.c +++ b/arch/x86/kernel/cpu/topology.c @@ -272,6 +272,10 @@ int topology_hotplug_apic(u32 apic_id, u if (apic_id >= MAX_LOCAL_APIC) return -EINVAL; + /* Reject if the APIC ID was not registered during enumeration. */ + if (!test_bit(apic_id, apic_maps[TOPO_SMT_DOMAIN].map)) + return -ENODEV; + cpu = topo_lookup_cpuid(apic_id); if (cpu < 0) { if (topo_info.nr_assigned_cpus >= nr_cpu_ids)