struct usnic_ib_vf *vf;
        enum usnic_vnic_res_type res_type;
 
+       if (!device_iommu_mapped(&pdev->dev)) {
+               usnic_err("IOMMU required but not present or enabled.  USNIC QPs will not function w/o enabling IOMMU\n");
+               return -EPERM;
+       }
+
        vf = kzalloc(sizeof(*vf), GFP_KERNEL);
        if (!vf)
                return -ENOMEM;
 
        printk_once(KERN_INFO "%s", usnic_version);
 
-       err = usnic_uiom_init(DRV_NAME);
-       if (err) {
-               usnic_err("Unable to initialize umem with err %d\n", err);
-               return err;
-       }
-
        err = pci_register_driver(&usnic_ib_pci_driver);
        if (err) {
                usnic_err("Unable to register with PCI\n");
 
 {
        kfree(devs);
 }
-
-int usnic_uiom_init(char *drv_name)
-{
-       if (!iommu_present(&pci_bus_type)) {
-               usnic_err("IOMMU required but not present or enabled.  USNIC QPs will not function w/o enabling IOMMU\n");
-               return -EPERM;
-       }
-
-       return 0;
-}
 
                                                unsigned long addr, size_t size,
                                                int access, int dmasync);
 void usnic_uiom_reg_release(struct usnic_uiom_reg *uiomr);
-int usnic_uiom_init(char *drv_name);
 #endif /* USNIC_UIOM_H_ */