--- drivers/char/vt.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) Index: libata-dev/drivers/char/vt.c =================================================================== --- libata-dev.orig/drivers/char/vt.c +++ libata-dev/drivers/char/vt.c @@ -203,11 +203,6 @@ static struct vc_data *master_display_fg */ /* - * For the same reason, we defer scrollback to the console callback. - */ -static int scrollback_delta; - -/* * Hook so that the power management routines can (un)blank * the console on our behalf. */ @@ -247,12 +242,6 @@ static inline unsigned short *screenpos( return p; } -static inline void scrolldelta(int lines) -{ - scrollback_delta += lines; - schedule_console_callback(); -} - void schedule_console_callback(void) { schedule_work(&console_work); @@ -970,14 +959,16 @@ void scrollback(struct vc_data *vc, int { if (!lines) lines = vc->vc_rows / 2; - scrolldelta(-lines); + if (vc->vc_mode == KD_TEXT) + vc->vc_sw->con_scrolldelta(vc, -lines); } void scrollfront(struct vc_data *vc, int lines) { if (!lines) lines = vc->vc_rows / 2; - scrolldelta(lines); + if (vc->vc_mode == KD_TEXT) + vc->vc_sw->con_scrolldelta(vc, lines); } static void lf(struct vc_data *vc) @@ -2144,13 +2135,6 @@ static void console_callback(void *ignor do_poke_blanked_console = 0; poke_blanked_console(); } - if (scrollback_delta) { - struct vc_data *vc = vc_cons[fg_console].d; - clear_selection(); - if (vc->vc_mode == KD_TEXT) - vc->vc_sw->con_scrolldelta(vc, scrollback_delta); - scrollback_delta = 0; - } if (blank_timer_expired) { do_blank_screen(0); blank_timer_expired = 0;