Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Mar 2019 20:15:51 +0000 (UTC)
From:      Tycho Nightingale <tychon@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r345601 - head/sys/x86/iommu
Message-ID:  <201903272015.x2RKFpYA099347@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tychon
Date: Wed Mar 27 20:15:51 2019
New Revision: 345601
URL: https://svnweb.freebsd.org/changeset/base/345601

Log:
  Use the BUS_DMA_NOWRITE flag to expose and create the read-only VT-d
  IOMMU mappings.
  
  Reviewed by:	kib
  Sponsored by:	Dell EMC Isilon
  Differential Revision:	https://reviews.freebsd.org/D19729

Modified:
  head/sys/x86/iommu/busdma_dmar.c

Modified: head/sys/x86/iommu/busdma_dmar.c
==============================================================================
--- head/sys/x86/iommu/busdma_dmar.c	Wed Mar 27 19:59:36 2019	(r345600)
+++ head/sys/x86/iommu/busdma_dmar.c	Wed Mar 27 20:15:51 2019	(r345601)
@@ -527,7 +527,8 @@ dmar_bus_dmamap_load_something1(struct bus_dma_tag_dma
 			gas_flags |= DMAR_GM_CANSPLIT;
 
 		error = dmar_gas_map(domain, &tag->common, size, offset,
-		    DMAR_MAP_ENTRY_READ | DMAR_MAP_ENTRY_WRITE,
+		    DMAR_MAP_ENTRY_READ |
+		    ((flags & BUS_DMA_NOWRITE) == 0 ? DMAR_MAP_ENTRY_WRITE : 0),
 		    gas_flags, ma + idx, &entry);
 		if (error != 0)
 			break;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201903272015.x2RKFpYA099347>