[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