* [PATCH] media: staging: ipu3: Enable IOVA API only when IOMMU support is enabled @ 2019-07-22 13:47 YueHaibing 2019-07-24 10:30 ` Sakari Ailus 0 siblings, 1 reply; 11+ messages in thread From: YueHaibing @ 2019-07-22 13:47 UTC (permalink / raw) To: sakari.ailus, mchehab, gregkh, yong.zhi, digetx, hverkuil-cisco Cc: linux-kernel, devel, linux-media, YueHaibing If IOMMU_SUPPORT is not set, ipu3 driver may select IOMMU_IOVA to m. But for many drivers, they use "select IOMMU_IOVA if IOMMU_SUPPORT" in the Kconfig, for example, CONFIG_TEGRA_VDE is set to y but IOMMU_IOVA is m, then the building fails like this: drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': iommu.c:(.text+0x41): undefined reference to `alloc_iova' iommu.c:(.text+0x56): undefined reference to `__free_iova' Reported-by: Hulk Robot <hulkci@huawei.com> Fixes: 7fc7af649ca7 ("media: staging/intel-ipu3: Add imgu top level pci device driver") Signed-off-by: YueHaibing <yuehaibing@huawei.com> --- drivers/staging/media/ipu3/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/media/ipu3/Kconfig b/drivers/staging/media/ipu3/Kconfig index 4b51c67..b7df18f 100644 --- a/drivers/staging/media/ipu3/Kconfig +++ b/drivers/staging/media/ipu3/Kconfig @@ -4,7 +4,7 @@ config VIDEO_IPU3_IMGU depends on PCI && VIDEO_V4L2 depends on MEDIA_CONTROLLER && VIDEO_V4L2_SUBDEV_API depends on X86 - select IOMMU_IOVA + select IOMMU_IOVA if IOMMU_SUPPORT select VIDEOBUF2_DMA_SG help This is the Video4Linux2 driver for Intel IPU3 image processing unit, -- 2.7.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] media: staging: ipu3: Enable IOVA API only when IOMMU support is enabled 2019-07-22 13:47 [PATCH] media: staging: ipu3: Enable IOVA API only when IOMMU support is enabled YueHaibing @ 2019-07-24 10:30 ` Sakari Ailus 2019-07-24 13:49 ` Robin Murphy 0 siblings, 1 reply; 11+ messages in thread From: Sakari Ailus @ 2019-07-24 10:30 UTC (permalink / raw) To: YueHaibing Cc: mchehab, gregkh, yong.zhi, digetx, hverkuil-cisco, linux-kernel, devel, linux-media, iommu Hi Yue, On Mon, Jul 22, 2019 at 09:47:49PM +0800, YueHaibing wrote: > If IOMMU_SUPPORT is not set, ipu3 driver may select IOMMU_IOVA to m. > But for many drivers, they use "select IOMMU_IOVA if IOMMU_SUPPORT" > in the Kconfig, for example, CONFIG_TEGRA_VDE is set to y but IOMMU_IOVA > is m, then the building fails like this: > > drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': > iommu.c:(.text+0x41): undefined reference to `alloc_iova' > iommu.c:(.text+0x56): undefined reference to `__free_iova' > > Reported-by: Hulk Robot <hulkci@huawei.com> > Fixes: 7fc7af649ca7 ("media: staging/intel-ipu3: Add imgu top level pci device driver") > Signed-off-by: YueHaibing <yuehaibing@huawei.com> > --- > drivers/staging/media/ipu3/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/media/ipu3/Kconfig b/drivers/staging/media/ipu3/Kconfig > index 4b51c67..b7df18f 100644 > --- a/drivers/staging/media/ipu3/Kconfig > +++ b/drivers/staging/media/ipu3/Kconfig > @@ -4,7 +4,7 @@ config VIDEO_IPU3_IMGU > depends on PCI && VIDEO_V4L2 > depends on MEDIA_CONTROLLER && VIDEO_V4L2_SUBDEV_API > depends on X86 > - select IOMMU_IOVA > + select IOMMU_IOVA if IOMMU_SUPPORT This doesn't seem right: the ipu3-cio2 driver needs IOMMU_IOVA independently of IOMMU_SUPPORT. Looking at tegra-vde, it seems to depend on IOMMU_SUPPORT but that's not declared in its Kconfig entry. I wonder if adding that would be the right way to fix this. Cc'ing the IOMMU list. > select VIDEOBUF2_DMA_SG > help > This is the Video4Linux2 driver for Intel IPU3 image processing unit, -- Regards, Sakari Ailus sakari.ailus@linux.intel.com ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: staging: ipu3: Enable IOVA API only when IOMMU support is enabled 2019-07-24 10:30 ` Sakari Ailus @ 2019-07-24 13:49 ` Robin Murphy 2019-07-24 14:03 ` Yuehaibing 0 siblings, 1 reply; 11+ messages in thread From: Robin Murphy @ 2019-07-24 13:49 UTC (permalink / raw) To: Sakari Ailus, YueHaibing Cc: devel, linux-media, gregkh, linux-kernel, iommu, hverkuil-cisco, digetx, mchehab, yong.zhi On 24/07/2019 11:30, Sakari Ailus wrote: > Hi Yue, > > On Mon, Jul 22, 2019 at 09:47:49PM +0800, YueHaibing wrote: >> If IOMMU_SUPPORT is not set, ipu3 driver may select IOMMU_IOVA to m. >> But for many drivers, they use "select IOMMU_IOVA if IOMMU_SUPPORT" >> in the Kconfig, for example, CONFIG_TEGRA_VDE is set to y but IOMMU_IOVA >> is m, then the building fails like this: >> >> drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': >> iommu.c:(.text+0x41): undefined reference to `alloc_iova' >> iommu.c:(.text+0x56): undefined reference to `__free_iova' >> >> Reported-by: Hulk Robot <hulkci@huawei.com> >> Fixes: 7fc7af649ca7 ("media: staging/intel-ipu3: Add imgu top level pci device driver") >> Signed-off-by: YueHaibing <yuehaibing@huawei.com> >> --- >> drivers/staging/media/ipu3/Kconfig | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/staging/media/ipu3/Kconfig b/drivers/staging/media/ipu3/Kconfig >> index 4b51c67..b7df18f 100644 >> --- a/drivers/staging/media/ipu3/Kconfig >> +++ b/drivers/staging/media/ipu3/Kconfig >> @@ -4,7 +4,7 @@ config VIDEO_IPU3_IMGU >> depends on PCI && VIDEO_V4L2 >> depends on MEDIA_CONTROLLER && VIDEO_V4L2_SUBDEV_API >> depends on X86 >> - select IOMMU_IOVA >> + select IOMMU_IOVA if IOMMU_SUPPORT > > This doesn't seem right: the ipu3-cio2 driver needs IOMMU_IOVA > independently of IOMMU_SUPPORT. > > Looking at tegra-vde, it seems to depend on IOMMU_SUPPORT but that's not > declared in its Kconfig entry. I wonder if adding that would be the right > way to fix this. > > Cc'ing the IOMMU list. Right, I also had the impression that we'd made the IOVA library completely standalone. And what does the IPU3 driver's Kconfig have to do with some *other* driver failing to link anyway? Robin. > >> select VIDEOBUF2_DMA_SG >> help >> This is the Video4Linux2 driver for Intel IPU3 image processing unit, > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: staging: ipu3: Enable IOVA API only when IOMMU support is enabled 2019-07-24 13:49 ` Robin Murphy @ 2019-07-24 14:03 ` Yuehaibing 2019-07-24 14:09 ` Dmitry Osipenko 0 siblings, 1 reply; 11+ messages in thread From: Yuehaibing @ 2019-07-24 14:03 UTC (permalink / raw) To: Robin Murphy, Sakari Ailus Cc: devel, linux-media, gregkh, linux-kernel, iommu, hverkuil-cisco, digetx, mchehab, yong.zhi On 2019/7/24 21:49, Robin Murphy wrote: > On 24/07/2019 11:30, Sakari Ailus wrote: >> Hi Yue, >> >> On Mon, Jul 22, 2019 at 09:47:49PM +0800, YueHaibing wrote: >>> If IOMMU_SUPPORT is not set, ipu3 driver may select IOMMU_IOVA to m. >>> But for many drivers, they use "select IOMMU_IOVA if IOMMU_SUPPORT" >>> in the Kconfig, for example, CONFIG_TEGRA_VDE is set to y but IOMMU_IOVA >>> is m, then the building fails like this: >>> >>> drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': >>> iommu.c:(.text+0x41): undefined reference to `alloc_iova' >>> iommu.c:(.text+0x56): undefined reference to `__free_iova' >>> >>> Reported-by: Hulk Robot <hulkci@huawei.com> >>> Fixes: 7fc7af649ca7 ("media: staging/intel-ipu3: Add imgu top level pci device driver") >>> Signed-off-by: YueHaibing <yuehaibing@huawei.com> >>> --- >>> drivers/staging/media/ipu3/Kconfig | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/staging/media/ipu3/Kconfig b/drivers/staging/media/ipu3/Kconfig >>> index 4b51c67..b7df18f 100644 >>> --- a/drivers/staging/media/ipu3/Kconfig >>> +++ b/drivers/staging/media/ipu3/Kconfig >>> @@ -4,7 +4,7 @@ config VIDEO_IPU3_IMGU >>> depends on PCI && VIDEO_V4L2 >>> depends on MEDIA_CONTROLLER && VIDEO_V4L2_SUBDEV_API >>> depends on X86 >>> - select IOMMU_IOVA >>> + select IOMMU_IOVA if IOMMU_SUPPORT >> >> This doesn't seem right: the ipu3-cio2 driver needs IOMMU_IOVA >> independently of IOMMU_SUPPORT. >> >> Looking at tegra-vde, it seems to depend on IOMMU_SUPPORT but that's not >> declared in its Kconfig entry. I wonder if adding that would be the right >> way to fix this. >> >> Cc'ing the IOMMU list. > > Right, I also had the impression that we'd made the IOVA library completely standalone. And what does the IPU3 driver's Kconfig have to do with some *other* driver failing to link anyway? Oh, I misunderstand that IOMMU_IOVA is depend on IOMMU_SUPPORT, thank you for clarification. I will try to fix this in tegra-vde. > > Robin. > >> >>> select VIDEOBUF2_DMA_SG >>> help >>> This is the Video4Linux2 driver for Intel IPU3 image processing unit, >> > > . > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: staging: ipu3: Enable IOVA API only when IOMMU support is enabled 2019-07-24 14:03 ` Yuehaibing @ 2019-07-24 14:09 ` Dmitry Osipenko 2019-07-24 14:23 ` Robin Murphy 0 siblings, 1 reply; 11+ messages in thread From: Dmitry Osipenko @ 2019-07-24 14:09 UTC (permalink / raw) To: Yuehaibing, Robin Murphy, Sakari Ailus Cc: devel, linux-media, gregkh, linux-kernel, iommu, hverkuil-cisco, mchehab, yong.zhi 24.07.2019 17:03, Yuehaibing пишет: > On 2019/7/24 21:49, Robin Murphy wrote: >> On 24/07/2019 11:30, Sakari Ailus wrote: >>> Hi Yue, >>> >>> On Mon, Jul 22, 2019 at 09:47:49PM +0800, YueHaibing wrote: >>>> If IOMMU_SUPPORT is not set, ipu3 driver may select IOMMU_IOVA to m. >>>> But for many drivers, they use "select IOMMU_IOVA if IOMMU_SUPPORT" >>>> in the Kconfig, for example, CONFIG_TEGRA_VDE is set to y but IOMMU_IOVA >>>> is m, then the building fails like this: >>>> >>>> drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': >>>> iommu.c:(.text+0x41): undefined reference to `alloc_iova' >>>> iommu.c:(.text+0x56): undefined reference to `__free_iova' >>>> >>>> Reported-by: Hulk Robot <hulkci@huawei.com> >>>> Fixes: 7fc7af649ca7 ("media: staging/intel-ipu3: Add imgu top level pci device driver") >>>> Signed-off-by: YueHaibing <yuehaibing@huawei.com> >>>> --- >>>> drivers/staging/media/ipu3/Kconfig | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/drivers/staging/media/ipu3/Kconfig b/drivers/staging/media/ipu3/Kconfig >>>> index 4b51c67..b7df18f 100644 >>>> --- a/drivers/staging/media/ipu3/Kconfig >>>> +++ b/drivers/staging/media/ipu3/Kconfig >>>> @@ -4,7 +4,7 @@ config VIDEO_IPU3_IMGU >>>> depends on PCI && VIDEO_V4L2 >>>> depends on MEDIA_CONTROLLER && VIDEO_V4L2_SUBDEV_API >>>> depends on X86 >>>> - select IOMMU_IOVA >>>> + select IOMMU_IOVA if IOMMU_SUPPORT >>> >>> This doesn't seem right: the ipu3-cio2 driver needs IOMMU_IOVA >>> independently of IOMMU_SUPPORT. >>> >>> Looking at tegra-vde, it seems to depend on IOMMU_SUPPORT but that's not >>> declared in its Kconfig entry. I wonder if adding that would be the right >>> way to fix this. >>> >>> Cc'ing the IOMMU list. IOMMU_SUPPORT is optional for the Tegra-VDE driver. >> Right, I also had the impression that we'd made the IOVA library completely standalone. And what does the IPU3 driver's Kconfig have to do with some *other* driver failing to link anyway? I can see it failing if IPU3 is compiled as a loadable module, while Tegra-VDE is a built-in driver. Hence IOVA lib should be also a kernel module and thus the IOVA symbols will be missing during of linkage of the VDE driver. > Oh, I misunderstand that IOMMU_IOVA is depend on IOMMU_SUPPORT, thank you for clarification. > > I will try to fix this in tegra-vde. Probably IOVA could be selected independently of IOMMU_SUPPORT, but IOVA library isn't needed for the VDE driver if IOMMU_SUPPORT is disabled. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: staging: ipu3: Enable IOVA API only when IOMMU support is enabled 2019-07-24 14:09 ` Dmitry Osipenko @ 2019-07-24 14:23 ` Robin Murphy 2019-07-24 14:28 ` Dmitry Osipenko 0 siblings, 1 reply; 11+ messages in thread From: Robin Murphy @ 2019-07-24 14:23 UTC (permalink / raw) To: Dmitry Osipenko, Yuehaibing, Sakari Ailus Cc: devel, linux-media, gregkh, linux-kernel, iommu, hverkuil-cisco, mchehab, yong.zhi On 24/07/2019 15:09, Dmitry Osipenko wrote: > 24.07.2019 17:03, Yuehaibing пишет: >> On 2019/7/24 21:49, Robin Murphy wrote: >>> On 24/07/2019 11:30, Sakari Ailus wrote: >>>> Hi Yue, >>>> >>>> On Mon, Jul 22, 2019 at 09:47:49PM +0800, YueHaibing wrote: >>>>> If IOMMU_SUPPORT is not set, ipu3 driver may select IOMMU_IOVA to m. >>>>> But for many drivers, they use "select IOMMU_IOVA if IOMMU_SUPPORT" >>>>> in the Kconfig, for example, CONFIG_TEGRA_VDE is set to y but IOMMU_IOVA >>>>> is m, then the building fails like this: >>>>> >>>>> drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': >>>>> iommu.c:(.text+0x41): undefined reference to `alloc_iova' >>>>> iommu.c:(.text+0x56): undefined reference to `__free_iova' >>>>> >>>>> Reported-by: Hulk Robot <hulkci@huawei.com> >>>>> Fixes: 7fc7af649ca7 ("media: staging/intel-ipu3: Add imgu top level pci device driver") >>>>> Signed-off-by: YueHaibing <yuehaibing@huawei.com> >>>>> --- >>>>> drivers/staging/media/ipu3/Kconfig | 2 +- >>>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>>> >>>>> diff --git a/drivers/staging/media/ipu3/Kconfig b/drivers/staging/media/ipu3/Kconfig >>>>> index 4b51c67..b7df18f 100644 >>>>> --- a/drivers/staging/media/ipu3/Kconfig >>>>> +++ b/drivers/staging/media/ipu3/Kconfig >>>>> @@ -4,7 +4,7 @@ config VIDEO_IPU3_IMGU >>>>> depends on PCI && VIDEO_V4L2 >>>>> depends on MEDIA_CONTROLLER && VIDEO_V4L2_SUBDEV_API >>>>> depends on X86 >>>>> - select IOMMU_IOVA >>>>> + select IOMMU_IOVA if IOMMU_SUPPORT >>>> >>>> This doesn't seem right: the ipu3-cio2 driver needs IOMMU_IOVA >>>> independently of IOMMU_SUPPORT. >>>> >>>> Looking at tegra-vde, it seems to depend on IOMMU_SUPPORT but that's not >>>> declared in its Kconfig entry. I wonder if adding that would be the right >>>> way to fix this. >>>> >>>> Cc'ing the IOMMU list. > IOMMU_SUPPORT is optional for the Tegra-VDE driver. > >>> Right, I also had the impression that we'd made the IOVA library completely standalone. And what does the IPU3 driver's Kconfig have to do with some *other* driver failing to link anyway? > > I can see it failing if IPU3 is compiled as a loadable module, while > Tegra-VDE is a built-in driver. Hence IOVA lib should be also a kernel > module and thus the IOVA symbols will be missing during of linkage of > the VDE driver. > >> Oh, I misunderstand that IOMMU_IOVA is depend on IOMMU_SUPPORT, thank you for clarification. >> >> I will try to fix this in tegra-vde. > > Probably IOVA could be selected independently of IOMMU_SUPPORT, but IOVA > library isn't needed for the VDE driver if IOMMU_SUPPORT is disabled. Oh, I think I get the problem now - tegra-vde/iommu.c is built unconditionally and relies on the static inline stubs for IOMMU and IOVA calls if !IOMMU_SUPPORT, but in a compile-test config where IOVA=m for other reasons, it then picks up the real declarations from linux/iova.h instead of the stubs, and things go downhill from there. So there is a real issue, but indeed it's Tegra-VDE which needs to be restructured to cope with such configurations, and not IPU3's (or anyone else who may select IOVA=m in future) job to work around it. Robin. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: staging: ipu3: Enable IOVA API only when IOMMU support is enabled 2019-07-24 14:23 ` Robin Murphy @ 2019-07-24 14:28 ` Dmitry Osipenko 2019-07-25 2:41 ` [PATCH] media: staging: tegra-vde: Fix build error YueHaibing 0 siblings, 1 reply; 11+ messages in thread From: Dmitry Osipenko @ 2019-07-24 14:28 UTC (permalink / raw) To: Robin Murphy, Yuehaibing, Sakari Ailus Cc: devel, linux-media, gregkh, linux-kernel, iommu, hverkuil-cisco, mchehab, yong.zhi 24.07.2019 17:23, Robin Murphy пишет: > On 24/07/2019 15:09, Dmitry Osipenko wrote: >> 24.07.2019 17:03, Yuehaibing пишет: >>> On 2019/7/24 21:49, Robin Murphy wrote: >>>> On 24/07/2019 11:30, Sakari Ailus wrote: >>>>> Hi Yue, >>>>> >>>>> On Mon, Jul 22, 2019 at 09:47:49PM +0800, YueHaibing wrote: >>>>>> If IOMMU_SUPPORT is not set, ipu3 driver may select IOMMU_IOVA to m. >>>>>> But for many drivers, they use "select IOMMU_IOVA if IOMMU_SUPPORT" >>>>>> in the Kconfig, for example, CONFIG_TEGRA_VDE is set to y but >>>>>> IOMMU_IOVA >>>>>> is m, then the building fails like this: >>>>>> >>>>>> drivers/staging/media/tegra-vde/iommu.o: In function >>>>>> `tegra_vde_iommu_map': >>>>>> iommu.c:(.text+0x41): undefined reference to `alloc_iova' >>>>>> iommu.c:(.text+0x56): undefined reference to `__free_iova' >>>>>> >>>>>> Reported-by: Hulk Robot <hulkci@huawei.com> >>>>>> Fixes: 7fc7af649ca7 ("media: staging/intel-ipu3: Add imgu top >>>>>> level pci device driver") >>>>>> Signed-off-by: YueHaibing <yuehaibing@huawei.com> >>>>>> --- >>>>>> drivers/staging/media/ipu3/Kconfig | 2 +- >>>>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>>>> >>>>>> diff --git a/drivers/staging/media/ipu3/Kconfig >>>>>> b/drivers/staging/media/ipu3/Kconfig >>>>>> index 4b51c67..b7df18f 100644 >>>>>> --- a/drivers/staging/media/ipu3/Kconfig >>>>>> +++ b/drivers/staging/media/ipu3/Kconfig >>>>>> @@ -4,7 +4,7 @@ config VIDEO_IPU3_IMGU >>>>>> depends on PCI && VIDEO_V4L2 >>>>>> depends on MEDIA_CONTROLLER && VIDEO_V4L2_SUBDEV_API >>>>>> depends on X86 >>>>>> - select IOMMU_IOVA >>>>>> + select IOMMU_IOVA if IOMMU_SUPPORT >>>>> >>>>> This doesn't seem right: the ipu3-cio2 driver needs IOMMU_IOVA >>>>> independently of IOMMU_SUPPORT. >>>>> >>>>> Looking at tegra-vde, it seems to depend on IOMMU_SUPPORT but >>>>> that's not >>>>> declared in its Kconfig entry. I wonder if adding that would be the >>>>> right >>>>> way to fix this. >>>>> >>>>> Cc'ing the IOMMU list. >> IOMMU_SUPPORT is optional for the Tegra-VDE driver. >> >>>> Right, I also had the impression that we'd made the IOVA library >>>> completely standalone. And what does the IPU3 driver's Kconfig have >>>> to do with some *other* driver failing to link anyway? >> >> I can see it failing if IPU3 is compiled as a loadable module, while >> Tegra-VDE is a built-in driver. Hence IOVA lib should be also a kernel >> module and thus the IOVA symbols will be missing during of linkage of >> the VDE driver. >> >>> Oh, I misunderstand that IOMMU_IOVA is depend on IOMMU_SUPPORT, thank >>> you for clarification. >>> >>> I will try to fix this in tegra-vde. >> >> Probably IOVA could be selected independently of IOMMU_SUPPORT, but IOVA >> library isn't needed for the VDE driver if IOMMU_SUPPORT is disabled. > > Oh, I think I get the problem now - tegra-vde/iommu.c is built > unconditionally and relies on the static inline stubs for IOMMU and IOVA > calls if !IOMMU_SUPPORT, but in a compile-test config where IOVA=m for > other reasons, it then picks up the real declarations from linux/iova.h > instead of the stubs, and things go downhill from there. So there is a > real issue, but indeed it's Tegra-VDE which needs to be restructured to > cope with such configurations, and not IPU3's (or anyone else who may > select IOVA=m in future) job to work around it. I guess it could be: select IOMMU_IOVA if (IOMMU_SUPPORT || COMPILE_TEST) as a workaround. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] media: staging: tegra-vde: Fix build error 2019-07-24 14:28 ` Dmitry Osipenko @ 2019-07-25 2:41 ` YueHaibing 2019-07-25 7:19 ` Dmitry Osipenko 0 siblings, 1 reply; 11+ messages in thread From: YueHaibing @ 2019-07-25 2:41 UTC (permalink / raw) To: digetx, mchehab, gregkh, thierry.reding, jonathanh, robin.murphy, sakari.ailus Cc: linux-kernel, devel, linux-media, linux-tegra, iommu, YueHaibing If IOMMU_SUPPORT is not set, and COMPILE_TEST is y, IOMMU_IOVA may be set to m. So building will fails: drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': iommu.c:(.text+0x41): undefined reference to `alloc_iova' iommu.c:(.text+0x56): undefined reference to `__free_iova' Select IOMMU_IOVA while COMPILE_TEST is set to fix this. Reported-by: Hulk Robot <hulkci@huawei.com> Suggested-by: Dmitry Osipenko <digetx@gmail.com> Fixes: b301f8de1925 ("media: staging: media: tegra-vde: Add IOMMU support") Signed-off-by: YueHaibing <yuehaibing@huawei.com> --- drivers/staging/media/tegra-vde/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/media/tegra-vde/Kconfig b/drivers/staging/media/tegra-vde/Kconfig index 2e7f644..ba49ea5 100644 --- a/drivers/staging/media/tegra-vde/Kconfig +++ b/drivers/staging/media/tegra-vde/Kconfig @@ -3,7 +3,7 @@ config TEGRA_VDE tristate "NVIDIA Tegra Video Decoder Engine driver" depends on ARCH_TEGRA || COMPILE_TEST select DMA_SHARED_BUFFER - select IOMMU_IOVA if IOMMU_SUPPORT + select IOMMU_IOVA if (IOMMU_SUPPORT || COMPILE_TEST) select SRAM help Say Y here to enable support for the NVIDIA Tegra video decoder -- 2.7.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] media: staging: tegra-vde: Fix build error 2019-07-25 2:41 ` [PATCH] media: staging: tegra-vde: Fix build error YueHaibing @ 2019-07-25 7:19 ` Dmitry Osipenko 2019-09-20 19:32 ` Arnd Bergmann 0 siblings, 1 reply; 11+ messages in thread From: Dmitry Osipenko @ 2019-07-25 7:19 UTC (permalink / raw) To: YueHaibing, mchehab, gregkh, thierry.reding, jonathanh, robin.murphy, sakari.ailus Cc: linux-kernel, devel, linux-media, linux-tegra, iommu 25.07.2019 5:41, YueHaibing пишет: > If IOMMU_SUPPORT is not set, and COMPILE_TEST is y, > IOMMU_IOVA may be set to m. So building will fails: > > drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': > iommu.c:(.text+0x41): undefined reference to `alloc_iova' > iommu.c:(.text+0x56): undefined reference to `__free_iova' > > Select IOMMU_IOVA while COMPILE_TEST is set to fix this. > > Reported-by: Hulk Robot <hulkci@huawei.com> > Suggested-by: Dmitry Osipenko <digetx@gmail.com> > Fixes: b301f8de1925 ("media: staging: media: tegra-vde: Add IOMMU support") > Signed-off-by: YueHaibing <yuehaibing@huawei.com> > --- > drivers/staging/media/tegra-vde/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/media/tegra-vde/Kconfig b/drivers/staging/media/tegra-vde/Kconfig > index 2e7f644..ba49ea5 100644 > --- a/drivers/staging/media/tegra-vde/Kconfig > +++ b/drivers/staging/media/tegra-vde/Kconfig > @@ -3,7 +3,7 @@ config TEGRA_VDE > tristate "NVIDIA Tegra Video Decoder Engine driver" > depends on ARCH_TEGRA || COMPILE_TEST > select DMA_SHARED_BUFFER > - select IOMMU_IOVA if IOMMU_SUPPORT > + select IOMMU_IOVA if (IOMMU_SUPPORT || COMPILE_TEST) > select SRAM > help > Say Y here to enable support for the NVIDIA Tegra video decoder > This results in missing the case of compile-testing !IOMMU_IOVA for the driver, but probably that's not a big deal. Acked-by: Dmitry Osipenko <digetx@gmail.com> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: staging: tegra-vde: Fix build error 2019-07-25 7:19 ` Dmitry Osipenko @ 2019-09-20 19:32 ` Arnd Bergmann 2019-09-20 22:26 ` Dmitry Osipenko 0 siblings, 1 reply; 11+ messages in thread From: Arnd Bergmann @ 2019-09-20 19:32 UTC (permalink / raw) To: Dmitry Osipenko Cc: YueHaibing, Mauro Carvalho Chehab, gregkh, Thierry Reding, Jonathan Hunter, Robin Murphy, Sakari Ailus, linux-kernel, driverdevel, Linux Media Mailing List, open list:TEGRA ARCHITECTURE SUPPORT, open list:IOMMU DRIVERS On Thu, Jul 25, 2019 at 2:24 PM Dmitry Osipenko <digetx@gmail.com> wrote: > > 25.07.2019 5:41, YueHaibing пишет: > > If IOMMU_SUPPORT is not set, and COMPILE_TEST is y, > > IOMMU_IOVA may be set to m. So building will fails: > > > > drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': > > iommu.c:(.text+0x41): undefined reference to `alloc_iova' > > iommu.c:(.text+0x56): undefined reference to `__free_iova' > > > > Select IOMMU_IOVA while COMPILE_TEST is set to fix this. > > @@ -3,7 +3,7 @@ config TEGRA_VDE > > tristate "NVIDIA Tegra Video Decoder Engine driver" > > depends on ARCH_TEGRA || COMPILE_TEST > > select DMA_SHARED_BUFFER > > - select IOMMU_IOVA if IOMMU_SUPPORT > > + select IOMMU_IOVA if (IOMMU_SUPPORT || COMPILE_TEST) > > select SRAM > > help > > Say Y here to enable support for the NVIDIA Tegra video decoder > > > > This results in missing the case of compile-testing !IOMMU_IOVA for the > driver, but probably that's not a big deal. > > Acked-by: Dmitry Osipenko <digetx@gmail.com> I don't know what happened here, but the patch from YueHaibing caused this error for me, which is very much like the problem it was meant to fix: drivers/gpu/host1x/dev.o: In function `host1x_probe': dev.c:(.text+0x1734): undefined reference to `put_iova_domain' dev.c:(.text+0x1744): undefined reference to `iova_cache_put' drivers/gpu/host1x/dev.o: In function `host1x_remove': dev.c:(.text+0x1894): undefined reference to `put_iova_domain' dev.c:(.text+0x1898): undefined reference to `iova_cache_put' drivers/gpu/host1x/cdma.o: In function `host1x_cdma_init': cdma.c:(.text+0x5d0): undefined reference to `alloc_iova' cdma.c:(.text+0x61c): undefined reference to `__free_iova' drivers/gpu/host1x/cdma.o: In function `host1x_cdma_deinit': cdma.c:(.text+0x6c8): undefined reference to `free_iova' drivers/gpu/host1x/job.o: In function `host1x_job_pin': job.c:(.text+0x514): undefined reference to `alloc_iova' job.c:(.text+0x528): undefined reference to `__free_iova' drivers/gpu/host1x/job.o: In function `host1x_job_unpin': job.c:(.text+0x5bc): undefined reference to `free_iova' After reverthing commit 6b2265975239 ("media: staging: tegra-vde: Fix build error"), I can no longer reproduce the issue. Arnd ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] media: staging: tegra-vde: Fix build error 2019-09-20 19:32 ` Arnd Bergmann @ 2019-09-20 22:26 ` Dmitry Osipenko 0 siblings, 0 replies; 11+ messages in thread From: Dmitry Osipenko @ 2019-09-20 22:26 UTC (permalink / raw) To: Arnd Bergmann Cc: YueHaibing, Mauro Carvalho Chehab, gregkh, Thierry Reding, Jonathan Hunter, Robin Murphy, Sakari Ailus, linux-kernel, driverdevel, Linux Media Mailing List, open list:TEGRA ARCHITECTURE SUPPORT, open list:IOMMU DRIVERS 20.09.2019 22:32, Arnd Bergmann пишет: > On Thu, Jul 25, 2019 at 2:24 PM Dmitry Osipenko <digetx@gmail.com> wrote: >> >> 25.07.2019 5:41, YueHaibing пишет: >>> If IOMMU_SUPPORT is not set, and COMPILE_TEST is y, >>> IOMMU_IOVA may be set to m. So building will fails: >>> >>> drivers/staging/media/tegra-vde/iommu.o: In function `tegra_vde_iommu_map': >>> iommu.c:(.text+0x41): undefined reference to `alloc_iova' >>> iommu.c:(.text+0x56): undefined reference to `__free_iova' >>> >>> Select IOMMU_IOVA while COMPILE_TEST is set to fix this. > >>> @@ -3,7 +3,7 @@ config TEGRA_VDE >>> tristate "NVIDIA Tegra Video Decoder Engine driver" >>> depends on ARCH_TEGRA || COMPILE_TEST >>> select DMA_SHARED_BUFFER >>> - select IOMMU_IOVA if IOMMU_SUPPORT >>> + select IOMMU_IOVA if (IOMMU_SUPPORT || COMPILE_TEST) >>> select SRAM >>> help >>> Say Y here to enable support for the NVIDIA Tegra video decoder >>> >> >> This results in missing the case of compile-testing !IOMMU_IOVA for the >> driver, but probably that's not a big deal. >> >> Acked-by: Dmitry Osipenko <digetx@gmail.com> > > I don't know what happened here, but the patch from YueHaibing caused this > error for me, which is very much like the problem it was meant to fix: > > drivers/gpu/host1x/dev.o: In function `host1x_probe': > dev.c:(.text+0x1734): undefined reference to `put_iova_domain' > dev.c:(.text+0x1744): undefined reference to `iova_cache_put' > drivers/gpu/host1x/dev.o: In function `host1x_remove': > dev.c:(.text+0x1894): undefined reference to `put_iova_domain' > dev.c:(.text+0x1898): undefined reference to `iova_cache_put' > drivers/gpu/host1x/cdma.o: In function `host1x_cdma_init': > cdma.c:(.text+0x5d0): undefined reference to `alloc_iova' > cdma.c:(.text+0x61c): undefined reference to `__free_iova' > drivers/gpu/host1x/cdma.o: In function `host1x_cdma_deinit': > cdma.c:(.text+0x6c8): undefined reference to `free_iova' > drivers/gpu/host1x/job.o: In function `host1x_job_pin': > job.c:(.text+0x514): undefined reference to `alloc_iova' > job.c:(.text+0x528): undefined reference to `__free_iova' > drivers/gpu/host1x/job.o: In function `host1x_job_unpin': > job.c:(.text+0x5bc): undefined reference to `free_iova' > > After reverthing commit 6b2265975239 ("media: staging: > tegra-vde: Fix build error"), I can no longer reproduce the > issue. There is a follow up here: https://patchwork.ozlabs.org/patch/1153176/ ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2019-09-20 22:26 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-07-22 13:47 [PATCH] media: staging: ipu3: Enable IOVA API only when IOMMU support is enabled YueHaibing 2019-07-24 10:30 ` Sakari Ailus 2019-07-24 13:49 ` Robin Murphy 2019-07-24 14:03 ` Yuehaibing 2019-07-24 14:09 ` Dmitry Osipenko 2019-07-24 14:23 ` Robin Murphy 2019-07-24 14:28 ` Dmitry Osipenko 2019-07-25 2:41 ` [PATCH] media: staging: tegra-vde: Fix build error YueHaibing 2019-07-25 7:19 ` Dmitry Osipenko 2019-09-20 19:32 ` Arnd Bergmann 2019-09-20 22:26 ` Dmitry Osipenko
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).