From nobody Tue Dec 2 00:26:03 2025 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) (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 AB2F731355F for ; Mon, 24 Nov 2025 17:10:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=210.118.77.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764004223; cv=none; b=gPDgOkhRyb9PCTbgXxFWOSQGxhZzhszYxk0pEeXOSIlCTlcVm1pSYG5J6SEEf48J09iVTdxMBwOPL7kKr15VAa44GaVBwBH9+0ot3LAvfTDlfU3tcmQKEACnzo7NrJRFq2wo7R+MFOrYFkNaFMjJ8mYZ9N8ZyhX8upUKoeJJJhU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764004223; c=relaxed/simple; bh=TvGQEPehomkhpMiEMdWeXwbg9bARrQ64w7tg479QubU=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type: References; b=HXb8kAtmboHCxXBPPTys/hRfnQw7IsBe+g0WXv1p2GU8CSIF1IXi8zR6dHMhS1Vt2lvjwVKZyQ+UG0Mxq6nR/vkGV4Sk1GoqVebclNHUTFLgI2D134Z/4QcGHckzD/KfMmx81PVBG3B3Dhk6ngHZ55UUQQ5E955KdI4iOc+C4Z0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=bunUVwGO; arc=none smtp.client-ip=210.118.77.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="bunUVwGO" Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20251124171014euoutp023ce6a0544836ad0331ac9431513e0cf3~7AHyoj0gN2635626356euoutp02N for ; Mon, 24 Nov 2025 17:10:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20251124171014euoutp023ce6a0544836ad0331ac9431513e0cf3~7AHyoj0gN2635626356euoutp02N DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1764004214; bh=GuOlQwatLAHwLUXbJGT0mX7CgwjO6mRY7JNcewUFvkI=; h=From:To:Cc:Subject:Date:References:From; b=bunUVwGOT+BuAD0GEkNQ5DGbhCero7md8fLrVskQdk6PNdht2i4noQhJi9U7W0+j4 gkURzblOqlK98TE260KtWx85uFVwsI2oT0z4skpW7bwb+qrNXsi2Ol5p2lUiFXhxc1 2Ja9Ake5qiUeTNZCHPiw6CKM/mQWzsTVp/Kn1qdk= Received: from eusmtip1.samsung.com (unknown [203.254.199.221]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20251124171014eucas1p21d3a0f2c10b43bfdb7861ee804f09951~7AHyYB02T0903309033eucas1p24; Mon, 24 Nov 2025 17:10:14 +0000 (GMT) Received: from AMDC4653.digital.local (unknown [106.120.51.32]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20251124171013eusmtip1c9e573668ca8a10d4f391c71b45692c7~7AHx_GDoU1613916139eusmtip1B; Mon, 24 Nov 2025 17:10:13 +0000 (GMT) From: Marek Szyprowski To: iommu@lists.linux.dev, linux-kernel@vger.kernel.org Cc: Marek Szyprowski , Robin Murphy , Joerg Roedel , Will Deacon , Leon Romanovsky , Jason Gunthorpe Subject: [PATCH] iommu/dma: add missing support for DMA_ATTR_MMIO for dma_iova_unlink() Date: Mon, 24 Nov 2025 18:09:55 +0100 Message-Id: <20251124170955.3884351-1-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CMS-MailID: 20251124171014eucas1p21d3a0f2c10b43bfdb7861ee804f09951 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20251124171014eucas1p21d3a0f2c10b43bfdb7861ee804f09951 X-EPHeader: CA X-CMS-RootMailID: 20251124171014eucas1p21d3a0f2c10b43bfdb7861ee804f09951 References: Commit c288d657dd51 added support for DMA_ATTR_MMIO attribute in the dma_iova_link() code path, but missed that the CPU cache is being also touched in the dma_iova_unlink() path. Fix this. Fixes: c288d657dd51 ("iommu/dma: implement DMA_ATTR_MMIO for dma_iova_link(= ).") Signed-off-by: Marek Szyprowski Reviewed-by: Jason Gunthorpe Reviewed-by: Leon Romanovsky --- drivers/iommu/dma-iommu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index e52d19d2e833..c92088855450 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -2008,7 +2008,7 @@ static void iommu_dma_iova_unlink_range_slow(struct d= evice *dev, end - addr, iovad->granule - iova_start_pad); =20 if (!dev_is_dma_coherent(dev) && - !(attrs & DMA_ATTR_SKIP_CPU_SYNC)) + !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO))) arch_sync_dma_for_cpu(phys, len, dir); =20 swiotlb_tbl_unmap_single(dev, phys, len, dir, attrs); @@ -2032,7 +2032,8 @@ static void __iommu_dma_iova_unlink(struct device *de= v, size_t unmapped; =20 if ((state->__size & DMA_IOVA_USE_SWIOTLB) || - (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))) + (!dev_is_dma_coherent(dev) && + !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))) iommu_dma_iova_unlink_range_slow(dev, addr, size, dir, attrs); =20 iommu_iotlb_gather_init(&iotlb_gather); --=20 2.34.1