Re: [PATCH 5/6] iommu/amd: Add support for non-pci devices
From: Wan Zongshun
Date: Fri Jan 08 2016 - 13:00:36 EST
static bool check_device(struct device *dev)
{
u16 devid;
......
/* No PCI device */
if (!dev_is_pci(dev) && (get_acpihid_device_id(dev, NULL) < 0))
return false;
devid = get_device_id(dev);
That is true for this case, but the other call-sites of get_device_id()
still have to care about a potential negative return value, right?
Actually I am supposing the '.add_device' will be the first called in
iommu initializing stage, so I think as long as having no error of check
device here, any call-sites of get_device_id() will be fine, because
adding device successfully should be the pre-condition of any iommu
function can be performed, please correct me.
static int amd_iommu_add_device(struct device *dev)
{
struct iommu_dev_data *dev_data;
struct iommu_domain *domain;
struct amd_iommu *iommu;
u16 devid;
int ret;
if (!check_device(dev) || get_dev_data(dev))
return 0;
devid = get_device_id(dev);
iommu = amd_iommu_rlookup_table[devid];
Vincent.
Joerg