mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-18 10:56:12 +07:00
iommu/amd: Handle errors returned from iommu_init_device
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>
This commit is contained in:
parent
409e553dee
commit
4d58b8a6de
@ -2265,7 +2265,11 @@ static int amd_iommu_add_device(struct device *dev)
|
||||
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;
|
||||
@ -2273,7 +2277,10 @@ static int amd_iommu_add_device(struct device *dev)
|
||||
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 */
|
||||
|
Loading…
Reference in New Issue
Block a user