|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 09/14] AMD/IOMMU: split amd_iommu_init_one()
On Tue, Jul 16, 2019 at 04:39:10PM +0000, Jan Beulich wrote:
> Mapping the MMIO space and obtaining feature information needs to happen
> slightly earlier, such that for x2APIC support we can set XTEn prior to
> calling amd_iommu_update_ivrs_mapping_acpi() and
> amd_iommu_setup_ioapic_remapping().
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Acked-by: Brian Woods <brian.woods@xxxxxxx>
> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -970,14 +970,6 @@ static void * __init allocate_ppr_log(st
>
> static int __init amd_iommu_init_one(struct amd_iommu *iommu)
> {
> - if ( map_iommu_mmio_region(iommu) != 0 )
> - goto error_out;
> -
> - get_iommu_features(iommu);
> -
> - if ( iommu->features.raw )
> - iommuv2_enabled = 1;
> -
> if ( allocate_cmd_buffer(iommu) == NULL )
> goto error_out;
>
> @@ -1202,6 +1194,23 @@ static bool_t __init amd_sp5100_erratum2
> return 0;
> }
>
> +static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
> +{
> + int rc = alloc_ivrs_mappings(iommu->seg);
> +
> + if ( !rc )
> + rc = map_iommu_mmio_region(iommu);
> + if ( rc )
> + return rc;
> +
> + get_iommu_features(iommu);
> +
> + if ( iommu->features.raw )
> + iommuv2_enabled = true;
> +
> + return 0;
> +}
> +
> int __init amd_iommu_init(void)
> {
> struct amd_iommu *iommu;
> @@ -1232,7 +1241,7 @@ int __init amd_iommu_init(void)
> radix_tree_init(&ivrs_maps);
> for_each_amd_iommu ( iommu )
> {
> - rc = alloc_ivrs_mappings(iommu->seg);
> + rc = amd_iommu_prepare_one(iommu);
> if ( rc )
> goto error_out;
> }
>
--
Brian Woods
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |