From patchwork Mon Feb 3 16:24:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13957781 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F24C0C02192 for ; Mon, 3 Feb 2025 16:24:23 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.880785.1290867 (Exim 4.92) (envelope-from ) id 1tezF9-0005BB-LW; Mon, 03 Feb 2025 16:24:15 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 880785.1290867; Mon, 03 Feb 2025 16:24:15 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezF9-0005B4-Iq; Mon, 03 Feb 2025 16:24:15 +0000 Received: by outflank-mailman (input) for mailman id 880785; Mon, 03 Feb 2025 16:24:14 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezF7-0005Ap-V7 for xen-devel@lists.xenproject.org; Mon, 03 Feb 2025 16:24:13 +0000 Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com [2a00:1450:4864:20::633]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 4d8802f6-e24b-11ef-99a4-01e77a169b0f; Mon, 03 Feb 2025 17:24:12 +0100 (CET) Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-aaedd529ba1so639089366b.1 for ; Mon, 03 Feb 2025 08:24:12 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc72404acdsm8016800a12.39.2025.02.03.08.24.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Feb 2025 08:24:11 -0800 (PST) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 4d8802f6-e24b-11ef-99a4-01e77a169b0f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1738599852; x=1739204652; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=EJ9duolnHM6ddzGDePvpNedWfdDKZvFMWubH+BUvdf0=; b=Wktjf3UQB068znMSpZl1CArqVUOV+y9YzEZ1t/yoSpYBnQdPOwPxNhtNfnSaz0pWTj fZdq7b8vtE5YLOHguasZwZv/rs1UwVatCSxp5SAX7oxDshjE6T2wkTc/RnxL1EPSoh+A daygOZKoB3UI0uJCFdHTX3OI8ictvCLewf0tFgiuL3MlSbascO3J15osLbzVU6tNbVSh JQWEUPyZ3zNUH9/d7FsJKCW1w2X4/u+eapR/bu0YmfOJMDBfKMHtJnIMNZpChptN7nuD oxt1wPjQZE/wq0NdnLOA8tC6CdgCX/faouKPvsYts8df8lMELUtc2Apn3z2QLJ6tLipg jeUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738599852; x=1739204652; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=EJ9duolnHM6ddzGDePvpNedWfdDKZvFMWubH+BUvdf0=; b=MBMKPl1eGgaPUxc62I1+Z2KaJe+6CPVtWsJxiDXrXYqtyAMc1N7s3SrI7YdvV491FM /31jKwkbM4ve7funNJqIsvqP2a6jLReGai5Gwa0rmSPsoE1xwDtR4/JT2DuWFBlvOfBI geVwmnHmH4VMO30tiAr8RQcDx6rIA/M3yAUwatgnPqIReGfxKIKewBsu8Ii9kNKosqSV eVjBGRSkVizuNpFdn8g93DrL6hlbQ7F0d5Onn7yE5C/LWHPd8H0kW8oRR8wNvo8HeFma k2t8xNcW59pOAH2C0sEpTf201Y4/+wcDo2xxJsJp4HuwfBlom8mZbxXUQXLNu0+6GL85 XcEg== X-Gm-Message-State: AOJu0YzpRjfmh7+PJ3OzesGfPJzU1Vklvo+ljRURfVh4B0cp/rzDLGOq fL8yaBTCbrldcSOhn1Zk3EhvWM3wppfJUpmvEwrI/6/GWMyF2TF+T3KBaUv6TPjE7GPOXikBoy8 = X-Gm-Gg: ASbGncsm6oReZ+hxBHdN2qygOWBpXP+V4Rq6lpS+xRbtHHx/ws4SpiI/Ax0TmsFVGT+ bC26ghkRY68sO4Bi0KYPKNCIxrsVRQV32ycYjzdleFYkqR3iN+fuU7sX9jyvJBSA3RaRwiXp6Vj yFxGK+Duy+DAQVbL7WeCFNKl5QYDYKhfFdtawvwTVZOzB39ZJX6771Vx6gfJH05fU8YNzbkqWpw ym++hVM6/wYs37FPC6NTgHllHwRlTR4RcAT22Q2cU81UHiVo0hXcR56pFQt2whfw68LGHtfbc8S fPoC83qLyYbjOxl2OHnh0H5qOiemJgPr4Z6C1KqESCxydE+t43eZmiIGIpD5MmYYzAi34OxPCJl D X-Google-Smtp-Source: AGHT+IHE2NtMKdqIiZp1kqvSPvHTTGRFmVkbkIYRygmf9TyYKdcw+MjPLW/StSdV5Ewp/AABzg50oQ== X-Received: by 2002:a05:6402:c4d:b0:5dc:74fd:abf1 with SMTP id 4fb4d7f45d1cf-5dc74fdad3emr44865856a12.15.1738599851748; Mon, 03 Feb 2025 08:24:11 -0800 (PST) Message-ID: Date: Mon, 3 Feb 2025 17:24:10 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.20? 1/6] AMD/IOMMU: drop stray MSI enabling From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?utf-8?q?Roger_Pau_Monn?= =?utf-8?q?=C3=A9?= , Oleksii Kurochko References: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> While the 2nd of the commits referenced below should have moved the call to amd_iommu_msi_enable() instead of adding another one, the situation wasn't quite right even before: It can't have done any good to enable MSI when no IRQ was allocated for it, yet. The other call to amd_iommu_msi_enable(), just out of patch context, needs to stay there until S3 resume is re-worked. For the boot path that call should be unnecessary, as iommu{,_maskable}_msi_startup() will have done it already (by way of invoking iommu_msi_unmask()). Fixes: 5f569f1ac50e ("AMD/IOMMU: allow enabling with IRQ not yet set up") Fixes: d9e49d1afe2e ("AMD/IOMMU: adjust setup of internal interrupt for x2APIC mode") Signed-off-by: Jan Beulich Reviewed-by: Jason Andryuk Tested-by: Jason Andryuk Acked-by: Roger Pau Monné --- v2: Extend description. --- a/xen/drivers/passthrough/amd/iommu_init.c +++ b/xen/drivers/passthrough/amd/iommu_init.c @@ -902,8 +902,6 @@ static void enable_iommu(struct amd_iomm } } - amd_iommu_msi_enable(iommu, IOMMU_CONTROL_ENABLED); - set_iommu_ht_flags(iommu); set_iommu_command_buffer_control(iommu, IOMMU_CONTROL_ENABLED); From patchwork Mon Feb 3 16:24:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13957782 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 21FC4C02195 for ; Mon, 3 Feb 2025 16:24:54 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.880791.1290889 (Exim 4.92) (envelope-from ) id 1tezFb-0005tt-91; Mon, 03 Feb 2025 16:24:43 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 880791.1290889; Mon, 03 Feb 2025 16:24:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezFb-0005ti-4H; Mon, 03 Feb 2025 16:24:43 +0000 Received: by outflank-mailman (input) for mailman id 880791; Mon, 03 Feb 2025 16:24:41 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezFZ-0005sg-Ro for xen-devel@lists.xenproject.org; Mon, 03 Feb 2025 16:24:41 +0000 Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [2a00:1450:4864:20::631]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 5e46e26f-e24b-11ef-a0e7-8be0dac302b0; Mon, 03 Feb 2025 17:24:40 +0100 (CET) Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-ab6f636d821so683544066b.1 for ; Mon, 03 Feb 2025 08:24:40 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e49ffe7asm784122466b.102.2025.02.03.08.24.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Feb 2025 08:24:39 -0800 (PST) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 5e46e26f-e24b-11ef-a0e7-8be0dac302b0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1738599880; x=1739204680; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=rghaj4ZjOzXehAiZ3WxOiVs5CufQM8CYuAaY5QdYnBc=; b=fRnM853FvnGvi7G9UHt83hQlmyrRvbyejTJmn/4uv8e3Tcn8Ku2Tk6QyRE2GUQZPCl ljy15TYiSyse5ZCpvwOMNt0LOyJqUjyOsUtn6FyC6fvU27iffWuZa3PoUSThmEgoq2s5 jk5XPrWRsC+FFtvizLSkLvIb0DpfWJ9/CuKeC6uSjno+8vQZ/jLuKsrrodC+HTtp8wt8 Lb72QiXIcT9zfAdru08RMsvt58QxP639JXDi80cjsqjnc206xKmEJBzO6jDJr2fh0pCU IsxCJunKRAni3aqGgNspHZlS8Jt120PhdQWDTJh6tTAGku7R6L670tXv7iZPz1tVwKeR 0p1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738599880; x=1739204680; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=rghaj4ZjOzXehAiZ3WxOiVs5CufQM8CYuAaY5QdYnBc=; b=ldkwDcXB2ajxES8Mru8I4Z1pWmpZITxoA+U9D8OMv3pqTnJ6v4zy1OEwZ6wI2K+h4h SCrzWuvretxUvgXg/FJqxX0JK9T44pyZ/bsYIo45STcGpcl4/QJ1JNPl5qVAov5oHUA6 0ovvkRcOa3iLBaqMKNjSZcEcG4vD1ii8iLZeAHcpO1yk3wLTWKT08J3Mpy2FhJMRAd+J cK09u+yQK/7a3McQjm4ggOcuqs9uckU1vvkbUxX/iYOWPnFvFPuS9G0DnW4z0xsBmufw sJ7g6MWt57bkxZgoaLaonRXHyFm7CUg4URCFa2EoWRHEkxAfnNNe4f6P9zVB0X6+E2PO EdAg== X-Gm-Message-State: AOJu0YydSNGlFxHkW8YYWGdz32pTjCM/FaypTYZaUs57ygtzjPfhmrus KdmCw03Z30psI4NNQXMtYohWYDBNIzkN1CqwckuwdLjDKzqD5sUadHLTeoih27mHFJkYSYtMT6U = X-Gm-Gg: ASbGncs9mtB8EW1qbWW5yKqpVX63bnGrZzME4hAat5TsMf4uzV6eM+weFz8L+wFVaOa di6RU+7PRRIDCkqTZHjky4LAGwvGG0Hj/ecYU7Tj4If4Rut0IpibuG+UY+cfDFPaXrv47BKg0ze /razcSzQpItZ7omxF/qy/Wh12JTSX+eLcQwCCJax0skYNox2+aOQye6z40AU1QgOHJ2IHZJGaoL 3KWshX5xvMU2VLkiE0Ls7RaFWJWzPyq6FTchk9y8PMLg8cDhV176jmWtXda82JFcU5gC3YI/pei 38a5yOOcmMpsHKNQDq0UMQTsq908f9zIxgG2tROvhbDpLQtrd80unN9EcI/dSI/UjffBkA+y0sa f X-Google-Smtp-Source: AGHT+IGVLHfKQRmGfk5y3XE5eEwO3CBkpHtHEm9iKGl7MXC6R8QbkMUPB9f8ZKa0VWCIKm/jvDRoZg== X-Received: by 2002:a17:907:2d0e:b0:ab6:f68f:ea9a with SMTP id a640c23a62f3a-ab6f68febd4mr1758065866b.1.1738599879883; Mon, 03 Feb 2025 08:24:39 -0800 (PST) Message-ID: Date: Mon, 3 Feb 2025 17:24:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.20 2/6] x86/PCI: init segments earlier From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?utf-8?q?Roger_Pau_Monn?= =?utf-8?q?=C3=A9?= , Oleksii Kurochko References: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> In order for amd_iommu_detect_one_acpi()'s call to pci_ro_device() to have permanent effect, pci_segments_init() needs to be called ahead of making it there. Without this we're losing segment 0's r/o map, and thus we're losing write-protection of the PCI devices representing IOMMUs. Which in turn means that half-way recent Linux Dom0 will, as it boots, turn off MSI on these devices, thus preventing any IOMMU events (faults in particular) from being reported on pre-x2APIC hardware. As the acpi_iommu_init() invocation was moved ahead of acpi_mmcfg_init()'s by the offending commit, move the call to pci_segments_init() accordingly. Fixes: 3950f2485bbc ("x86/x2APIC: defer probe until after IOMMU ACPI table parsing") Signed-off-by: Jan Beulich Reviewed-by: Jason Andryuk Tested-by: Jason Andryuk --- Of course it would have been quite a bit easier to notice this issue if radix_tree_insert() wouldn't work fine ahead of radix_tree_init() being invoked for a given radix tree, when the index inserted at is 0. While hunting down various other dead paths to actually find the root cause, it occurred to me that it's probably not a good idea to fully disallow config space writes for r/o devices: Dom0 won't be able to size their BARs (luckily the IOMMU "devices" don't have any, but e.g. serial ones generally will have at least one), for example. Without being able to size BARs it also will likely be unable to correctly account for the address space taken by these BARs. However, outside of vPCI it's not really clear to me how we could reasonably emulate such BAR sizing writes - we can't, after all, allow Dom0 to actually write to the underlying physical registers, yet we don't intercept reads (i.e. we can't mimic expected behavior then). --- a/xen/arch/x86/x86_64/mmconfig-shared.c +++ b/xen/arch/x86/x86_64/mmconfig-shared.c @@ -402,8 +402,6 @@ void __init acpi_mmcfg_init(void) { bool valid = true; - pci_segments_init(); - /* MMCONFIG disabled */ if ((pci_probe & PCI_PROBE_MMCONF) == 0) return; --- a/xen/drivers/passthrough/x86/iommu.c +++ b/xen/drivers/passthrough/x86/iommu.c @@ -55,6 +55,8 @@ void __init acpi_iommu_init(void) { int ret = -ENODEV; + pci_segments_init(); + if ( !iommu_enable && !iommu_intremap ) return; From patchwork Mon Feb 3 16:25:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13957783 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C99E9C02192 for ; Mon, 3 Feb 2025 16:25:41 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.880811.1290898 (Exim 4.92) (envelope-from ) id 1tezGK-0006gx-Fd; Mon, 03 Feb 2025 16:25:28 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 880811.1290898; Mon, 03 Feb 2025 16:25:28 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezGK-0006gq-Cc; Mon, 03 Feb 2025 16:25:28 +0000 Received: by outflank-mailman (input) for mailman id 880811; Mon, 03 Feb 2025 16:25:27 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezGJ-0006gZ-2s for xen-devel@lists.xenproject.org; Mon, 03 Feb 2025 16:25:27 +0000 Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [2a00:1450:4864:20::631]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 78de5357-e24b-11ef-99a4-01e77a169b0f; Mon, 03 Feb 2025 17:25:25 +0100 (CET) Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-aaeef97ff02so734817366b.1 for ; Mon, 03 Feb 2025 08:25:25 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e49ff75esm790295566b.99.2025.02.03.08.25.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Feb 2025 08:25:24 -0800 (PST) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 78de5357-e24b-11ef-99a4-01e77a169b0f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1738599924; x=1739204724; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=O3fWtnzy8q95r0vZdz81zagpku9xK1NzgCFks3bIOlg=; b=bJV2W/Rvf07/4jIAFCcw5qW3zZ7s7Zfac23+4n9h6bs6TR5e3S7UAJwZiC9FfaU0iY 28HCY16S9m8jn+e1PgjaGq95oZ6QvbQiMpuTf46o3prCbEvAo6h28nNH++fg0rMjNyxf o1Gsyglee621hXO+zNmdg1EfrdgtD2+Lg7pv1fwQh1IDrQYcWVzHIe4ywQ6b+TWPSlsH hWRGZPuHB0ROOuftHF6pzs3EFL2Yyl95NGKG6mvpx6YNOjvIkRLbklJWLmey0fwUbdgp 7x970uAMbN0QfGwPS5SA3yzdd2BmYEfPiDtN/wtNOyPJbejqoStW5NTX8OBsgMYAQn7o n/hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738599924; x=1739204724; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=O3fWtnzy8q95r0vZdz81zagpku9xK1NzgCFks3bIOlg=; b=kmX88lNxm/BKfbdAVKiK+PTCgXmXG4pnqbJbywHIB3Iq0LVtuQJDpu/5Cxtn2fck9H cbN/RrXCD2wURigr8i2C4KMNDKFnkp6v38v4VF8oseC9VEfWZtD5Kfj2pO8UidA9TKoA zEO6tS9HqrFKbDGxouf37RZC3Ep3q0T8eiuaVv74WZ9nQvHs1oB4WV+7Q/b0gzCNuBsV gojYaYJozJ75NA+44Md6CD/wbztFopgDXY5b9oYbkDNupy5eroUJL6OOAOXX5PF2yiMt zfSNqvqQrwFMCJTzkPeSrE/iYoZn0ByjLZMfr4YQkW2bml4pcsAvNSIVqU5lGLRq57cb 3ZuA== X-Gm-Message-State: AOJu0Yw33/S4jRwVvoyBUGC96r+XinmWbQYGHeHxhFm9qxNni5y8n4VR 2/vtHQwFdXHLlSXiP2/KvgdGLM38VbpaFe8DR1zY9T9/4/ghkZ478TJaAIqd8ynbHXW1z6dc3us = X-Gm-Gg: ASbGnctxMj+bl14PTdzN8stu/vNB6pgk4bfNxcv0sxr/UpRYj8HjT0E9VtBXMaBcHTK YhuA53zS0uNMDtmnTgZe9xeEkzhanUGNA/sPssL6mRtq/xzdq5tNFmwG7RzD65EeUIh0MbzfRVw 07Vp7n/UvRsc1cNU6QRHiICPBntLVGlP44J/T3Oxe5JaGjYOzdIZ95u8PyQABt8EYRs0uVCFy6y xr4UWAYqJugbDshHd4EooY7R1OLgCdk0TwxhJ8X/X5KMVNaO9EjHb+qepY9q05Fn9euTczFyAfM 9gQCNV7DH0wQWtW9wHL+jkG5vhwEsEAhZQMWQmUENczMDppYidK4tD1mr6bgdbpZQMoQsghegRI / X-Google-Smtp-Source: AGHT+IEh9r4ek3QzTRScwChgA3NhCa3o0NUsv5PuHAateBunzJOz8fX09E9gIRVtgsvQv9mzhi/DIw== X-Received: by 2002:a17:907:868d:b0:ab6:d7c4:fc7d with SMTP id a640c23a62f3a-ab6d7c4fee7mr2571796666b.39.1738599924522; Mon, 03 Feb 2025 08:25:24 -0800 (PST) Message-ID: <3c571436-b678-49bc-938d-892913e0e96e@suse.com> Date: Mon, 3 Feb 2025 17:25:23 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.20 3/6] radix-tree: purge node allocation override hooks From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Oleksii Kurochko , Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?utf-8?q?Roger_Pau_Monn=C3=A9?= References: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> These were needed by TMEM only, which is long gone. The Linux original doesn't have such either. This effectively reverts one of the "Other changes" from 8dc6738dbb3c ("Update radix-tree.[ch] from upstream Linux to gain RCU awareness"). Positive side effect: Two cf_check go away. While there also convert xmalloc()+memset() to xzalloc(). (Don't convert to xvzalloc(), as that would require touching the freeing side, too.) Requested-by: Andrew Cooper Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- v2: New. --- a/xen/common/radix-tree.c +++ b/xen/common/radix-tree.c @@ -53,12 +53,6 @@ struct rcu_node { struct rcu_head rcu_head; }; -static struct radix_tree_node *cf_check rcu_node_alloc(void *arg) -{ - struct rcu_node *rcu_node = xmalloc(struct rcu_node); - return rcu_node ? &rcu_node->node : NULL; -} - static void cf_check _rcu_node_free(struct rcu_head *head) { struct rcu_node *rcu_node = @@ -66,26 +60,19 @@ static void cf_check _rcu_node_free(stru xfree(rcu_node); } -static void cf_check rcu_node_free(struct radix_tree_node *node, void *arg) -{ - struct rcu_node *rcu_node = container_of(node, struct rcu_node, node); - call_rcu(&rcu_node->rcu_head, _rcu_node_free); -} - static struct radix_tree_node *radix_tree_node_alloc( struct radix_tree_root *root) { - struct radix_tree_node *ret; - ret = root->node_alloc(root->node_alloc_free_arg); - if (ret) - memset(ret, 0, sizeof(*ret)); - return ret; + struct rcu_node *rcu_node = xzalloc(struct rcu_node); + + return rcu_node ? &rcu_node->node : NULL; } static void radix_tree_node_free( struct radix_tree_root *root, struct radix_tree_node *node) { - root->node_free(node, root->node_alloc_free_arg); + struct rcu_node *rcu_node = container_of(node, struct rcu_node, node); + call_rcu(&rcu_node->rcu_head, _rcu_node_free); } /* @@ -718,19 +705,6 @@ void radix_tree_destroy( void radix_tree_init(struct radix_tree_root *root) { memset(root, 0, sizeof(*root)); - root->node_alloc = rcu_node_alloc; - root->node_free = rcu_node_free; -} - -void radix_tree_set_alloc_callbacks( - struct radix_tree_root *root, - radix_tree_alloc_fn_t *node_alloc, - radix_tree_free_fn_t *node_free, - void *node_alloc_free_arg) -{ - root->node_alloc = node_alloc; - root->node_free = node_free; - root->node_alloc_free_arg = node_alloc_free_arg; } static __init unsigned long __maxindex(unsigned int height) --- a/xen/include/xen/radix-tree.h +++ b/xen/include/xen/radix-tree.h @@ -66,11 +66,6 @@ typedef void radix_tree_free_fn_t(struct struct radix_tree_root { unsigned int height; struct radix_tree_node __rcu *rnode; - - /* Allow to specify custom node alloc/dealloc routines. */ - radix_tree_alloc_fn_t *node_alloc; - radix_tree_free_fn_t *node_free; - void *node_alloc_free_arg; }; /* @@ -78,11 +73,6 @@ struct radix_tree_root { */ void radix_tree_init(struct radix_tree_root *root); -void radix_tree_set_alloc_callbacks( - struct radix_tree_root *root, - radix_tree_alloc_fn_t *node_alloc, - radix_tree_free_fn_t *node_free, - void *node_alloc_free_arg); void radix_tree_destroy( struct radix_tree_root *root, From patchwork Mon Feb 3 16:25:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13957784 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DF296C02192 for ; Mon, 3 Feb 2025 16:26:08 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.880819.1290907 (Exim 4.92) (envelope-from ) id 1tezGq-0007FK-Ml; Mon, 03 Feb 2025 16:26:00 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 880819.1290907; Mon, 03 Feb 2025 16:26:00 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezGq-0007FD-Jq; Mon, 03 Feb 2025 16:26:00 +0000 Received: by outflank-mailman (input) for mailman id 880819; Mon, 03 Feb 2025 16:25:59 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezGo-0006gZ-Uk for xen-devel@lists.xenproject.org; Mon, 03 Feb 2025 16:25:58 +0000 Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com [2a00:1450:4864:20::633]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 8c1dcf9e-e24b-11ef-99a4-01e77a169b0f; Mon, 03 Feb 2025 17:25:57 +0100 (CET) Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-aaeef97ff02so734936366b.1 for ; Mon, 03 Feb 2025 08:25:57 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc723e9fa7sm7887040a12.20.2025.02.03.08.25.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Feb 2025 08:25:56 -0800 (PST) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8c1dcf9e-e24b-11ef-99a4-01e77a169b0f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1738599957; x=1739204757; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=wjjO+oX3Rn5nOrCNhbNhuPdUywe7q/Lj3Qv2JuuHtvg=; b=E8nIwFD0EqfooZaNsX8C7Riolqtc27dXOmkabrvXWMUnrcrlPdPODX0h8YWUxZ5Q52 tdrQ05qG/bcfSW6uQRN1fE9ufAEB2eu5+BpzQcAK2yAcWflqiccJseyvibhegRlX7wgJ R9Ia0htHCHg9HiI/p7QXrrHlxo47+jKZF5ulXBJIuYZRDhOg/OViqWJLafQIWKaknFoZ vGa+xTaN7zX0K06aoTcZS2HqbRsUyBAhmVK9644y62crnp111f/OmlCKurFHBQMyQONg LcPAc0LVFVIznOWJrGS+kczlwi65/Mu6kb3WVWFwLrvWE8ZBCxlI3DiFbheAuHKXihvp nl3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738599957; x=1739204757; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=wjjO+oX3Rn5nOrCNhbNhuPdUywe7q/Lj3Qv2JuuHtvg=; b=FTiSZzknnU+PEVFfzAtcS//E89SBAATYTb6YAN1tO/B0GLRzTGSp7Lzv2sZdAAXObu JYEsM1Q0yOIbUnLcC7j06MEHgVWpUVdq4GjB4cq+bDKxjly+KdMZ19T/gddFCZ7uezd7 IVxnaD4sqUtHVlPYu0MMys5GNvquls911xgjRmnoTCAYfTI8sL6Y7wagdEs8xJq02bwN W+fqGTAkxP2ilnjksE3tHhAMp74Q9Hjw6N7bcmHQYOw3QVLPc962rgcww5vNlE+Ho2bN 6YvxqNCXKir0/QQ2V8bR+frHdXwbZr0LT9xSToUe9Bamsnwnd8kJf+xBSrS5gRhCQeOw p/yg== X-Gm-Message-State: AOJu0YyGlgRa2/xM3eP3QocKl0GoW276v5d7uC8ve6H13cBeQoQD4Dcv xzVlRb7LvxCziyKvb++rXyxYabx57p5VUPquUoej0uZTgvju29ScaNP3sq/ydyFPLsosK7PYnr8 = X-Gm-Gg: ASbGncuJTCzlXHYZRHeurtfFhf53z/reJxXeIVVUhzfS8AaHf85tqmxGu16/C4TBTYq K91m/PhUEDuV+yUkFuMk0zNGVD1OJW4JeALdFxaDQgL48c9DqET7WfS8k8MGSbAWSOF0MoQtkPI tu83SJc0MTwzgyx0Mu4NshUQLqYeZRY7upQz1FR6Cvj2CA9PVoFnRrUsR+Any5K+iyttilB6PZD FtrK6XLFoNdNhbQ/Y1oITTxna+hjKuIZ2DnwA6/E91zwcuWRIvAijJe38ANx1pMw0n3NtPnvjOD m2GCu8uKlZPHrcbQhbTc19mGsI0yWv3Eanpoa42y0KeOZwjaPxs2xfUB1q53MgroeKmLf8NtKPk 7 X-Google-Smtp-Source: AGHT+IEdvK6AIcKYCyPgN3B9KJ5lzFLVafJd2t7AILbdH44gdObuanhv/QOKLsCEcDEn3l0sdYonkQ== X-Received: by 2002:a17:907:6d1d:b0:ab6:fd1d:ef6b with SMTP id a640c23a62f3a-ab6fd1df208mr1775760466b.27.1738599956872; Mon, 03 Feb 2025 08:25:56 -0800 (PST) Message-ID: Date: Mon, 3 Feb 2025 17:25:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.21 4/6] radix-tree: drop "root" parameters from radix_tree_node_{alloc,free}() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?utf-8?q?Roger_Pau_Monn?= =?utf-8?q?=C3=A9?= , Oleksii Kurochko References: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> They aren't used anymore. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- v2: New. --- a/xen/common/radix-tree.c +++ b/xen/common/radix-tree.c @@ -60,16 +60,14 @@ static void cf_check _rcu_node_free(stru xfree(rcu_node); } -static struct radix_tree_node *radix_tree_node_alloc( - struct radix_tree_root *root) +static struct radix_tree_node *radix_tree_node_alloc(void) { struct rcu_node *rcu_node = xzalloc(struct rcu_node); return rcu_node ? &rcu_node->node : NULL; } -static void radix_tree_node_free( - struct radix_tree_root *root, struct radix_tree_node *node) +static void radix_tree_node_free(struct radix_tree_node *node) { struct rcu_node *rcu_node = container_of(node, struct rcu_node, node); call_rcu(&rcu_node->rcu_head, _rcu_node_free); @@ -104,7 +102,7 @@ static int radix_tree_extend(struct radi do { unsigned int newheight; - if (!(node = radix_tree_node_alloc(root))) + if (!(node = radix_tree_node_alloc())) return -ENOMEM; /* Increase the height. */ @@ -155,7 +153,7 @@ int radix_tree_insert(struct radix_tree_ while (height > 0) { if (slot == NULL) { /* Have to add a child node. */ - if (!(slot = radix_tree_node_alloc(root))) + if (!(slot = radix_tree_node_alloc())) return -ENOMEM; slot->height = height; if (node) { @@ -574,7 +572,7 @@ static inline void radix_tree_shrink(str *((unsigned long *)&to_free->slots[0]) |= RADIX_TREE_INDIRECT_PTR; - radix_tree_node_free(root, to_free); + radix_tree_node_free(to_free); } } @@ -639,7 +637,7 @@ void *radix_tree_delete(struct radix_tre * last reference to it disappears (set NULL, above). */ if (to_free) - radix_tree_node_free(root, to_free); + radix_tree_node_free(to_free); if (pathp->node->count) { if (pathp->node == indirect_to_ptr(root->rnode)) @@ -655,7 +653,7 @@ void *radix_tree_delete(struct radix_tre root->height = 0; root->rnode = NULL; if (to_free) - radix_tree_node_free(root, to_free); + radix_tree_node_free(to_free); out: return slot; @@ -682,7 +680,7 @@ radix_tree_node_destroy( } } - radix_tree_node_free(root, node); + radix_tree_node_free(node); } void radix_tree_destroy( From patchwork Mon Feb 3 16:26:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13957785 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1F029C02192 for ; Mon, 3 Feb 2025 16:26:47 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.880826.1290918 (Exim 4.92) (envelope-from ) id 1tezHQ-0007ms-VB; Mon, 03 Feb 2025 16:26:36 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 880826.1290918; Mon, 03 Feb 2025 16:26:36 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezHQ-0007ml-Rz; Mon, 03 Feb 2025 16:26:36 +0000 Received: by outflank-mailman (input) for mailman id 880826; Mon, 03 Feb 2025 16:26:35 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezHO-0006gZ-Vi for xen-devel@lists.xenproject.org; Mon, 03 Feb 2025 16:26:34 +0000 Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [2a00:1450:4864:20::62f]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id a19343d9-e24b-11ef-99a4-01e77a169b0f; Mon, 03 Feb 2025 17:26:33 +0100 (CET) Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-aaec61d0f65so778808266b.1 for ; Mon, 03 Feb 2025 08:26:33 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e49ffd4dsm788590766b.91.2025.02.03.08.26.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Feb 2025 08:26:32 -0800 (PST) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: a19343d9-e24b-11ef-99a4-01e77a169b0f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1738599993; x=1739204793; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=TEuTmXUbRXTC5UjEhqm1VFDs5Km68mP+ZKpWd/geRbg=; b=B3tr/+iZLI3S0WWXFo76NPEcpD8ov5PXkv+tZGeDYcq3QrOQwhIcxaS4JXTe2t30/B srvFKzjefXSHSomYHVp9Y0vwuE/NcIdCj2IHFETFP33M6oghEpUAGH45bFQGXkdgbmoF BLDOhAhK1CZ2G+dTzBODNBTMUSxppjl0BNZ0+v3uVVWUMC7EBy3kf7HJ/S4UZpsSY1j9 SMl675P5ytHmpQCWw8EvJSh3zP7nKVkMLibXaMiPxwmWEQ3mPKPDIsyKlO70EU3sgdPc lBMcbhCwNJ1NMo/4/Tgr0BBonwJMTdbPMexO0IndE6Uo4a+f4j45tHsr5Q224ARE+BIw bP7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738599993; x=1739204793; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TEuTmXUbRXTC5UjEhqm1VFDs5Km68mP+ZKpWd/geRbg=; b=SpRonOsjQhNr8v7QqlzROgV3BwMrq6UuIFbnIBal9WPyP+IzcrP4/U7Kn/SUIZa1ws EgpzDMnU9Xr+y9z356Ff8NmqmriYC7+keMvDj+QL3LdJ9XE/a6ekiLQ2kf2vgbAdnMNq PyUvM/qweI2myEnwdgUrokdRdOFLNH5qFuP24oD32B1Fqseiquw6lly4q6m3ZJOCK5F0 F+i1BPL2vUL+FZHuSLik5Q3KcanzG1z5tnyRgARrQjkJmIBLPJTJXOeAuRx7e1/v4++i /xAtZ8+REeTiOXEQONhsTEn2YxZ2N549st7krdjFPZBnQbJkwtKAsYIkxtK6Zvy44T24 IerQ== X-Gm-Message-State: AOJu0YzyeihVYP/Osg/n5rslMI/JlKdK1OhDTVVrOzYhVkPpKnoRMOyS g8bwc/AAcGbtlKPrur23noing9Mo/fDC5fgkFMoEfSDQip7K34i/mzbBdQVKiA7c6xS10U3joDU = X-Gm-Gg: ASbGncuNftIKwrcWOp9xiorx0goubLxZhOLn8vYPDdbf/ma2Q4lLfA3Dx+mUsham/HL r7W+NoeWAt0BKwyq9q5o1waS5kJmn7DMzDz3eznpIgLLQulggAxmQePxvP3PD66uf4cnzoO6H9X KaMPFqcobL8N8WEP5TTDZNYN0fzvIy3z7oCTuv6EKD4m1PLzoLiBlUKBo+zxqiccFblXN6hw00+ JH7FZwiudfMawMuVbaOBaan61RLcNgl1miGXm9PNfZOpEZIn1RVFGPinwYEIdI/3LaHDWQPBxqh vu1m1Hx/jawqLEu4ehi4dZ1HFRz2ksF4IpSj+2CkUib2Z1vvSwi+ODxTBWI0vAdqd7TO6x8EXWM 7 X-Google-Smtp-Source: AGHT+IHWi7Z9l3dnCLPj1jzcbh/OJN+CMCFy7IksIEAQ03jyH+hliuC/Z/DMEawFG6LVBNjdMrDv3w== X-Received: by 2002:a17:907:2cc5:b0:aaf:74d6:6467 with SMTP id a640c23a62f3a-ab6cfe11f0cmr2475004066b.42.1738599992939; Mon, 03 Feb 2025 08:26:32 -0800 (PST) Message-ID: Date: Mon, 3 Feb 2025 17:26:32 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.20? 5/6] radix-tree: introduce RADIX_TREE{,_INIT}() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Oleksii Kurochko , Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?utf-8?q?Roger_Pau_Monn=C3=A9?= References: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> ... now that static initialization is possible. Use RADIX_TREE() for pci_segments and ivrs_maps. Requested-by: Andrew Cooper Signed-off-by: Jan Beulich --- v2: New. --- a/xen/drivers/passthrough/amd/iommu_init.c +++ b/xen/drivers/passthrough/amd/iommu_init.c @@ -31,7 +31,7 @@ static struct tasklet amd_iommu_irq_task unsigned int __read_mostly amd_iommu_acpi_info; unsigned int __read_mostly ivrs_bdf_entries; u8 __read_mostly ivhd_type; -static struct radix_tree_root ivrs_maps; +static RADIX_TREE(ivrs_maps); LIST_HEAD_RO_AFTER_INIT(amd_iommu_head); bool iommuv2_enabled; @@ -1408,7 +1408,6 @@ int __init amd_iommu_prepare(bool xt) goto error_out; ivrs_bdf_entries = rc; - radix_tree_init(&ivrs_maps); for_each_amd_iommu ( iommu ) { rc = amd_iommu_prepare_one(iommu); --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -68,7 +68,7 @@ bool pcidevs_locked(void) return rspin_is_locked(&_pcidevs_lock); } -static struct radix_tree_root pci_segments; +static RADIX_TREE(pci_segments); static inline struct pci_seg *get_pseg(u16 seg) { @@ -124,7 +124,6 @@ static int pci_segments_iterate( void __init pci_segments_init(void) { - radix_tree_init(&pci_segments); if ( !alloc_pseg(0) ) panic("Could not initialize PCI segment 0\n"); } --- a/xen/include/xen/radix-tree.h +++ b/xen/include/xen/radix-tree.h @@ -72,6 +72,9 @@ struct radix_tree_root { *** radix-tree API starts here ** */ +#define RADIX_TREE_INIT() {} +#define RADIX_TREE(name) struct radix_tree_root name = RADIX_TREE_INIT() + void radix_tree_init(struct radix_tree_root *root); void radix_tree_destroy( From patchwork Mon Feb 3 16:27:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13957798 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 00B8BC02192 for ; Mon, 3 Feb 2025 16:33:02 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.880859.1290948 (Exim 4.92) (envelope-from ) id 1tezNZ-0002W8-19; Mon, 03 Feb 2025 16:32:57 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 880859.1290948; Mon, 03 Feb 2025 16:32:57 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezNY-0002W1-UU; Mon, 03 Feb 2025 16:32:56 +0000 Received: by outflank-mailman (input) for mailman id 880859; Mon, 03 Feb 2025 16:32:56 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tezIF-0006gZ-Ms for xen-devel@lists.xenproject.org; Mon, 03 Feb 2025 16:27:27 +0000 Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [2a00:1450:4864:20::62f]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id c103a5f0-e24b-11ef-99a4-01e77a169b0f; Mon, 03 Feb 2025 17:27:26 +0100 (CET) Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-aaf57c2e0beso943962866b.3 for ; Mon, 03 Feb 2025 08:27:26 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e47d070bsm772781666b.48.2025.02.03.08.27.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Feb 2025 08:27:25 -0800 (PST) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: c103a5f0-e24b-11ef-99a4-01e77a169b0f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1738600046; x=1739204846; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=oIG8+dfgv5JrBN9qiubMzxCH8fENGmq0/5ptspun5xg=; b=F1CSUD0421d0LFTvLog1YkCUNtLhLqYYKf9oB8RU8t7K2SwfLNl7ixCed+bFWUlrn6 UP8meVAr1rkjN1L8ixZkcvNvufAARHXu1itJ+JfE6NZ/Z6T6qSiNPrDYaOYR91reCgx/ mb+7ZqVxK2aqLDQ7NZ/eq06+amsESpNl5u3Ym9exMoZCwDPKDIP6xg9NAeuBHVrUepz7 7223ggMOOfkUkZN9LuAIHZr/EWd8ZqKFj8QcoV8xMSEdk3RHnuJilrRK4AA8T5Udl8bR Dt0DNab+wddBbCytWmQ+t2tMi+LoU0lzNuAXm2FFcu0L3DI9lDD0Hv/knaRrk9zN9eC+ KDiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738600046; x=1739204846; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=oIG8+dfgv5JrBN9qiubMzxCH8fENGmq0/5ptspun5xg=; b=aMb+VmjucGbUVgeiKX5aK3hMtLM7eThaEv3C78ne9a9okwpK12RjV8fiGDDrvy+E/W zqdsYSxHDHpdB0I8qEcvzm8BkrXCE1aW7VpzxgrP7JztIBtUAQIxJykLcFyg0ek6Jmn0 RMnvxjQscmsWDnozvWdC9i6adE9kMzuU8jxBk2oUa6c8D0BxxUtnz3AGOe1b8g2cYuz1 KwrZxKewGhZKJTvLwwXG0X3DMAYhxB+MmVARfJDwX3BmsogOBVJIsMthYSwLYhEVA0+/ fOSdExDDvkxsEcsn+B+DwBZGkUz2oJTNlcRzTxzxp46Bqz6arHJAOqUT8f/AH1z/pgsB +DHw== X-Gm-Message-State: AOJu0YyOegYKLcC3mfZvQkH7PV4YfdNKK1wP1j8TTHORPtu7llIUh5uX m1OSbQBPxUmfaAY6vDACfC1Tcgcy5x2X4nrw7BcycjejWQ/CX/eLd8+/hKcEc7fEYKSXWE0NIsc = X-Gm-Gg: ASbGnctZxc+9jgVMNwsxMnp55fgkzAW0fNcMA23a2ttdrllLMk/f3XgGQ9EpFj9FZrg gIH5XojdALAj+JtMcrwKnUEC6a8eAqPSjqCRBxhdweZvayROHS5EDCQ3o7NbJLgzu3lrL1zJwVk f/6OrDcUd7HaUvstijLayEdo7aM5ASgyujqV3H8A/yFk72CCAsfX+P6mqi+CbPDvT0xyuJa9NgK /yJaC8CxfG3oSPTKeolxvk4Gxf3gManecOqktGIjXLhbAKDyOg26hsmtU8/7JbwWMNU/xqInIo2 wOaOruANpAiGfua7EgKXWP5FnHV/7EfGCgyVZtKJPREAKTRGZjRrgEAffqVQEQQMf6CmIChbB5G s X-Google-Smtp-Source: AGHT+IHihczvoIXGJfjJMfSlrCjW2GvCHbT5w24tirZXoVH4RlueR8nqEW1Pfm5TUrSdqQNbeXA42Q== X-Received: by 2002:a17:906:6a23:b0:ab6:de3a:351d with SMTP id a640c23a62f3a-ab6de3a358emr2081002466b.12.1738600045611; Mon, 03 Feb 2025 08:27:25 -0800 (PST) Message-ID: <3abd753b-b1f2-499a-8c02-6b6d64a78a17@suse.com> Date: Mon, 3 Feb 2025 17:27:24 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 for-4.20? 6/6] PCI: drop pci_segments_init() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?utf-8?q?Roger_Pau_Monn?= =?utf-8?q?=C3=A9?= , Oleksii Kurochko , Julien Grall , Stefano Stabellini , Volodymyr Babchuk , Bertrand Marquis , Michal Orzel References: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <30f29dde-15e1-4af9-b86f-0040658c381a@suse.com> Have callers invoke pci_add_segment() directly instead. On x86 move the invocation back to acpi_mmcfg_init(), where it was prior to ???????????? ("x86/PCI: init segments earlier"). --- v2: New. --- a/xen/arch/arm/pci/pci.c +++ b/xen/arch/arm/pci/pci.c @@ -88,7 +88,8 @@ static int __init pci_init(void) if ( !pci_passthrough_enabled ) return 0; - pci_segments_init(); + if ( pci_add_segment(0) ) + panic("Could not initialize PCI segment 0\n"); if ( acpi_disabled ) return dt_pci_init(); --- a/xen/arch/x86/x86_64/mmconfig-shared.c +++ b/xen/arch/x86/x86_64/mmconfig-shared.c @@ -402,6 +402,9 @@ void __init acpi_mmcfg_init(void) { bool valid = true; + if ( pci_add_segment(0) ) + panic("Could not initialize PCI segment 0\n"); + /* MMCONFIG disabled */ if ((pci_probe & PCI_PROBE_MMCONF) == 0) return; --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -122,12 +122,6 @@ static int pci_segments_iterate( return rc; } -void __init pci_segments_init(void) -{ - if ( !alloc_pseg(0) ) - panic("Could not initialize PCI segment 0\n"); -} - int __init pci_add_segment(u16 seg) { return alloc_pseg(seg) ? 0 : -ENOMEM; --- a/xen/drivers/passthrough/x86/iommu.c +++ b/xen/drivers/passthrough/x86/iommu.c @@ -55,8 +55,6 @@ void __init acpi_iommu_init(void) { int ret = -ENODEV; - pci_segments_init(); - if ( !iommu_enable && !iommu_intremap ) return; --- a/xen/include/xen/pci.h +++ b/xen/include/xen/pci.h @@ -214,7 +214,6 @@ void setup_hwdom_pci_devices(struct doma int (*handler)(uint8_t devfn, struct pci_dev *pdev)); int pci_release_devices(struct domain *d); -void pci_segments_init(void); int pci_add_segment(u16 seg); const unsigned long *pci_get_ro_map(u16 seg); int pci_add_device(u16 seg, u8 bus, u8 devfn,