[lvc-project] [PATCH 5.10 1/1] iommu/amd: Prepare for multiple DMA domain types

Fedor Pchelkin pchelkin at ispras.ru
Thu Oct 24 17:25:15 MSK 2024


On Thu, 24. Oct 17:13, Fedor Pchelkin wrote:
> On Fri, 18. Oct 12:51, Daniil Dulov wrote:
> > From: Robin Murphy <robin.murphy at arm.com>
> > 
> > commit 6d596039392bac2a0160fb71300d314943411e2a  upstream.
> > 
> > The DMA ops reset/setup can simply be unconditional, since
> > iommu-dma already knows only to touch DMA domains.
> > 
> > Signed-off-by: Robin Murphy <robin.murphy at arm.com>
> > Link: https://lore.kernel.org/r/6450b4f39a5a086d505297b4a53ff1e4a7a0fe7c.1628682049.git.robin.murphy@arm.com
> > Signed-off-by: Joerg Roedel <jroedel at suse.de>
> > Signed-off-by: Daniil Dulov <d.dulov at aladdin.ru>
> > ---
> >  drivers/iommu/amd/iommu.c | 7 ++-----
> >  1 file changed, 2 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
> > index 0a061a196b53..16a1c2a44bce 100644
> > --- a/drivers/iommu/amd/iommu.c
> > +++ b/drivers/iommu/amd/iommu.c
> > @@ -2257,12 +2257,9 @@ static struct iommu_device *amd_iommu_probe_device(struct device *dev)
> >  
> >  static void amd_iommu_probe_finalize(struct device *dev)
> >  {
> > -	struct iommu_domain *domain;
> > -
> >  	/* Domains are initialized for this device - have a look what we ended up with */
> > -	domain = iommu_get_domain_for_dev(dev);
> > -	if (domain->type == IOMMU_DOMAIN_DMA)
> > -		iommu_setup_dma_ops(dev, IOVA_START_PFN << PAGE_SHIFT, 0);
> > +	set_dma_ops(dev, NULL);
> > +	iommu_setup_dma_ops(dev, 0, U64_MAX);
> 
> Всё же у меня сомнения насчёт валидности этого патча в контексте стабильной
> ветки 5.10. Как минимум, аргументы функции iommu_setup_dma_ops() изменились
> до неузнаваемости, а сама функция осталась, как и раньше.
> 
> Скорее всего, патч основывается на изменениях, произведённых в
> upstream-коде и актуален *только* при них. Нужно дополнительное исследование
> проблемы. В том числе, в комментарии в Svacer лучше показать примерный
> сценарий, при котором возможен возврат NULL из iommu_get_domain_for_dev() в
> данном месте.

Также можно рассмотреть возможность целенаправленного фикса в стабильную
ветку, без функциональных изменений, производимых upstream-патчем.

https://portal.linuxtesting.ru/How-to-send-patches-to-kernel.html#Добавление-патчей-напрямую-в-стабильную-ветку-ядра

При разработке патча просьба направлять его в список рассылки lvc-patches at linuxtesting.org.

> 
> >  }
> >  
> >  static void amd_iommu_release_device(struct device *dev)
> > -- 
> > 2.25.1



More information about the lvc-project mailing list