Merge tag 'iommu-fixes-v3.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu

Pull two IOMMU fixes from Joerg Roedel:
"The first is an additional fix for the OMAP initialization order issue
and the second patch fixes a possible section mismatch which can lead
to a kernel crash in the AMD IOMMU driver when suspend/resume is used
and the compiler has not inlined the iommu_set_device_table function."

* tag 'iommu-fixes-v3.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
x86/amd: iommu_set_device_table() must not be __init
ARM: OMAP: fix iommu, not mailbox

+4 -4
+1 -2
arch/arm/mach-omap2/mailbox.c
··· 420 platform_driver_unregister(&omap2_mbox_driver); 421 } 422 423 - /* must be ready before omap3isp is probed */ 424 - subsys_initcall(omap2_mbox_init); 425 module_exit(omap2_mbox_exit); 426 427 MODULE_LICENSE("GPL v2");
··· 420 platform_driver_unregister(&omap2_mbox_driver); 421 } 422 423 + module_init(omap2_mbox_init); 424 module_exit(omap2_mbox_exit); 425 426 MODULE_LICENSE("GPL v2");
+2 -1
arch/arm/mach-omap2/omap-iommu.c
··· 150 platform_device_put(omap_iommu_pdev[i]); 151 return err; 152 } 153 - module_init(omap_iommu_init); 154 155 static void __exit omap_iommu_exit(void) 156 {
··· 150 platform_device_put(omap_iommu_pdev[i]); 151 return err; 152 } 153 + /* must be ready before omap3isp is probed */ 154 + subsys_initcall(omap_iommu_init); 155 156 static void __exit omap_iommu_exit(void) 157 {
+1 -1
drivers/iommu/amd_iommu_init.c
··· 275 } 276 277 /* Programs the physical address of the device table into the IOMMU hardware */ 278 - static void __init iommu_set_device_table(struct amd_iommu *iommu) 279 { 280 u64 entry; 281
··· 275 } 276 277 /* Programs the physical address of the device table into the IOMMU hardware */ 278 + static void iommu_set_device_table(struct amd_iommu *iommu) 279 { 280 u64 entry; 281