On 18/10/24 02:37, Jason Gunthorpe wrote:
On Thu, Oct 17, 2024 at 11:14:16AM -0300, Jason Gunthorpe wrote:
On Wed, Oct 09, 2024 at 09:38:02AM -0700, Nicolin Chen wrote:
@@ -217,12 +217,12 @@ iommufd_object_put_and_try_destroy(struct iommufd_ctx *ictx, iommufd_object_remove(ictx, obj, obj->id, 0); } -struct iommufd_object *_iommufd_object_alloc(struct iommufd_ctx *ictx,
size_t size,
enum iommufd_object_type type);
+struct iommufd_object *iommufd_object_alloc_elm(struct iommufd_ctx *ictx,
size_t size,
enum iommufd_object_type type);
Maybe call it raw instead of elm? elm suggests it is an item in an array or likewise
Or keep this as the __ and rename
#define __iommufd_object_alloc(ictx, ptr, type, obj) \
That one to _elm like this:
#define iommufd_object_alloc_elm(ictx, ptr, type, elm) \ container_of(_iommufd_object_alloc( \ ictx, \ sizeof(*(ptr)) + BUILD_BUG_ON_ZERO( \ offsetof(typeof(*(ptr)), \ obj) != 0), \ type), \ typeof(*(ptr)), elm)
#define iommufd_object_alloc(ictx, ptr, type) \ iommufd_object_alloc_elm(ictx, ptr, type, obj)
Bikeshedding, yay :)
After starring at it for 10min - honestly - ditch iommufd_object_alloc_elm() and just pass "obj" (or "common.obj" in that single other occasion) to iommufd_object_alloc().
__iommufd_object_alloc() - a function - will the actual alloc, iommufd_object_alloc() - a macro - will do the types + call the __ variant, simple and no naming issues.
And it would be real nice if it was "iobj" not this "obj" which is way too generic. Thanks,
Then you can keep the pattern of _ being the allocation function of the macro
Jason