drm radeon: Return -EINVAL on wrong pm sysfs access
authorThomas Renninger <trenn@suse.de>
Wed, 23 Mar 2011 15:14:09 +0000 (15:14 +0000)
committerDave Airlie <airlied@redhat.com>
Thu, 24 Mar 2011 10:24:49 +0000 (20:24 +1000)
Throw an error if someone tries to fill this with
wrong data, instead of simply ignoring the input.
Now you get:

echo hello >/sys/../power_method
-bash: echo: write error: Invalid argument

Signed-off-by: Thomas Renninger <trenn@suse.de>
CC: Alexander.Deucher@amd.com
CC: dri-devel@lists.freedesktop.org
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_pm.c

index 2aed03bde4b2ad3bf40963d7acc1f66afa843da2..08de669e025ab9bddf0bd118a457288bbb2b49e0 100644 (file)
@@ -365,12 +365,14 @@ static ssize_t radeon_set_pm_profile(struct device *dev,
                else if (strncmp("high", buf, strlen("high")) == 0)
                        rdev->pm.profile = PM_PROFILE_HIGH;
                else {
-                       DRM_ERROR("invalid power profile!\n");
+                       count = -EINVAL;
                        goto fail;
                }
                radeon_pm_update_profile(rdev);
                radeon_pm_set_clocks(rdev);
-       }
+       } else
+               count = -EINVAL;
+
 fail:
        mutex_unlock(&rdev->pm.mutex);
 
@@ -413,7 +415,7 @@ static ssize_t radeon_set_pm_method(struct device *dev,
                mutex_unlock(&rdev->pm.mutex);
                cancel_delayed_work_sync(&rdev->pm.dynpm_idle_work);
        } else {
-               DRM_ERROR("invalid power method!\n");
+               count = -EINVAL;
                goto fail;
        }
        radeon_pm_compute_clocks(rdev);