diff options
author | Michael Witten <mfwitten@gmail.com> | 2011-09-16 16:45:30 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-10-10 04:04:57 -0400 |
commit | c245cb9e15055ed5dcf7eaf29232badb0059fdc1 (patch) | |
tree | ab8142c8cf4bb3bf43b1086c4eba24885ff409af /drivers/gpu/drm/radeon/radeon_device.c | |
parent | d0d0a225e6ad43314c9aa7ea081f76adc5098ad4 (diff) |
DRM: bug: RADEON_DEBUGFS_MAX_{NUM_FILES => COMPONENTS}
The value of RADEON_DEBUGFS_MAX_NUM_FILES has been used to
specify the size of an array, each element of which looks
like this:
struct radeon_debugfs {
struct drm_info_list *files;
unsigned num_files;
};
Consequently, the number of debugfs files may be much greater
than RADEON_DEBUGFS_MAX_NUM_FILES, something that the current
code ignores:
if ((_radeon_debugfs_count + nfiles) > RADEON_DEBUGFS_MAX_NUM_FILES) {
DRM_ERROR("Reached maximum number of debugfs files.\n");
DRM_ERROR("Report so we increase RADEON_DEBUGFS_MAX_NUM_FILES.\n");
return -EINVAL;
}
This commit fixes this make, and accordingly renames:
RADEON_DEBUGFS_MAX_NUM_FILES
to:
RADEON_DEBUGFS_MAX_COMPONENTS
Signed-off-by: Michael Witten <mfwitten@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_device.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_device.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index b51e15725c6e..31b1f4bf133e 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c | |||
@@ -981,7 +981,7 @@ struct radeon_debugfs { | |||
981 | struct drm_info_list *files; | 981 | struct drm_info_list *files; |
982 | unsigned num_files; | 982 | unsigned num_files; |
983 | }; | 983 | }; |
984 | static struct radeon_debugfs _radeon_debugfs[RADEON_DEBUGFS_MAX_NUM_FILES]; | 984 | static struct radeon_debugfs _radeon_debugfs[RADEON_DEBUGFS_MAX_COMPONENTS]; |
985 | static unsigned _radeon_debugfs_count = 0; | 985 | static unsigned _radeon_debugfs_count = 0; |
986 | 986 | ||
987 | int radeon_debugfs_add_files(struct radeon_device *rdev, | 987 | int radeon_debugfs_add_files(struct radeon_device *rdev, |
@@ -996,14 +996,17 @@ int radeon_debugfs_add_files(struct radeon_device *rdev, | |||
996 | return 0; | 996 | return 0; |
997 | } | 997 | } |
998 | } | 998 | } |
999 | if ((_radeon_debugfs_count + nfiles) > RADEON_DEBUGFS_MAX_NUM_FILES) { | 999 | |
1000 | DRM_ERROR("Reached maximum number of debugfs files.\n"); | 1000 | i = _radeon_debugfs_count + 1; |
1001 | DRM_ERROR("Report so we increase RADEON_DEBUGFS_MAX_NUM_FILES.\n"); | 1001 | if (i > RADEON_DEBUGFS_MAX_COMPONENTS) { |
1002 | DRM_ERROR("Reached maximum number of debugfs components.\n"); | ||
1003 | DRM_ERROR("Report so we increase " | ||
1004 | "RADEON_DEBUGFS_MAX_COMPONENTS.\n"); | ||
1002 | return -EINVAL; | 1005 | return -EINVAL; |
1003 | } | 1006 | } |
1004 | _radeon_debugfs[_radeon_debugfs_count].files = files; | 1007 | _radeon_debugfs[_radeon_debugfs_count].files = files; |
1005 | _radeon_debugfs[_radeon_debugfs_count].num_files = nfiles; | 1008 | _radeon_debugfs[_radeon_debugfs_count].num_files = nfiles; |
1006 | _radeon_debugfs_count++; | 1009 | _radeon_debugfs_count = i; |
1007 | #if defined(CONFIG_DEBUG_FS) | 1010 | #if defined(CONFIG_DEBUG_FS) |
1008 | drm_debugfs_create_files(files, nfiles, | 1011 | drm_debugfs_create_files(files, nfiles, |
1009 | rdev->ddev->control->debugfs_root, | 1012 | rdev->ddev->control->debugfs_root, |