| Date | Thu, 4 Mar 2021 09:43:29 +0100 | From | Pavel Machek <> | Subject | Re: [PATCH 5.10 337/663] iommu: Move iotlb_sync_map out from __iommu_map |
| |
Hi!
> [ Upstream commit d8c1df02ac7f2c802a9b2afc0f5c888c4217f1d5 ] > > In the end of __iommu_map, It alway call iotlb_sync_map. > > This patch moves iotlb_sync_map out from __iommu_map since it is > unnecessary to call this for each sg segment especially iotlb_sync_map > is flush tlb all currently. Add a little helper _iommu_map for this.
> Signed-off-by: Sasha Levin <sashal@kernel.org>
AFAICT this is slight performance optimalization, not a bugfix. It actually introduces a bug, fixed by the next patch. I'd preffer not to have it in stable.
Best regards, Pavel
> @@ -2421,18 +2418,31 @@ static int __iommu_map(struct iommu_domain *domain, unsigned long iova, > > +static int _iommu_map(struct iommu_domain *domain, unsigned long iova, > + phys_addr_t paddr, size_t size, int prot, gfp_t gfp) > +{ > + const struct iommu_ops *ops = domain->ops; > + int ret; > + > + ret = __iommu_map(domain, iova, paddr, size, prot, GFP_KERNEL); > + if (ret == 0 && ops->iotlb_sync_map) > + ops->iotlb_sync_map(domain); > + > + return ret; > +}
-- http://www.livejournal.com/~pavelmachek [unhandled content-type:application/pgp-signature] |