[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 dri-devel mailing list