diff options
| -rw-r--r-- | arch/x86/boot/video.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c index f767164cd5df..43eda284d27f 100644 --- a/arch/x86/boot/video.c +++ b/arch/x86/boot/video.c | |||
| @@ -298,11 +298,18 @@ static void restore_screen(void) | |||
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | /* Restore cursor position */ | 300 | /* Restore cursor position */ |
| 301 | if (saved.curx >= xs) | ||
| 302 | saved.curx = xs-1; | ||
| 303 | if (saved.cury >= ys) | ||
| 304 | saved.cury = ys-1; | ||
| 305 | |||
| 301 | initregs(&ireg); | 306 | initregs(&ireg); |
| 302 | ireg.ah = 0x02; /* Set cursor position */ | 307 | ireg.ah = 0x02; /* Set cursor position */ |
| 303 | ireg.dh = saved.cury; | 308 | ireg.dh = saved.cury; |
| 304 | ireg.dl = saved.curx; | 309 | ireg.dl = saved.curx; |
| 305 | intcall(0x10, &ireg, NULL); | 310 | intcall(0x10, &ireg, NULL); |
| 311 | |||
| 312 | store_cursor_position(); | ||
| 306 | } | 313 | } |
| 307 | 314 | ||
| 308 | void set_video(void) | 315 | void set_video(void) |
