[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 09/13] xen/passthrough: Introduce IOMMU ARM architecture



Hi Ian,

On 03/18/2014 04:40 PM, Ian Campbell wrote:
> On Tue, 2014-03-11 at 15:49 +0000, Julien Grall wrote:
>> @@ -754,7 +766,7 @@ static int map_device(struct domain *d, const struct 
>> dt_device_node *dev)
>>  }
>>  
>>  static int handle_node(struct domain *d, struct kernel_info *kinfo,
>> -                       const struct dt_device_node *node)
>> +                       struct dt_device_node *node)
>>  {
>>      static const struct dt_device_match skip_matches[] __initconst =
>>      {
>> @@ -775,7 +787,7 @@ static int handle_node(struct domain *d, struct 
>> kernel_info *kinfo,
>>          DT_MATCH_TIMER,
>>          { /* sentinel */ },
>>      };
>> -    const struct dt_device_node *child;
>> +    struct dt_device_node *child;
> 
> Why do these consts become unwanted?

Because map_device now calls iommu_assign_dt_device which will update
next_assigned in the structure dt_device_node.

>> diff --git a/xen/drivers/passthrough/arm/iommu.c 
>> b/xen/drivers/passthrough/arm/iommu.c
>> new file mode 100644
>> index 0000000..b0bd71d
>> --- /dev/null
>> +++ b/xen/drivers/passthrough/arm/iommu.c
> [...]
>> +int __init iommu_hardware_setup(void)
>> +{
>> +    struct dt_device_node *np;
>> +    int rc;
>> +    unsigned int num_iommus = 0;
>> +
>> +    dt_for_each_device_node(dt_host, np)
> 
> I can't find dt_host in this or any of the previous patches.

dt_host was defined a while ago by the device tree code (see
xen/include/xen/device_tree.h).

>> +    {
>> +        rc = device_init(np, DEVICE_IOMMU, NULL);
>> +        if ( !rc )
>> +            num_iommus++;
>> +    }
>> +
>> +    return ( num_iommus > 0 ) ? 0 : -ENODEV;
>> +}
>> +
>> +int arch_iommu_domain_init(struct domain *d)
>> +{
>> +    int ret;
>> +
>> +    ret = iommu_dt_domain_init(d);
>> +
>> +    return ret;
> 
> return iommu_dt-domain_init(d);
> ?

I will do the change in the next version.

>> diff --git a/xen/include/asm-arm/iommu.h b/xen/include/asm-arm/iommu.h
>> new file mode 100644
>> index 0000000..81eec83
>> --- /dev/null
>> +++ b/xen/include/asm-arm/iommu.h
>> [...]
>> +#define domain_hvm_iommu(d) (&d->arch.hvm_domain.hvm_iommu)
> 
> Does this macro give us the freedom to avoid the term "hvm" a bit and
> use d->arch.iommu?

It's possible, I just blindly copied from x86.

Regards,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.