From nobody Mon Feb 9 04:33:12 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1754575840; cv=none; d=zohomail.com; s=zohoarc; b=llqx/jCilBVVVp9C619WeQPUDn6F0Q3IFTvggNzBVuB2gy0ZzfnPDUlEaNe32m2HfzQCJGzFyrZ1FGY6ItDLOHapDVsj6mcm2chgCkd8lGVjLtmDkT5l99tvgSsoWAOPxC3gHqw405w94Fv5n2edQZAu73gvYC1zbYdWO8J7BQQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754575840; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qcWRDASZvWnS76y/EF4UrLjGb0SZE4/xgnO6tscPnUY=; b=RFT+G8uX1gYufN3cWN9vM780XQ/el9PqYSmTaYML9E8NoNSSvQ78bK5hTWTm3AYJh760WoPB6dNkBJIGHMPwUdH77ofj0X8ZvshIBvR6FJeoTh0Xfbl8kyD9pkwUveBQO5D6oRxLkl0k1OVeftgGYTRdT6Af4yWEqILih3MAKJE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1754575840970608.4403741177604; Thu, 7 Aug 2025 07:10:40 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1073123.1436038 (Exim 4.92) (envelope-from ) id 1uk1Ju-0005tT-SN; Thu, 07 Aug 2025 14:10:14 +0000 Received: by outflank-mailman (output) from mailman id 1073123.1436038; Thu, 07 Aug 2025 14:10:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uk1Ju-0005tM-Pm; Thu, 07 Aug 2025 14:10:14 +0000 Received: by outflank-mailman (input) for mailman id 1073123; Thu, 07 Aug 2025 14:10:13 +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 1uk1Jt-0005tG-7s for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 14:10:13 +0000 Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [2a00:1450:4864:20::52b]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 38871493-7398-11f0-b898-0df219b8e170; Thu, 07 Aug 2025 16:10:07 +0200 (CEST) Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-605b9488c28so1851994a12.2 for ; Thu, 07 Aug 2025 07:10:06 -0700 (PDT) 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-615a8fe7ac0sm11716313a12.35.2025.08.07.07.10.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 07 Aug 2025 07:10:05 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 38871493-7398-11f0-b898-0df219b8e170 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1754575806; x=1755180606; darn=lists.xenproject.org; h=content-transfer-encoding:autocrypt:cc:content-language:to:subject :from:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=qcWRDASZvWnS76y/EF4UrLjGb0SZE4/xgnO6tscPnUY=; b=Ki8hraSwoADRHVGJmXqdhb8o4cfUAdylLA2JAvj4LbbhBMG7M3uYh1yblBuvwKYmcQ 2ngC+gREEwS66jUGL5vXrdlb4xMsLfFlGbi6DP8JSN9hmTjqzeA1tV8wovkh8RCnHGf9 JDDcsYt8rSR0ShrFXBUq0GZKrIXcwioOwtuhxC56nTay+iBcJt5hpkyVmONCVYDYw6n/ k5DVh+1hGz/48Kv3J5j52cP9sZGlajod2Zv9Hz66ThVj1TFJAci7K2Anvi5Jo96qBGff SmgbJXST2374ga/ofEB3eTPObEtgv0sfwkQGzgb5qI0TdXKgFeK86Vbf5sl4euE7KDnQ xt0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754575806; x=1755180606; h=content-transfer-encoding:autocrypt:cc:content-language:to:subject :from:user-agent:mime-version:date:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=qcWRDASZvWnS76y/EF4UrLjGb0SZE4/xgnO6tscPnUY=; b=QA/QdeuISne024TJ6fd1ABOXcnlrAG5cOu4x3YyM+fTqJ9I0HtVmikW8jED+5uaCGo s/sOoS1GSzpaNkgDptaeERyr5USwHRVcfDJCP8/dQOjrwbIP1/uJH1yBNdv0vDeIq5Lp A/hkk08kmHzB7Tjf1yD9E0M9gTVLv0tCPscRJa0jBXT2Ie6vczFdVsGG3+lUMh4sroOi fG9lsbUN3eH6mxm4dvadDZjUBHCrkNmbCS49KpX/HXgyiYKeT+WYgUCS6+nv3QZCVd3k xFZOZ7KrOvCJ2c1Eg9G23ZCQzXBGv4A5PC9/hICYoMDCCNo/ujGRfcti+qwda5CNIPcZ Hu0A== X-Gm-Message-State: AOJu0YxJ6vgmSegAxBatgxICMIfWUAMllU7XONiRtLUhtgZ0xIMl0hKm TM1ZYTywRwuGn9JXcqMQuT/9LP6URlRFpdk/bFCxTICfdkdqDZ0uXRWMtZt30O1daEcYp2B5LTJ gFp4= X-Gm-Gg: ASbGncuC+ea5fnG/Yp69gHVgXBSC7W5hlEn+qAW9QQANCE1JH1cUG5zPUDQU31BsJnv 7e81Ibv5oVpZjDIa0HqDX6ILOgoaZEsQZanoQFhMRiCU/KXVcNQpTs0/goJFTZqFddhXU3wTAwo jFVB5HVVhVPuPmDiBTaJrXrZGwsRVOUVFi1CjVpc8Rf5gJOo0nGLQFELEbxBZU90/fnpgazuJpu gZkchPjJp79uWdTsC2JDB1WkC2hBmXmzt02p4ahynpQBUnGFmHEXvWND2uTcc8KXXN9CGbfAl4t wfFJRA3Oucs/o8n7TrNH/AmTreejhtD7Y3KIRVL8wOTXduMlMbnFAtsZ5Euoly4fJk2YCfFFZh3 ES3nep3nPXO2mJHCClg727b7F1gyzuk/QEIqlIzTlQfCBH165tK9QMvisSli4sNaT+5amaQYsG8 HRuAcfWzQ= X-Google-Smtp-Source: AGHT+IFxaIGaT+GwUZ/iUH9kD/9Jaf8riy+xHQAkoP26K7bro5cZuJxOtBxCjp9iwjy/Z5cTbkCFbA== X-Received: by 2002:a05:6402:4409:b0:615:aeb8:e4da with SMTP id 4fb4d7f45d1cf-61795fb97e8mr5140832a12.0.1754575806292; Thu, 07 Aug 2025 07:10:06 -0700 (PDT) Message-ID: <28cadeda-613c-471d-b0d3-1709004a75f8@suse.com> Date: Thu, 7 Aug 2025 16:10:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Jan Beulich Subject: [PATCH] VT-d: check bus_to_context_maddr()'s return value To: "xen-devel@lists.xenproject.org" Content-Language: en-US Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= 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 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1754575865140124100 Content-Type: text/plain; charset="utf-8" The function returning zero is an error indication; we shouldn't try to map MFN 0 and then treat that page as a context table. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- Whether to really have the ASSERT_UNREACHABLE() on the unmap path I'm not quite sure about: According to my checking, the early bailing from intel_iommu_remove_device() is what covers the case where an earlier mapping attempt may have failed; in all other cases a mapping was previously established. IOW while it should indeed be impossible to hit that path, there's not really a problem if it was taken: It would then be no different from finding a non-present context entry. --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -1499,6 +1499,11 @@ int domain_context_mapping_one( ASSERT(pcidevs_locked()); spin_lock(&iommu->lock); maddr =3D bus_to_context_maddr(iommu, bus); + if ( !maddr ) + { + spin_unlock(&iommu->lock); + return -ENOMEM; + } context_entries =3D (struct context_entry *)map_vtd_domain_page(maddr); context =3D &context_entries[devfn]; old =3D (lctxt =3D *context).full; @@ -1853,6 +1858,12 @@ int domain_context_unmap_one( spin_lock(&iommu->lock); =20 maddr =3D bus_to_context_maddr(iommu, bus); + if ( !maddr ) + { + ASSERT_UNREACHABLE(); + spin_unlock(&iommu->lock); + return 0; + } context_entries =3D (struct context_entry *)map_vtd_domain_page(maddr); context =3D &context_entries[devfn];