On Mon, Oct 21, 2024 at 12:26:54PM +1100, Alexey Kardashevskiy wrote:
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.
All three-level helpers have callers. So that would be a bigger patch than I expected to include in this series. Maybe I should just drop this patch, since it's not functionally necessary. If we want to clean the whole thing, can do with a separate series.
And it would be real nice if it was "iobj" not this "obj" which is way too generic. Thanks,
Again, the renaming would be across the whole folder, not only here. So, I think it could be a separate cleanup series later.
Thanks Nicolin