2022-05-10 20:54:22

by Mark Yacoub

[permalink] [raw]
Subject: [PATCH] drm: Add a debug message when getting a prop is missing

[Why]
If a connector property is attached but
drm_atomic_connector_get_property doesn't handle a case for it,
modeteset will crash with a segfault without.

[How]
Add a debug message indicating that a connector property is not handled
when user space is trying to read it.

TEST=modetest

Signed-off-by: Mark Yacoub <[email protected]>
---
drivers/gpu/drm/drm_atomic_uapi.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
index acb1ee93d206..36b0f664dd80 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -884,6 +884,12 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
return connector->funcs->atomic_get_property(connector,
state, property, val);
} else {
+ // LOG that the kernel is missing handling this property as a case here.
+ drm_dbg_atomic(
+ dev,
+ "[CONNECTOR:%d:%s] Get Property [PROP:%d:%s] is not handled\n",
+ connector->base.id, connector->name, property->base.id,
+ property->name);
return -EINVAL;
}

--
2.36.0.512.ge40c2bad7a-goog



2022-05-14 00:22:51

by Mark Yacoub

[permalink] [raw]
Subject: Re: [PATCH] drm: Add a debug message when getting a prop is missing

friendly ping :)

On Tue, May 10, 2022 at 2:28 PM Mark Yacoub <[email protected]> wrote:
>
> [Why]
> If a connector property is attached but
> drm_atomic_connector_get_property doesn't handle a case for it,
> modeteset will crash with a segfault without.
>
> [How]
> Add a debug message indicating that a connector property is not handled
> when user space is trying to read it.
>
> TEST=modetest
>
> Signed-off-by: Mark Yacoub <[email protected]>
> ---
> drivers/gpu/drm/drm_atomic_uapi.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
> index acb1ee93d206..36b0f664dd80 100644
> --- a/drivers/gpu/drm/drm_atomic_uapi.c
> +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> @@ -884,6 +884,12 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
> return connector->funcs->atomic_get_property(connector,
> state, property, val);
> } else {
> + // LOG that the kernel is missing handling this property as a case here.
> + drm_dbg_atomic(
> + dev,
> + "[CONNECTOR:%d:%s] Get Property [PROP:%d:%s] is not handled\n",
> + connector->base.id, connector->name, property->base.id,
> + property->name);
> return -EINVAL;
> }
>
> --
> 2.36.0.512.ge40c2bad7a-goog
>

2022-05-16 20:39:41

by Mark Yacoub

[permalink] [raw]
Subject: Re: [PATCH] drm: Add a debug message when getting a prop is missing

friendly ping :))

On Tue, May 10, 2022 at 2:28 PM Mark Yacoub <[email protected]> wrote:
>
> [Why]
> If a connector property is attached but
> drm_atomic_connector_get_property doesn't handle a case for it,
> modeteset will crash with a segfault without.
>
> [How]
> Add a debug message indicating that a connector property is not handled
> when user space is trying to read it.
>
> TEST=modetest
>
> Signed-off-by: Mark Yacoub <[email protected]>
> ---
> drivers/gpu/drm/drm_atomic_uapi.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
> index acb1ee93d206..36b0f664dd80 100644
> --- a/drivers/gpu/drm/drm_atomic_uapi.c
> +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> @@ -884,6 +884,12 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
> return connector->funcs->atomic_get_property(connector,
> state, property, val);
> } else {
> + // LOG that the kernel is missing handling this property as a case here.
> + drm_dbg_atomic(
> + dev,
> + "[CONNECTOR:%d:%s] Get Property [PROP:%d:%s] is not handled\n",
> + connector->base.id, connector->name, property->base.id,
> + property->name);
> return -EINVAL;
> }
>
> --
> 2.36.0.512.ge40c2bad7a-goog
>

2022-05-17 14:04:12

by Jani Nikula

[permalink] [raw]
Subject: Re: [PATCH] drm: Add a debug message when getting a prop is missing

On Tue, 10 May 2022, Mark Yacoub <[email protected]> wrote:
> [Why]
> If a connector property is attached but
> drm_atomic_connector_get_property doesn't handle a case for it,
> modeteset will crash with a segfault without.
>
> [How]
> Add a debug message indicating that a connector property is not handled
> when user space is trying to read it.
>
> TEST=modetest
>
> Signed-off-by: Mark Yacoub <[email protected]>
> ---
> drivers/gpu/drm/drm_atomic_uapi.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
> index acb1ee93d206..36b0f664dd80 100644
> --- a/drivers/gpu/drm/drm_atomic_uapi.c
> +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> @@ -884,6 +884,12 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
> return connector->funcs->atomic_get_property(connector,
> state, property, val);
> } else {
> + // LOG that the kernel is missing handling this property as a case here.

The comment is unnecessary, and we also don't use // comments.

> + drm_dbg_atomic(
> + dev,
> + "[CONNECTOR:%d:%s] Get Property [PROP:%d:%s] is not handled\n",
> + connector->base.id, connector->name, property->base.id,
> + property->name);

Why not use the same message as in drm_atomic_connector_set_property()?

Blank line here.

BR,
Jani.

> return -EINVAL;
> }

--
Jani Nikula, Intel Open Source Graphics Center