On Jun 1, 2021, at 8:59 AM, Robin Murphy <robin.murphy@xxxxxxx> wrote:
On 2021-05-02 07:59, Nadav Amit wrote:
From: Nadav Amit <namit@xxxxxxxxxx>
Some IOMMU architectures perform invalidations regardless of the page
size. In such architectures there is no need to sync when the page size
changes or to regard pgsize when making interim flush in
iommu_iotlb_gather_add_page().
Add a "ignore_gather_pgsize" property for each IOMMU-ops to decide
whether gather's pgsize is tracked and triggers a flush.
I've objected before[1], and I'll readily object again ;)
I still think it's very silly to add a bunch of indirection all over the place to make a helper function not do the main thing it's intended to help with. If you only need trivial address gathering then it's far simpler to just implement trivial address gathering. I suppose if you really want to you could factor out another helper to share the 5 lines of code which ended up in mtk-iommu (see commit f21ae3b10084).
Thanks, Robin.
I read your comments but I cannot fully understand the alternative that you propose, although I do understand your objection to the indirection “ignore_gather_pgsize”. Would it be ok if “ignore_gather_pgsize" was provided as an argument for iommu_iotlb_gather_add_page()?
In general, I can live without this patch. It probably would have negligent impact on performance anyhow.