Re: [PATCH] video/console: Clip the right margin clear to the visibleregion

From: Florian Tobias Schandinat
Date: Thu Mar 29 2012 - 21:17:08 EST


Hi Chris,

On 03/26/2012 08:17 PM, Chris Wilson wrote:
> For some unknown reason, yres_virtual was 2x larger the the size specified
> by i915 and so when blit_clear_margins() tried to clear the full virtual
> right-hand margin it tried to write far beyond the end of the buffer.
>
> This limits the clear to only the visible portion of the right-hand
> margin, similar to how the bottom margin is treated.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38138

as you also found the root of the problem and posted a patch to fix i915
(or rather all KMS-based framebuffers) by validating the virtual
resolution in check var, I don't see any reason to apply this one. I'm
not sure about it, but changing the behaviour of this function might
cause some undesired changes in user experience and as there is no
problem with this code as is, I'd prefer to not change it.


Best regards,

Florian Tobias Schandinat

> Cc: Florian Tobias Schandinat <FlorianSchandinat@xxxxxx>
> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> ---
> drivers/video/console/bitblit.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/video/console/bitblit.c b/drivers/video/console/bitblit.c
> index 28b1a83..9f89e5a 100644
> --- a/drivers/video/console/bitblit.c
> +++ b/drivers/video/console/bitblit.c
> @@ -219,9 +219,9 @@ static void bit_clear_margins(struct vc_data *vc, struct fb_info *info,
>
> if (rw && !bottom_only) {
> region.dx = info->var.xoffset + rs;
> - region.dy = 0;
> + region.dy = info->var.yoffset;
> region.width = rw;
> - region.height = info->var.yres_virtual;
> + region.height = info->var.yres;
> info->fbops->fb_fillrect(info, &region);
> }
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/