iommu/amd: Propagate errors from amd_iommu_init_api
authorJoerg Roedel <jroedel@suse.de>
Thu, 28 May 2015 16:41:45 +0000 (18:41 +0200)
committerJoerg Roedel <jroedel@suse.de>
Thu, 11 Jun 2015 07:42:24 +0000 (09:42 +0200)
This function can fail. Propagate any errors back to the
initialization state machine.

Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd_iommu.c
drivers/iommu/amd_iommu_init.c
drivers/iommu/amd_iommu_proto.h

index 96390b9b7842c5d1f5d3808230433a232b2fd741..8bc6f40edf5e437bebd9215a9042948fa65fe501 100644 (file)
@@ -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)
index e4a6e405e35dec35d43c4dbfa0f6545676a71ab1..dbac49cea7a143d3e510025be467e70540d518bb 100644 (file)
@@ -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;
 }
index 72b0fd455e2444cc12a9ee2b678c6b0456c80503..9ed1c43305519842e23d4e8fa88f24bb3911ff34 100644 (file)
@@ -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);