On Fri, May 30, 2025 at 03:27:23PM -0300, Jason Gunthorpe wrote: > On Tue, May 27, 2025 at 11:41:19AM -0700, Nicolin Chen wrote: > > On Mon, May 26, 2025 at 10:30:46AM -0300, Jason Gunthorpe wrote: > > > On Fri, May 16, 2025 at 01:56:26PM -0700, Nicolin Chen wrote: > > > > > > > > You don't need to move this unless you are using inlines. Just use a > > > > > forward declaration. > > > > > > > > Since we forward ucmd now, ictx is in the ucmd so we need this > > > > structure for: > > > > > > > > - if (!IS_ERR(ret)) > > > > \ > > > > + if (!IS_ERR(ret)) { > > > > \ > > > > ret->member.ops = viommu_ops; > > > > \ > > > > + ret->member.ictx = ucmd->ictx; > > > > \ > > > > + } > > > > \ > > > > > > De-inline more of that function probably.. > > > > > > Also seem my other remarks about not storing ictx so much.. > > > > I found that all other ictx pointers in vdev/hw_queue are unused, > > as the core simply gets an ictx from their viommu pointers. This > > means that only this viommu allocator here needs such a storing. > > > > With that, how about a change like this v.s. inline: > > So I think the other suggestion with init vs alloc supersedes this and > makes it all pretty clean?
I believe so! Nicolin