On Wed, Mar 25, 2020 at 04:27:07PM +0800, Jason Wang wrote:
> +struct vdpa_device *__vdpa_alloc_device(struct device *parent,
> +                                     const struct vdpa_config_ops *config,
> +                                     size_t size);
> +
> +#define vdpa_alloc_device(dev_struct, member, parent, config)   \
> +                       container_of(__vdpa_alloc_device( \
> +                                    parent, config, \
> +                                    sizeof(struct dev_struct) + \
> +                                    BUILD_BUG_ON_ZERO(offsetof( \
> +                                    struct dev_struct, member))), \
> +                                    struct dev_struct, member)

This all looks robust now, one minor remark is to not do 'struct
dev_struct' here so the caller has to do

   vdpa_alloc_device(struct foo, vpda, ...)

Which suggests to the reader something unusual is happening

Jason
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to