On Mon, Jun 16, 2025 at 02:12:04PM +0800, Baolu Lu wrote: > On 6/14/25 15:14, Nicolin Chen wrote: > > + if (!viommu->ops || !viommu->ops->get_hw_queue_size || > > + !viommu->ops->hw_queue_init_phys) { > > + rc = -EOPNOTSUPP; > > + goto out_put_viommu; > > + }
Hmm, here it does abort when !viommu->ops->hw_queue_init_phys .. > > + /* > > + * FIXME once ops->hw_queue_init is introduced, this should check "if > > + * ops->hw_queue_init_phys". And "access" should be initialized to NULL. > > + */ > > I just don't follow here. Up until now, only viommu->ops-> > hw_queue_init_phys has been added, which means the current code only > supports hardware queues that access guest memory using physical > addresses. The access object is not needed for the other type of > hardware queue that uses guest IOVA. > > So, why not just abort here if ops->hw_queue_init_phys is not supported > by the IOMMU driver? .. so, it already does. > Leave other logics to the patches that introduce > ops->hw_queue_init? I guess that would make this patch more readible. The patch is doing in the way to support the hw_queue_init_phys case only. It is just adding some extra FIXMEs as the guideline for the future patch adding hw_queue_init op. I personally don't feel these are confusing. Maybe you can help point out what specific wording feels odd here? Maybe "FIXME"s should be "TODO"s? I could also drop all of these guideline if they are considered very unnecessary. Thanks Nicolin