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
--
Alexey