Without this patch only -ENOTSUPP is handled, but there are
other possible errors. Handle them too.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
iommu = amd_iommu_rlookup_table[devid];
ret = iommu_init_device(dev);
- if (ret == -ENOTSUPP) {
+ if (ret) {
+ if (ret != -ENOTSUPP)
+ pr_err("Failed to initialize device %s - trying to proceed anyway\n",
+ dev_name(dev));
+
iommu_ignore_device(dev);
dev->archdata.dma_ops = &nommu_dma_ops;
goto out;
init_iommu_group(dev);
dev_data = get_dev_data(dev);
- if (dev_data && dev_data->iommu_v2)
+
+ BUG_ON(!dev_data);
+
+ if (dev_data->iommu_v2)
iommu_request_dm_for_dev(dev);
/* Domains are initialized for this device - have a look what we ended up with */