From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.202]) (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 915B43B1ECD for ; Mon, 1 Jun 2026 13:42:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780321343; cv=none; b=Uk30ItMn63u63kNnsm5J/FueYXTBpjgqwplEPG9j0EW24Z30ZULIz3Lm7NC3ZWkByL3QbPV66dDXbnQluNl0HOjCoq9kaWWpDEmhIHM7UpbxgsOvQ7jlQyOozwZl2zkSUt1O53+x+jbZvD5d2L9LpDnE0uvfRy0AEZSlOQTdpis= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780321343; c=relaxed/simple; bh=auMnztirMjgLsVdaqQpnSuNWy8GRXz3WqB05wPcZf6k=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=KpNi6t1p9MimbZzG84aAxWMav8C0r+CK+n29+zrdoZbm3FUSznJUEJ9KclE8ZtbKbqW4EQhHy1xW8iPpx7HFpkZMmxBHiQTHQnTLgAJeSGuI4lPvGhhhdiqA4hUplphGz0RZcCBcW28rkdHJaGAj6bBLuiTgDC2ssZGT9jAaJ7Y= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--praan.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=hQmGk23B; arc=none smtp.client-ip=209.85.215.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--praan.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="hQmGk23B" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-c85a2c129b3so735933a12.1 for ; Mon, 01 Jun 2026 06:42:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1780321341; x=1780926141; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=7R6BZcslBAGGRXzQms4jp3f5RHV26tlAI7OzQzhdeIE=; b=hQmGk23BcpWUBPxfvnZy7P2eoVl05awEdLzS9CvorwM7aMoBOHBfg3GKYBjTrtJmjX cg2f8nVo12qfQHvCKNAoAxz1EMZbAHjewsHf7cXLpqIWfqkc+YzGtkplHiB9PEjpwq/0 Mh4HxfbCIale0w2ADxwUWa4xtzyH11ELrVxOI6ZuyPleKnV9iSumH6OKwGud9E+rQ0/9 W9mnkVC65UR65bqKW7EjyyJM5BAZW6Gw3RSUE/ZRIvNhY+YUYWTQGn7rZVin/XP1+EAw Q+725GT3e7Jfs8CY0akY+h4Li4sD4wKBfxCEwr9N8Jcsyna3K7iqQHI6K8LqOGZn3/8x dTOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780321341; x=1780926141; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7R6BZcslBAGGRXzQms4jp3f5RHV26tlAI7OzQzhdeIE=; b=JS3OMwBn+VgWOIVgnWkegr+z6K9pHOkp2eXnICKrEk8O/+qFLQfnLr6PrX2iXrgrHJ onxfSUJDV7Qvy+XHORZc/Li4kCEBco1U2iu8Zrsluhd8njQZItlCU/jWfPEbQsoQRqg8 oz/MApTTYK42a5iXHvH8AAIjqIxIxqeJ78FwFeRV33XwbmfeCE+hJ3dKHGcYyLFucm+g ddHMDBbeYSa97IXeBd+s5bE6/JhfDk9hktkCqQFTGGdPSsV9wL/rU83g/OFNl7Me9dTv 9xIj00slbUXkpUwFD6KcwOmCpUIQN6Y4+JzwWyinQCU3DLCOEYZzto2+LWvqoRE3Xjny fz0g== X-Forwarded-Encrypted: i=1; AFNElJ/KWvvDzOuq4yCPSgXViV8HAiVe4Q3Ut9m6XPH3gaPxRyWvy3prKq8SDrRjR0HuqQ0l4bza5US9tXMa9wI=@vger.kernel.org X-Gm-Message-State: AOJu0YwHeVZLuXzv/anrXqsNXldkQanFJ+RC/Mg5ZYxTkIGqrTg+CDb6 w4vVRCN4oxbwyrVcjquxIomcGtHtIuopufbHidhjAD1FWEnQQxqYh9EUiJLdjEZSkwn/FrCkgT+ Y2g== X-Received: from pgbgc5.prod.google.com ([2002:a05:6a02:4b85:b0:c85:80d8:9229]) (user=praan job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:8213:b0:3b3:f46:1f0a with SMTP id adf61e73a8af0-3b427f5bd3cmr12362565637.42.1780321340582; Mon, 01 Jun 2026 06:42:20 -0700 (PDT) Date: Mon, 1 Jun 2026 13:42:03 +0000 In-Reply-To: <20260601134204.2150602-1-praan@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260601134204.2150602-1-praan@google.com> X-Mailer: git-send-email 2.54.0.823.g6e5bcc1fc9-goog Message-ID: <20260601134204.2150602-6-praan@google.com> Subject: [PATCH 5/6] iommu/amd: Fail probe on ATS configuration failure From: Pranjal Shrivastava To: iommu@lists.linux.dev, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Joerg Roedel , Suravee Suthikulpanit , Vasant Hegde , Ankit Soni , Jason Gunthorpe , Bjorn Helgaas , Samiullah Khawaja , Pranjal Shrivastava Content-Type: text/plain; charset="UTF-8" Update the driver to call pci_prepare_ats() after checking if pci_ats_supported() and fail the probe_device if pci_prepare_ats() returns an error. Additionally, update pdev_enable_cap_ats() to WARN_ON() a failure in pci_enable_ats(). Signed-off-by: Pranjal Shrivastava --- drivers/iommu/amd/iommu.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 4ef6024c5a4e..783f53cb8599 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -566,10 +566,17 @@ static inline int pdev_enable_cap_ats(struct pci_dev *pdev) if (amd_iommu_iotlb_sup && (dev_data->flags & AMD_IOMMU_DEVICE_FLAG_ATS_SUP)) { ret = pci_enable_ats(pdev, PAGE_SHIFT); - if (!ret) { - dev_data->ats_enabled = 1; - dev_data->ats_qdep = pci_ats_queue_depth(pdev); - } + + /* + * pci_enable_ats() should not fail here because earlier + * checks have already verified support & config. + */ + if (WARN_ON(ret)) + return ret; + + dev_data->ats_enabled = 1; + dev_data->ats_qdep = pci_ats_queue_depth(pdev); + ret = 0; } return ret; @@ -2514,8 +2521,17 @@ static struct iommu_device *amd_iommu_probe_device(struct device *dev) else dev_data->max_irqs = MAX_IRQS_PER_TABLE_512; - if (dev_is_pci(dev)) - pci_prepare_ats(to_pci_dev(dev), PAGE_SHIFT); + if (dev_is_pci(dev)) { + struct pci_dev *pdev = to_pci_dev(dev); + + if (pci_ats_supported(pdev)) { + ret = pci_prepare_ats(pdev, PAGE_SHIFT); + if (ret) { + iommu_dev = ERR_PTR(ret); + goto out_err; + } + } + } return iommu_dev; -- 2.54.0.823.g6e5bcc1fc9-goog