Re: [PATCH 5/6] iommu/amd: Add support for non-pci devices

From: Wan Zongshun
Date: Sat Jan 09 2016 - 05:08:52 EST




-------- Original Message --------
On Fri, Jan 08, 2016 at 10:52:59PM +0800, Wan Zongshun wrote:
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];

There are places in the interrupt remapping code that call get_device_id
without calling check_device first. See get_irq_domain and get_devid.


Okay, I will change this get_device_id return to int, and judge this return value in caller of this function like get_devid style.

If so we will modify some existing amd iommu driver codes, and Can I merge those into this patch 5/6? or I will create another dedicated patch to take this action?

Vincent.


Joerg