[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 |