2021-06-03 22:02:55

by Kees Cook

[permalink] [raw]
Subject: [PATCH] drm/pl111: Actually fix CONFIG_VEXPRESS_CONFIG depends

VEXPRESS_CONFIG needs to either be missing, built-in, or modular when
pl111 is modular. Update the Kconfig to reflect the need.

Cc: Emma Anholt <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: [email protected]
Fixes: 4dc7c97d04dc ("drm/pl111: depend on CONFIG_VEXPRESS_CONFIG")
Signed-off-by: Kees Cook <[email protected]>
---
drivers/gpu/drm/pl111/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/pl111/Kconfig b/drivers/gpu/drm/pl111/Kconfig
index c5210a5bef1b..b84879ca430d 100644
--- a/drivers/gpu/drm/pl111/Kconfig
+++ b/drivers/gpu/drm/pl111/Kconfig
@@ -2,7 +2,8 @@
config DRM_PL111
tristate "DRM Support for PL111 CLCD Controller"
depends on DRM
- depends on VEXPRESS_CONFIG
+ depends on ARM || ARM64 || COMPILE_TEST
+ depends on !VEXPRESS_CONFIG || VEXPRESS_CONFIG=DRM
depends on COMMON_CLK
select DRM_KMS_HELPER
select DRM_KMS_CMA_HELPER
--
2.25.1


2021-06-03 22:32:06

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH] drm/pl111: Actually fix CONFIG_VEXPRESS_CONFIG depends

On Thu, Jun 3, 2021 at 11:58 PM Kees Cook <[email protected]> wrote:
>
> VEXPRESS_CONFIG needs to either be missing, built-in, or modular when
> pl111 is modular. Update the Kconfig to reflect the need.
>
> Cc: Emma Anholt <[email protected]>
> Cc: David Airlie <[email protected]>
> Cc: Daniel Vetter <[email protected]>
> Cc: [email protected]
> Fixes: 4dc7c97d04dc ("drm/pl111: depend on CONFIG_VEXPRESS_CONFIG")
> Signed-off-by: Kees Cook <[email protected]>
> ---
> drivers/gpu/drm/pl111/Kconfig | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/pl111/Kconfig b/drivers/gpu/drm/pl111/Kconfig
> index c5210a5bef1b..b84879ca430d 100644
> --- a/drivers/gpu/drm/pl111/Kconfig
> +++ b/drivers/gpu/drm/pl111/Kconfig
> @@ -2,7 +2,8 @@
> config DRM_PL111
> tristate "DRM Support for PL111 CLCD Controller"
> depends on DRM
> - depends on VEXPRESS_CONFIG
> + depends on ARM || ARM64 || COMPILE_TEST
> + depends on !VEXPRESS_CONFIG || VEXPRESS_CONFIG=DRM

Hm I thought the canonical way to express optional depdencies was


> depends on COMMON_CLK
> select DRM_KMS_HELPER
> select DRM_KMS_CMA_HELPER
> --
> 2.25.1
>


--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

2021-06-03 22:34:14

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH] drm/pl111: Actually fix CONFIG_VEXPRESS_CONFIG depends

[gmail is funny]

On Thu, Jun 3, 2021 at 11:58 PM Kees Cook <[email protected]> wrote:
>
> VEXPRESS_CONFIG needs to either be missing, built-in, or modular when
> pl111 is modular. Update the Kconfig to reflect the need.
>
> Cc: Emma Anholt <[email protected]>
> Cc: David Airlie <[email protected]>
> Cc: Daniel Vetter <[email protected]>
> Cc: [email protected]
> Fixes: 4dc7c97d04dc ("drm/pl111: depend on CONFIG_VEXPRESS_CONFIG")
> Signed-off-by: Kees Cook <[email protected]>
> ---
> drivers/gpu/drm/pl111/Kconfig | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/pl111/Kconfig b/drivers/gpu/drm/pl111/Kconfig
> index c5210a5bef1b..b84879ca430d 100644
> --- a/drivers/gpu/drm/pl111/Kconfig
> +++ b/drivers/gpu/drm/pl111/Kconfig
> @@ -2,7 +2,8 @@
> config DRM_PL111
> tristate "DRM Support for PL111 CLCD Controller"
> depends on DRM
> - depends on VEXPRESS_CONFIG
> + depends on ARM || ARM64 || COMPILE_TEST
> + depends on !VEXPRESS_CONFIG || VEXPRESS_CONFIG=DRM

I thought the canonical way to represent optional dependencies was
depends on FOO || FOO=n

Since we don't really care whether it's the same as DRM (that's
sufficient, but a bit too much), it needs to match DRM_PL111, or be
disabled. It's at least the pattern various drm drivers use for AGP.
If that still works in testing, can you pls respin?
-Daniel

> depends on COMMON_CLK
> select DRM_KMS_HELPER
> select DRM_KMS_CMA_HELPER
> --
> 2.25.1
>


--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

2021-06-04 01:36:48

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] drm/pl111: Actually fix CONFIG_VEXPRESS_CONFIG depends

On Fri, Jun 04, 2021 at 12:30:00AM +0200, Daniel Vetter wrote:
> [gmail is funny]
>
> On Thu, Jun 3, 2021 at 11:58 PM Kees Cook <[email protected]> wrote:
> >
> > VEXPRESS_CONFIG needs to either be missing, built-in, or modular when
> > pl111 is modular. Update the Kconfig to reflect the need.
> >
> > Cc: Emma Anholt <[email protected]>
> > Cc: David Airlie <[email protected]>
> > Cc: Daniel Vetter <[email protected]>
> > Cc: [email protected]
> > Fixes: 4dc7c97d04dc ("drm/pl111: depend on CONFIG_VEXPRESS_CONFIG")
> > Signed-off-by: Kees Cook <[email protected]>
> > ---
> > drivers/gpu/drm/pl111/Kconfig | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/pl111/Kconfig b/drivers/gpu/drm/pl111/Kconfig
> > index c5210a5bef1b..b84879ca430d 100644
> > --- a/drivers/gpu/drm/pl111/Kconfig
> > +++ b/drivers/gpu/drm/pl111/Kconfig
> > @@ -2,7 +2,8 @@
> > config DRM_PL111
> > tristate "DRM Support for PL111 CLCD Controller"
> > depends on DRM
> > - depends on VEXPRESS_CONFIG
> > + depends on ARM || ARM64 || COMPILE_TEST
> > + depends on !VEXPRESS_CONFIG || VEXPRESS_CONFIG=DRM
>
> I thought the canonical way to represent optional dependencies was
> depends on FOO || FOO=n

Ah-ha! So it is:

drm/Kconfig: depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && HAS_DMA
drm/Kconfig: depends on FB_SIS || FB_SIS=n
drm/msm/Kconfig: depends on QCOM_OCMEM || QCOM_OCMEM=n
drm/msm/Kconfig: depends on QCOM_LLCC || QCOM_LLCC=n
drm/msm/Kconfig: depends on QCOM_COMMAND_DB || QCOM_COMMAND_DB=n

I'll resping and retest. Thanks for the pointer!

-Kees

--
Kees Cook