[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