mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-01 00:23:00 +00:00
iommu: Ignore -ENODEV errors from add_device call-back
The -ENODEV error just means that the device is not translated by an IOMMU. We shouldn't bail out of iommu driver initialization when that happens, as this is a common scenario on ARM. Not returning -ENODEV in the drivers would be a bad idea, as the IOMMU core would have no indication whether a device is translated or not. This indication is not used at the moment, but will probably be in the future. Fixes: 19762d7 ("iommu: Propagate error in add_iommu_group") Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Tested-by: Eric Auger <eric.auger@linaro.org> Tested-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
5ffde2f671
commit
38667f1890
@ -847,13 +847,24 @@ static int add_iommu_group(struct device *dev, void *data)
|
||||
{
|
||||
struct iommu_callback_data *cb = data;
|
||||
const struct iommu_ops *ops = cb->ops;
|
||||
int ret;
|
||||
|
||||
if (!ops->add_device)
|
||||
return 0;
|
||||
|
||||
WARN_ON(dev->iommu_group);
|
||||
|
||||
return ops->add_device(dev);
|
||||
ret = ops->add_device(dev);
|
||||
|
||||
/*
|
||||
* We ignore -ENODEV errors for now, as they just mean that the
|
||||
* device is not translated by an IOMMU. We still care about
|
||||
* other errors and fail to initialize when they happen.
|
||||
*/
|
||||
if (ret == -ENODEV)
|
||||
ret = 0;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int remove_iommu_group(struct device *dev, void *data)
|
||||
|
Loading…
x
Reference in New Issue
Block a user