]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm: Reject replacing property enum values
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 6 Mar 2018 16:48:44 +0000 (18:48 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 7 Mar 2018 16:19:37 +0000 (18:19 +0200)
If the property already has the enum value WARN and bail.
Replacing enum values doesn't make sense to me.

Throw out the pointless list_empty() while at it.

Cc: Daniel Vetter <daniel@ffwll.ch>
Suggested-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180306164849.2862-1-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_property.c

index c37ac41125b536b7d9d27a829af2d06c6dd871ab..d77b0c4dc48572700c64bc5eb8bc98f83e32362e 100644 (file)
@@ -390,14 +390,9 @@ int drm_property_add_enum(struct drm_property *property, int index,
                        (value > 63))
                return -EINVAL;
 
-       if (!list_empty(&property->enum_list)) {
-               list_for_each_entry(prop_enum, &property->enum_list, head) {
-                       if (prop_enum->value == value) {
-                               strncpy(prop_enum->name, name, DRM_PROP_NAME_LEN);
-                               prop_enum->name[DRM_PROP_NAME_LEN-1] = '\0';
-                               return 0;
-                       }
-               }
+       list_for_each_entry(prop_enum, &property->enum_list, head) {
+               if (WARN_ON(prop_enum->value == value))
+                       return -EINVAL;
        }
 
        prop_enum = kzalloc(sizeof(struct drm_property_enum), GFP_KERNEL);