diff options
author | Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> | 2007-05-08 03:37:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 14:15:27 -0400 |
commit | 250038f5a7207796fb54aff3dc686d664659cf0c (patch) | |
tree | 13b0ff75f25f4e1d8f5769e23dc1bac28fe11ba3 /drivers | |
parent | 538c79248c0dc1a4a37d92254a571bd62f6eb7f2 (diff) |
fbdev: avoid vertical overflow when making space for the logo
fbcon_prepare_logo(): Avoid vertical overflow when making space for the logo
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Acked-By: James Simmons <jsimmons@infradead.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/console/fbcon.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index 0429fd2cece0..bd131d472e24 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c | |||
@@ -618,8 +618,13 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info, | |||
618 | r -= cols; | 618 | r -= cols; |
619 | } | 619 | } |
620 | if (!save) { | 620 | if (!save) { |
621 | vc->vc_y += logo_lines; | 621 | int lines; |
622 | vc->vc_pos += logo_lines * vc->vc_size_row; | 622 | if (vc->vc_y + logo_lines >= rows) |
623 | lines = rows - vc->vc_y - 1; | ||
624 | else | ||
625 | lines = logo_lines; | ||
626 | vc->vc_y += lines; | ||
627 | vc->vc_pos += lines * vc->vc_size_row; | ||
623 | } | 628 | } |
624 | } | 629 | } |
625 | scr_memsetw((unsigned short *) vc->vc_origin, | 630 | scr_memsetw((unsigned short *) vc->vc_origin, |