|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V3 2/29] VIOMMU: Add vIOMMU helper functions to create, destroy vIOMMU instance
>>> On 30.10.17 at 02:51, <tianyu.lan@xxxxxxxxx> wrote:
> On 2017年10月18日 22:05, Roger Pau Monné wrote:
>>> +int viommu_register_type(uint64_t type, struct viommu_ops *ops)
>>> > +{
>>> > + struct viommu_type *viommu_type = NULL;
>>> > +
>>> > + if ( !viommu_enabled() )
>>> > + return -ENODEV;
>>> > +
>>> > + if ( viommu_get_type(type) )
>>> > + return -EEXIST;
>>> > +
>>> > + viommu_type = xzalloc(struct viommu_type);
>>> > + if ( !viommu_type )
>>> > + return -ENOMEM;
>>> > +
>>> > + viommu_type->type = type;
>>> > + viommu_type->ops = ops;
>>> > +
>>> > + spin_lock(&type_list_lock);
>>> > + list_add_tail(&viommu_type->node, &type_list);
>>> > + spin_unlock(&type_list_lock);
>>> > +
>>> > + return 0;
>>> > +}
>> As mentioned above, I think this viommu_register_type helper could be
>> avoided. I would rather use a macro similar to REGISTER_SCHEDULER in
>> order to populate an array at link time, and then just iterate over
>> it.
>>
>
> Hi Jan:
> Could you help to check whether REGISTER_SCHEDULER is right direction
> for vIOMMU? It needs to change Xen lds layout. From my view, a list to
> manage vIOMMU device model types will be more easy and this maybe a
> common solution.
I think the suggested approach is generally the neater one; there
may be a few other things we could convert to a similar model, to
clean up code. Hence yes, unless there are strong reasons against
it, I agree with Roger.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |