[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
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
>
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
>
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