Bläddra i källkod

iommu/amd: Propagate errors from amd_iommu_init_api

This function can fail. Propagate any errors back to the
initialization state machine.

Signed-off-by: Joerg Roedel <jroedel@suse.de>
Joerg Roedel 10 år sedan
förälder
incheckning
3a18404cd9
3 ändrade filer med 6 tillägg och 5 borttagningar
  1. 2 2
      drivers/iommu/amd_iommu.c
  2. 3 2
      drivers/iommu/amd_iommu_init.c
  3. 1 1
      drivers/iommu/amd_iommu_proto.h

+ 2 - 2
drivers/iommu/amd_iommu.c

@@ -2840,9 +2840,9 @@ static struct dma_map_ops amd_iommu_dma_ops = {
 	.dma_supported = amd_iommu_dma_supported,
 };
 
-void __init amd_iommu_init_api(void)
+int __init amd_iommu_init_api(void)
 {
-	bus_set_iommu(&pci_bus_type, &amd_iommu_ops);
+	return bus_set_iommu(&pci_bus_type, &amd_iommu_ops);
 }
 
 int __init amd_iommu_init_dma_ops(void)

+ 3 - 2
drivers/iommu/amd_iommu_init.c

@@ -1391,9 +1391,10 @@ static int __init amd_iommu_init_pci(void)
 	for_each_iommu(iommu)
 		iommu_flush_all_caches(iommu);
 
-	amd_iommu_init_api();
+	ret = amd_iommu_init_api();
 
-	print_iommu_info();
+	if (!ret)
+		print_iommu_info();
 
 	return ret;
 }

+ 1 - 1
drivers/iommu/amd_iommu_proto.h

@@ -30,7 +30,7 @@ extern void amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu);
 extern int amd_iommu_init_devices(void);
 extern void amd_iommu_uninit_devices(void);
 extern void amd_iommu_init_notifier(void);
-extern void amd_iommu_init_api(void);
+extern int amd_iommu_init_api(void);
 
 /* Needed for interrupt remapping */
 extern int amd_iommu_prepare(void);