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


Yes, that's better.

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


Virtualization mailing list

Reply via email to