[Intel-gfx] [PATCH] drm: Move property validation to a helper.
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Wed Sep 7 09:17:21 UTC 2016
Op 07-09-16 om 10:58 schreef Maarten Lankhorst:
> Property lifetimes are equal to the device lifetime, so the separate
> drm_property_find is not needed. The pointer can be retrieved from
> the properties member, which saves us some locking and a extra lookup.
>
> The lifetime for properties is until the device is destroyed, which
> happens late in the device unload path.
>
> Testcase: kms_properties
> Suggested-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> ---
> drivers/gpu/drm/drm_atomic.c | 16 ++++------------
> drivers/gpu/drm/drm_crtc_internal.h | 2 ++
> drivers/gpu/drm/drm_mode_object.c | 31 ++++++++++++++++---------------
> 3 files changed, 22 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index fac156c43506..8bec8466781c 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1609,7 +1609,7 @@ int drm_mode_atomic_ioctl(struct drm_device *dev,
> struct drm_crtc_state *crtc_state;
> unsigned plane_mask;
> int ret = 0;
> - unsigned int i, j, k;
> + unsigned int i, j;
>
> /* disallow for drivers not supporting atomic: */
> if (!drm_core_check_feature(dev, DRIVER_ATOMIC))
> @@ -1691,19 +1691,11 @@ retry:
> goto out;
> }
>
> - for (k = 0; k < obj->properties->count; k++)
> - if (obj->properties->properties[k]->base.id == prop_id)
> - break;
> -
> - if (k == obj->properties->count) {
> - ret = -EINVAL;
> - goto out;
> - }
> -
> - prop = drm_property_find(dev, prop_id);
> + prop = drm_mode_obj_find_prop_id(obj, prop_id);
> if (!prop) {
> drm_mode_object_unreference(obj);
> - ret = -ENOENT;
> + DRM_DEBUG_ATOMIC("cannot find property %u for obj %u\n", prop_id, obj_id);
> + ret = -EINVAL;
This needs to stay -ENOENT it seems. kms_atomic testcase relies on it.
More information about the Intel-gfx
mailing list