Skip to content

Commit

Permalink
iommu/amd: Move informational prinks out of iommu_enable
Browse files Browse the repository at this point in the history
This function will be called before the PCI subsystem is
initialized. Therefore dev_name doen't work and IOMMU
information can't be printed to the klog as before. Move the
code to print that information to a later point where PCI
initializtion has already happened.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
  • Loading branch information
Joerg Roedel committed Jul 17, 2012
1 parent 23c742d commit 4d121c3
Showing 1 changed file with 27 additions and 17 deletions.
44 changes: 27 additions & 17 deletions drivers/iommu/amd_iommu_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -312,23 +312,6 @@ static void iommu_set_inv_tlb_timeout(struct amd_iommu *iommu, int timeout)
/* Function to enable the hardware */
static void iommu_enable(struct amd_iommu *iommu)
{
static const char * const feat_str[] = {
"PreF", "PPR", "X2APIC", "NX", "GT", "[5]",
"IA", "GA", "HE", "PC", NULL
};
int i;

printk(KERN_INFO "AMD-Vi: Enabling IOMMU at %s cap 0x%hx",
dev_name(&iommu->dev->dev), iommu->cap_ptr);

if (iommu->cap & (1 << IOMMU_CAP_EFR)) {
printk(KERN_CONT " extended features: ");
for (i = 0; feat_str[i]; ++i)
if (iommu_feature(iommu, (1ULL << i)))
printk(KERN_CONT " %s", feat_str[i]);
}
printk(KERN_CONT "\n");

iommu_feature_enable(iommu, CONTROL_IOMMU_EN);
}

Expand Down Expand Up @@ -1096,6 +1079,31 @@ static int iommu_init_pci(struct amd_iommu *iommu)
return pci_enable_device(iommu->dev);
}

static void print_iommu_info(void)
{
static const char * const feat_str[] = {
"PreF", "PPR", "X2APIC", "NX", "GT", "[5]",
"IA", "GA", "HE", "PC"
};
struct amd_iommu *iommu;

for_each_iommu(iommu) {
int i;

pr_info("AMD-Vi: Found IOMMU at %s cap 0x%hx\n",
dev_name(&iommu->dev->dev), iommu->cap_ptr);

if (iommu->cap & (1 << IOMMU_CAP_EFR)) {
pr_info("AMD-Vi: Extended features: ");
for (i = 0; ARRAY_SIZE(feat_str); ++i) {
if (iommu_feature(iommu, (1ULL << i)))
pr_cont(" %s", feat_str[i]);
}
}
pr_cont("\n");
}
}

static int amd_iommu_init_pci(void)
{
struct amd_iommu *iommu;
Expand All @@ -1112,6 +1120,8 @@ static int amd_iommu_init_pci(void)

ret = amd_iommu_init_devices();

print_iommu_info();

return ret;
}

Expand Down

0 comments on commit 4d121c3

Please sign in to comment.