[PATCH] drm/radeon/kms: only warn on mipmap size checks in r600 cs checker
Andy Furniss
andyqos at ukfsn.org
Tue Sep 14 03:24:05 PDT 2010
Alex Deucher wrote:
> The texture base address registers are in units of 256 bytes.
> The original CS checker treated these offsets as bytes, so the
> original check was wrong. I fixed the units in a patch during
> the 2.6.36 cycle, but this ended up breaking some existing
> userspace (probably due to a bug in either userspace texture allocation
> or the drm texture mipmap checker). So for now, until we come
> up with a better fix, just warn if the mipmap size it too large.
> This will keep existing userspace working and it should be just
> as safe as before when we were checking the wrong units. These
> are GPU MC addresses, so if they fall outside of the VRAM or
> GART apertures, they end up at the GPU default page, so this should
> be safe from a security perspective.
>
> Signed-off-by: Alex Deucher<alexdeucher at gmail.com>
> Cc: Jerome Glisse<glisse at freedesktop.org>
> ---
> drivers/gpu/drm/radeon/r600_cs.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
> index d886494..27023a3 100644
> --- a/drivers/gpu/drm/radeon/r600_cs.c
> +++ b/drivers/gpu/drm/radeon/r600_cs.c
> @@ -1172,7 +1172,6 @@ static inline int r600_check_texture_resource(struct radeon_cs_parser *p, u32 i
> if ((mipmap_size + word0)> radeon_bo_size(mipmap)) {
> dev_warn(p->dev, "mipmap bo too small (%d %d %d %d %d %d -> %d have %ld)\n",
> w0, h0, bpe, blevel, nlevels, word0, mipmap_size, radeon_bo_size(texture));
> - return -EINVAL;
> }
> return 0;
> }
It fixes ut2004 demo OK, but it spams the logs with 000s of errors.
More information about the dri-devel
mailing list