From: Jan Beulich Date: Tue, 2 Jul 2019 11:27:39 +0000 (+0200) Subject: AMD/IOMMU: restrict feature logging X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~1969 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=93ef224d63f9f04a0897d64981c619eb4816c0d3;p=xen.git AMD/IOMMU: restrict feature logging The common case is all IOMMUs having the same features. Log them only for the first IOMMU, or for any that have a differing feature set. Requested-by: Andrew Cooper Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper Acked-by: Brian Woods --- diff --git a/xen/drivers/passthrough/amd/iommu_detect.c b/xen/drivers/passthrough/amd/iommu_detect.c index 3c5d4de1a3..28282e47ac 100644 --- a/xen/drivers/passthrough/amd/iommu_detect.c +++ b/xen/drivers/passthrough/amd/iommu_detect.c @@ -62,6 +62,7 @@ void __init get_iommu_features(struct amd_iommu *iommu) { u32 low, high; int i = 0 ; + const struct amd_iommu *first; static const char *__initdata feature_str[] = { "- Prefetch Pages Command", "- Peripheral Page Service Request", @@ -89,6 +90,11 @@ void __init get_iommu_features(struct amd_iommu *iommu) iommu->features = ((u64)high << 32) | low; + /* Don't log the same set of features over and over. */ + first = list_first_entry(&amd_iommu_head, struct amd_iommu, list); + if ( iommu != first && iommu->features == first->features ) + return; + printk("AMD-Vi: IOMMU Extended Features:\n"); while ( feature_str[i] )