|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2/6] xen/iommu: Move dom0 setup code out of __init
This is required to allow the hardware domain to be built by dom0 after
the __init sections have been discarded.
Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
Cc: Keir Fraser <keir@xxxxxxx>
Cc: Jan Beulich <jbeulich@xxxxxxxx>
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
Cc: Xiantao Zhang <xiantao.zhang@xxxxxxxxx>
---
xen/arch/x86/setup.c | 4 ++--
xen/drivers/passthrough/amd/pci_amd_iommu.c | 4 ++--
xen/drivers/passthrough/iommu.c | 6 +++---
xen/drivers/passthrough/pci.c | 4 ++--
xen/drivers/passthrough/vtd/iommu.c | 6 +++---
xen/drivers/passthrough/vtd/x86/vtd.c | 4 ++--
6 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index b49256d..3a4f69c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1445,7 +1445,7 @@ void arch_get_xen_caps(xen_capabilities_info_t *info)
}
}
-int __init xen_in_range(unsigned long mfn)
+int xen_in_range(unsigned long mfn)
{
paddr_t start, end;
int i;
@@ -1453,7 +1453,7 @@ int __init xen_in_range(unsigned long mfn)
enum { region_s3, region_text, region_bss, nr_regions };
static struct {
paddr_t s, e;
- } xen_regions[nr_regions] __initdata;
+ } xen_regions[nr_regions];
/* initialize first time */
if ( !xen_regions[0].s )
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c
b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index cf67494..64d4ec4 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -169,7 +169,7 @@ static void amd_iommu_setup_domain_device(
}
}
-static int __init amd_iommu_setup_dom0_device(u8 devfn, struct pci_dev *pdev)
+static int amd_iommu_setup_dom0_device(u8 devfn, struct pci_dev *pdev)
{
int bdf = PCI_BDF2(pdev->bus, pdev->devfn);
struct amd_iommu *iommu = find_iommu_for_device(pdev->seg, bdf);
@@ -280,7 +280,7 @@ static int amd_iommu_domain_init(struct domain *d)
return 0;
}
-static void __init amd_iommu_dom0_init(struct domain *d)
+static void amd_iommu_dom0_init(struct domain *d)
{
unsigned long i;
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 16c99db..6bd8abe 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -45,7 +45,7 @@ custom_param("iommu", parse_iommu_param);
bool_t __initdata iommu_enable = 1;
bool_t __read_mostly iommu_enabled;
bool_t __read_mostly force_iommu;
-bool_t __initdata iommu_dom0_strict;
+bool_t __read_mostly iommu_dom0_strict;
bool_t __read_mostly iommu_verbose;
bool_t __read_mostly iommu_workaround_bios_bug;
bool_t __read_mostly iommu_passthrough;
@@ -130,7 +130,7 @@ int iommu_domain_init(struct domain *d)
return hd->platform_ops->init(d);
}
-static __init void check_dom0_pvh_reqs(struct domain *d)
+static void check_dom0_pvh_reqs(struct domain *d)
{
if ( !iommu_enabled )
panic("Presently, iommu must be enabled for pvh dom0\n");
@@ -141,7 +141,7 @@ static __init void check_dom0_pvh_reqs(struct domain *d)
iommu_dom0_strict = 1;
}
-void __init iommu_dom0_init(struct domain *d)
+void iommu_dom0_init(struct domain *d)
{
struct hvm_iommu *hd = domain_hvm_iommu(d);
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index c5c8344..fdc7ee2 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -892,7 +892,7 @@ static void setup_one_dom0_device(const struct setup_dom0
*ctxt,
PCI_SLOT(devfn) == PCI_SLOT(pdev->devfn) );
}
-static int __init _setup_dom0_pci_devices(struct pci_seg *pseg, void *arg)
+static int _setup_dom0_pci_devices(struct pci_seg *pseg, void *arg)
{
struct setup_dom0 *ctxt = arg;
int bus, devfn;
@@ -928,7 +928,7 @@ static int __init _setup_dom0_pci_devices(struct pci_seg
*pseg, void *arg)
return 0;
}
-void __init setup_dom0_pci_devices(
+void setup_dom0_pci_devices(
struct domain *d, int (*handler)(u8 devfn, struct pci_dev *))
{
struct setup_dom0 ctxt = { .d = d, .handler = handler };
diff --git a/xen/drivers/passthrough/vtd/iommu.c
b/xen/drivers/passthrough/vtd/iommu.c
index cea70a1..e2bf5cb 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1253,7 +1253,7 @@ static int intel_iommu_domain_init(struct domain *d)
return 0;
}
-static void __init intel_iommu_dom0_init(struct domain *d)
+static void intel_iommu_dom0_init(struct domain *d)
{
struct acpi_drhd_unit *drhd;
@@ -1961,7 +1961,7 @@ static int intel_iommu_remove_device(u8 devfn, struct
pci_dev *pdev)
return domain_context_unmap(pdev->domain, devfn, pdev);
}
-static int __init setup_dom0_device(u8 devfn, struct pci_dev *pdev)
+static int setup_dom0_device(u8 devfn, struct pci_dev *pdev)
{
int err;
@@ -2109,7 +2109,7 @@ static int init_vtd_hw(void)
return 0;
}
-static void __init setup_dom0_rmrr(struct domain *d)
+static void setup_dom0_rmrr(struct domain *d)
{
struct acpi_rmrr_unit *rmrr;
u16 bdf;
diff --git a/xen/drivers/passthrough/vtd/x86/vtd.c
b/xen/drivers/passthrough/vtd/x86/vtd.c
index f271a42..cbbf278 100644
--- a/xen/drivers/passthrough/vtd/x86/vtd.c
+++ b/xen/drivers/passthrough/vtd/x86/vtd.c
@@ -36,7 +36,7 @@
* iommu_inclusive_mapping: when set, all memory below 4GB is included in dom0
* 1:1 iommu mappings except xen and unusable regions.
*/
-static bool_t __initdata iommu_inclusive_mapping = 1;
+static bool_t iommu_inclusive_mapping = 1;
boolean_param("iommu_inclusive_mapping", iommu_inclusive_mapping);
void *map_vtd_domain_page(u64 maddr)
@@ -107,7 +107,7 @@ void hvm_dpci_isairq_eoi(struct domain *d, unsigned int
isairq)
spin_unlock(&d->event_lock);
}
-void __init iommu_set_dom0_mapping(struct domain *d)
+void iommu_set_dom0_mapping(struct domain *d)
{
unsigned long i, j, tmp, top;
--
1.8.5.3
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |