Received: by 2002:ab2:3141:0:b0:1ed:23cc:44d1 with SMTP id i1csp1789744lqg; Mon, 4 Mar 2024 04:05:58 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUd9Km4DFT9OX/p3AS/ZltCidRk0QU2xuH8Dxzw95XWXsHw5OVPb338UE7+t0k3uNfaF5vkSOAjHsGLsAqsF1datxFbRGuOZlXo+k5ewQ== X-Google-Smtp-Source: AGHT+IFaLM+/h49/rUM4poIs4nlVNCDTNPcqwh2bUyeLOjc+mhCjlkYfE9NueNxNP5b+fnpBOIO9 X-Received: by 2002:a17:906:fac9:b0:a3f:9d69:3643 with SMTP id lu9-20020a170906fac900b00a3f9d693643mr4533150ejb.32.1709553958229; Mon, 04 Mar 2024 04:05:58 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709553958; cv=pass; d=google.com; s=arc-20160816; b=MPDjpESelADS01nzcEBXY+kodclxYEkqcBwrIBIWtSSFG1Qe/+IzbpSyl5h7Dt4/I1 MAqsQ9msb9aiiAqp4wapsAbyTuH1Qw3V2zuApiiDMnhDinpZz+EPqgcoDqtGWtjI50/U vKdGVHebsE79SVTr4Mgvc2JfPsyBqRoJ07Ww2P24eHkNBYHjnGBLmAjhPwHIYiK8iPp6 X2ef/1N4+iQTGAgWv58y/hxr+F5Z9RaXAYjGIpl0jJJ3B/RT47HoyQRZLAhehNO7cGxU mPpmXzGZtKAvqRErMnIXZgGz/FQX6XIyouGOBne8NxMo7lX34ERPE3DD9iifj3n1eaEF 1TKw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from; bh=7LMPZLOvapJ2atoXejA3a44ahzhF8IUUyxhe8thfTZs=; fh=7Qd74vAHkmWgvX4FoLzNWkOFwvz+WhB63+y1pNrSTBk=; b=ctSxmNAHGQsD6p+kkMUvaT56kt7aIkBKJDkvflUef1qYygeW9hHNI16EYQxuRPu98S NPtq5DA9n2T4PZ7MxvuBUXBiG8g2zRVGdxRjXPJxef2F4ilEnMbFCIAV+UvdUHxJBrOv RE0BI+BNDuoARXilmKY5rK4DLvzb4fBB0wiXNOdtVydyY6IX9Io0ebWcXWcKB6URTL9N MckKOVoMDMy1dNvu2KWP86LRw+k5zYw+xLMfDOJhp2LLGlwAF0GSAQUXFpcbhioaf45b 6KncMcX4pZO+NihWWlAqKOZgJKIzWTzj9ijDF+Ueuyv4mpGikmTv6wYr6LVNHn/qrYnW ZE0A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=arm.com dmarc=pass fromdomain=arm.com); spf=pass (google.com: domain of linux-kernel+bounces-90541-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-90541-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id m2-20020a170906258200b00a439597434dsi3900798ejb.1000.2024.03.04.04.05.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Mar 2024 04:05:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-90541-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=arm.com dmarc=pass fromdomain=arm.com); spf=pass (google.com: domain of linux-kernel+bounces-90541-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-90541-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com 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 am.mirrors.kernel.org (Postfix) with ESMTPS id F27A91F2280E for ; Mon, 4 Mar 2024 12:05:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BF3273BB28; Mon, 4 Mar 2024 12:05:50 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AF5D03A8E1 for ; Mon, 4 Mar 2024 12:05:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709553950; cv=none; b=tJdc2xGo4ozsAbag/ipzBXiGDJx2Ysn2ZA28BpoepXlC4YXfAJMa78qZS+MavcTwI8qGT4rLP5K6r6HnooUu6YRbSwZykbHCULkKZzaFhHEOvokZsBuJ1olWdgSwuz/TMFa+vRo6HULVfcf3LnnXYoML3XZy+c1KH1O1lTyzfv8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709553950; c=relaxed/simple; bh=KAwUc2Kbgvw1J573Drd3ZQTYc3qRXADwMtlZMDBhq2Q=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=NGCQHOUXIMSxGoblIOBp5MnlD+pvUBn8AXTTE8milBuNcDDw2+Yl6Czc6WFScL/7mmcACPlC8We9sy1rnl86S8xxjodmsi66W+MSBXlCHr81fOqdqxo8B+/3mzIcnrlnQAYy1pbdj6jznCYFS/5Mv8Nl7n/pp5IoOh7Hbl9nEI4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E22411FB; Mon, 4 Mar 2024 04:06:24 -0800 (PST) Received: from e121345-lin.cambridge.arm.com (e121345-lin.cambridge.arm.com [10.1.196.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 0BC463F738; Mon, 4 Mar 2024 04:05:46 -0800 (PST) From: Robin Murphy To: joro@8bytes.org Cc: iommu@lists.linux.dev, linux-kernel@vger.kernel.org, will@kernel.org, mhklinux@outlook.com, petr@tesarici.cz, hch@lst.de Subject: [PATCH] iommu/dma: Document min_align_mask assumption Date: Mon, 4 Mar 2024 12:05:42 +0000 Message-Id: X-Mailer: git-send-email 2.39.2.101.g768bb238c484.dirty Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit iommu-dma does not explicitly reference min_align_mask since we already assume that that will be less than or equal to any typical IOVA granule. We wouldn't realistically expect to see the case where it is larger, and that would be non-trivial to support, however for the sake of reasoning (particularly around the interaction with SWIOTLB), let's clearly enforce the assumption. Signed-off-by: Robin Murphy --- drivers/iommu/dma-iommu.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index 50ccc4f1ef81..b58f5a3311c3 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -859,6 +859,11 @@ static dma_addr_t __iommu_dma_map(struct device *dev, phys_addr_t phys, iommu_deferred_attach(dev, domain)) return DMA_MAPPING_ERROR; + /* If anyone ever wants this we'd need support in the IOVA allocator */ + if (dev_WARN_ONCE(dev, dma_get_min_align_mask(dev) > iova_mask(iovad), + "Unsupported alignment constraint\n")) + return DMA_MAPPING_ERROR; + size = iova_align(iovad, size + iova_off); iova = iommu_dma_alloc_iova(domain, size, dma_mask, dev); -- 2.39.2.101.g768bb238c484.dirty