|
@@ -618,8 +618,13 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,
|
|
|
r -= cols;
|
|
|
}
|
|
|
if (!save) {
|
|
|
- vc->vc_y += logo_lines;
|
|
|
- vc->vc_pos += logo_lines * vc->vc_size_row;
|
|
|
+ int lines;
|
|
|
+ if (vc->vc_y + logo_lines >= rows)
|
|
|
+ lines = rows - vc->vc_y - 1;
|
|
|
+ else
|
|
|
+ lines = logo_lines;
|
|
|
+ vc->vc_y += lines;
|
|
|
+ vc->vc_pos += lines * vc->vc_size_row;
|
|
|
}
|
|
|
}
|
|
|
scr_memsetw((unsigned short *) vc->vc_origin,
|