On 08/18/2016 02:26 AM, Daniel Vetter wrote: > It's only used in drm_mode_object_get_properties, and we can compute > it there directly with a bit of code shuffling. >
Reviewed-by: Archit Taneja <architt at codeaurora.org> > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch> > --- > drivers/gpu/drm/drm_mode_object.c | 31 ++++++++++++------------------- > include/drm/drm_mode_object.h | 2 +- > 2 files changed, 13 insertions(+), 20 deletions(-) > > diff --git a/drivers/gpu/drm/drm_mode_object.c > b/drivers/gpu/drm/drm_mode_object.c > index cef9104e8285..a92aeed51156 100644 > --- a/drivers/gpu/drm/drm_mode_object.c > +++ b/drivers/gpu/drm/drm_mode_object.c > @@ -209,8 +209,6 @@ void drm_object_attach_property(struct drm_mode_object > *obj, > obj->properties->properties[count] = property; > obj->properties->values[count] = init_val; > obj->properties->count++; > - if (property->flags & DRM_MODE_PROP_ATOMIC) > - obj->properties->atomic_count++; > } > EXPORT_SYMBOL(drm_object_attach_property); > > @@ -288,35 +286,30 @@ int drm_mode_object_get_properties(struct > drm_mode_object *obj, bool atomic, > uint64_t __user *prop_values, > uint32_t *arg_count_props) > { > - int props_count; > - int i, ret, copied; > + int i, ret, count; > > - props_count = obj->properties->count; > - if (!atomic) > - props_count -= obj->properties->atomic_count; > + for (i = 0, count = 0; i < obj->properties->count; i++) { > + struct drm_property *prop = obj->properties->properties[i]; > + uint64_t val; > > - if ((*arg_count_props >= props_count) && props_count) { > - for (i = 0, copied = 0; copied < props_count; i++) { > - struct drm_property *prop = > obj->properties->properties[i]; > - uint64_t val; > - > - if ((prop->flags & DRM_MODE_PROP_ATOMIC) && !atomic) > - continue; > + if ((prop->flags & DRM_MODE_PROP_ATOMIC) && !atomic) > + continue; > > + if (*arg_count_props > count) { > ret = drm_object_property_get_value(obj, prop, &val); > if (ret) > return ret; > > - if (put_user(prop->base.id, prop_ptr + copied)) > + if (put_user(prop->base.id, prop_ptr + count)) > return -EFAULT; > > - if (put_user(val, prop_values + copied)) > + if (put_user(val, prop_values + count)) > return -EFAULT; > - > - copied++; > } > + > + count++; > } > - *arg_count_props = props_count; > + *arg_count_props = count; > > return 0; > } > diff --git a/include/drm/drm_mode_object.h b/include/drm/drm_mode_object.h > index c0e4414299f7..b8adb6425f2a 100644 > --- a/include/drm/drm_mode_object.h > +++ b/include/drm/drm_mode_object.h > @@ -37,7 +37,7 @@ struct drm_mode_object { > > #define DRM_OBJECT_MAX_PROPERTY 24 > struct drm_object_properties { > - int count, atomic_count; > + int count; > /* NOTE: if we ever start dynamically destroying properties (ie. > * not at drm_mode_config_cleanup() time), then we'd have to do > * a better job of detaching property from mode objects to avoid > -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project