[PATCH] DRM: bug: RADEON_DEBUGFS_MAX_{NUM_FILES => COMPONENTS}
Ilija Hadzic
ihadzic at research.bell-labs.com
Mon Oct 24 18:35:26 PDT 2011
Maybe you are looking at the wrong branch, but I see it in drm-next (it
has been there since Oct 10)
http://cgit.freedesktop.org/~airlied/linux/commit/?h=drm-next&id=c245cb9e15055ed5dcf7eaf29232badb0059fdc1
On Mon, 24 Oct 2011, Michael Witten wrote:
> On Fri, Oct 7, 2011 at 19:20, Michael Witten <mfwitten at gmail.com> wrote:
> Date: Fri, 16 Sep 2011 20:45:30 +0000
>
> 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 mistake, and accordingly renames:
>
> RADEON_DEBUGFS_MAX_NUM_FILES
>
> to:
>
> RADEON_DEBUGFS_MAX_COMPONENTS
>
> Signed-off-by: Michael Witten <mfwitten at gmail.com>
> ---
> drivers/gpu/drm/radeon/radeon.h | 2 +-
> drivers/gpu/drm/radeon/radeon_device.c | 13 ++++++++-----
> 2 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> index c1e056b..dd7bab9 100644
> --- a/drivers/gpu/drm/radeon/radeon.h
> +++ b/drivers/gpu/drm/radeon/radeon.h
> @@ -102,7 +102,7 @@ extern int radeon_pcie_gen2;
> #define RADEON_FENCE_JIFFIES_TIMEOUT (HZ / 2)
> /* RADEON_IB_POOL_SIZE must be a power of 2 */
> #define RADEON_IB_POOL_SIZE 16
> -#define RADEON_DEBUGFS_MAX_NUM_FILES 32
> +#define RADEON_DEBUGFS_MAX_COMPONENTS 32
> #define RADEONFB_CONN_LIMIT 4
> #define RADEON_BIOS_NUM_SCRATCH 8
>
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
> index b51e157..31b1f4b 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -981,7 +981,7 @@ struct radeon_debugfs {
> struct drm_info_list *files;
> unsigned num_files;
> };
> -static struct radeon_debugfs _radeon_debugfs[RADEON_DEBUGFS_MAX_NUM_FILES];
> +static struct radeon_debugfs _radeon_debugfs[RADEON_DEBUGFS_MAX_COMPONENTS];
> static unsigned _radeon_debugfs_count = 0;
>
> int radeon_debugfs_add_files(struct radeon_device *rdev,
> @@ -996,14 +996,17 @@ int radeon_debugfs_add_files(struct radeon_device *rdev,
> return 0;
> }
> }
> - 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");
> +
> + i = _radeon_debugfs_count + 1;
> + if (i > RADEON_DEBUGFS_MAX_COMPONENTS) {
> + DRM_ERROR("Reached maximum number of debugfs components.\n");
> + DRM_ERROR("Report so we increase "
> + "RADEON_DEBUGFS_MAX_COMPONENTS.\n");
> return -EINVAL;
> }
> _radeon_debugfs[_radeon_debugfs_count].files = files;
> _radeon_debugfs[_radeon_debugfs_count].num_files = nfiles;
> - _radeon_debugfs_count++;
> + _radeon_debugfs_count = i;
> #if defined(CONFIG_DEBUG_FS)
> drm_debugfs_create_files(files, nfiles,
> rdev->ddev->control->debugfs_root,
> --
> 1.7.6.409.ge7a85
>
>
This patch has not yet been applied. What's wrong?
Sincerely,
Michael Witten
_______________________________________________
dri-devel mailing list
dri-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the dri-devel
mailing list