On 2020/3/25 下午8:29, Jason Gunthorpe wrote:
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


Yes, that's better.

But my understanding is that this can be done on top.

Thanks

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

Reply via email to