VT-d: move {,un}map_vtd_domain_page()

..., thus allowing them to become static. There's nothing x86-specific
about these functions anyway.

Since only the "iommu_inclusive_mapping" parameter declaration would be
left in the file, move that as well. There's nothing VT-d specific about
it (anymore?): "dom0-iommu=map-inclusive" is similarly generic, and
documentation also doesn't say anything.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
Jan Beulich committed 2026-01-08 08:07:19 +01:00
1 parent 15b90f90b4
commit 227475c278
6 files changed
+19 -54

No files matched your search

+1 -1
View File
@@ -1651,7 +1651,7 @@ Specify the timeout of the device IOTLB invalidation in milliseconds.
By default, the timeout is 1000 ms. When you see error 'Queue invalidate
wait descriptor timed out', try increasing this value.
### iommu_inclusive_mapping
### iommu_inclusive_mapping (x86)
> `= <boolean>`
**WARNING: This command line option is deprecated, and superseded by
-2
View File
@@ -1,5 +1,3 @@
obj-$(CONFIG_X86) += x86/
obj-y += iommu.o
obj-y += dmar.o
obj-y += utils.o
+11 -2
View File
@@ -21,6 +21,7 @@
#define DRIVERS__PASSTHROUGH__VTD__EXTERN_H
#include "dmar.h"
#include <xen/domain_page.h>
#include <xen/keyhandler.h>
#define VTDPREFIX "[VT-D]"
@@ -68,8 +69,6 @@ struct acpi_rhsa_unit *drhd_to_rhsa(const struct acpi_drhd_unit *drhd);
uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node);
void free_pgtable_maddr(u64 maddr);
void *map_vtd_domain_page(u64 maddr);
void unmap_vtd_domain_page(const void *va);
int domain_context_mapping_one(struct domain *domain, struct vtd_iommu *iommu,
uint8_t bus, uint8_t devfn,
const struct pci_dev *pdev, domid_t domid,
@@ -79,6 +78,16 @@ int domain_context_unmap_one(struct domain *domain, struct vtd_iommu *iommu,
int cf_check intel_iommu_get_reserved_device_memory(
iommu_grdm_t *func, void *ctxt);
static inline void *map_vtd_domain_page(paddr_t maddr)
{
return map_domain_page(_mfn(paddr_to_pfn(maddr)));
}
static inline void unmap_vtd_domain_page(const void *va)
{
unmap_domain_page(va);
}
unsigned int cf_check io_apic_read_remap_rte(
unsigned int apic, unsigned int reg);
void cf_check io_apic_write_remap_rte(
-1
View File
@@ -1 +0,0 @@
obj-y += vtd.o
-48
View File
@@ -1,48 +0,0 @@
/*
* Copyright (c) 2008, Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; If not, see <http://www.gnu.org/licenses/>.
*
* Copyright (C) Allen Kay <allen.m.kay@intel.com>
* Copyright (C) Weidong Han <weidong.han@intel.com>
*/
#include <xen/param.h>
#include <xen/sched.h>
#include <xen/softirq.h>
#include <xen/domain_page.h>
#include <asm/paging.h>
#include <xen/iommu.h>
#include <xen/irq.h>
#include <xen/numa.h>
#include <asm/fixmap.h>
#include "../iommu.h"
#include "../dmar.h"
#include "../vtd.h"
#include "../extern.h"
/*
* iommu_inclusive_mapping: when set, all memory below 4GB is included in dom0
* 1:1 iommu mappings except xen and unusable regions.
*/
boolean_param("iommu_inclusive_mapping", iommu_hwdom_inclusive);
void *map_vtd_domain_page(u64 maddr)
{
return map_domain_page(_mfn(paddr_to_pfn(maddr)));
}
void unmap_vtd_domain_page(const void *va)
{
unmap_domain_page(va);
}
+7
View File
@@ -19,6 +19,7 @@
#include <xen/paging.h>
#include <xen/guest_access.h>
#include <xen/event.h>
#include <xen/param.h>
#include <xen/softirq.h>
#include <xen/vm_event.h>
#include <xsm/xsm.h>
@@ -36,6 +37,12 @@ bool __initdata iommu_superpages = true;
enum iommu_intremap __read_mostly iommu_intremap = iommu_intremap_full;
/*
* iommu_inclusive_mapping: When set, all memory below 4GB is included in dom0
* 1:1 iommu mappings except xen and unusable regions.
*/
boolean_param("iommu_inclusive_mapping", iommu_hwdom_inclusive);
#ifdef CONFIG_PV
/* Possible unfiltered LAPIC/MSI messages from untrusted sources? */
bool __read_mostly untrusted_msi;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.