]> git.karo-electronics.de Git - linux-beck.git/commitdiff
tty: vt, compute vc offsets in advance
authorJiri Slaby <jslaby@suse.cz>
Mon, 3 Oct 2016 09:18:36 +0000 (11:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Oct 2016 14:37:44 +0000 (16:37 +0200)
Only improves readability, no functional changes.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/vt/vt.c

index 2eab714aab67075bccd71bbc7fdb7b62f03e2c33..3cb6504b41d3bfaa9c0b1eb8a7231e4832a889d9 100644 (file)
@@ -4283,6 +4283,9 @@ void vc_scrolldelta_helper(struct vc_data *c, int lines,
                unsigned int rolled_over, void *base, unsigned int size)
 {
        unsigned long ubase = (unsigned long)base;
+       ptrdiff_t scr_end = (void *)c->vc_scr_end - base;
+       ptrdiff_t vorigin = (void *)c->vc_visible_origin - base;
+       ptrdiff_t origin = (void *)c->vc_origin - base;
        int margin = c->vc_size_row * 4;
        int ul, we, p, st;
 
@@ -4293,17 +4296,16 @@ void vc_scrolldelta_helper(struct vc_data *c, int lines,
        }
 
        /* Do we have already enough to allow jumping from 0 to the end? */
-       if (rolled_over > (c->vc_scr_end - ubase) + margin) {
-               ul = c->vc_scr_end - ubase;
+       if (rolled_over > scr_end + margin) {
+               ul = scr_end;
                we = rolled_over + c->vc_size_row;
        } else {
                ul = 0;
                we = size;
        }
 
-       p = (c->vc_visible_origin - ubase - ul + we) % we +
-               lines * c->vc_size_row;
-       st = (c->vc_origin - ubase - ul + we) % we;
+       p = (vorigin - ul + we) % we + lines * c->vc_size_row;
+       st = (origin - ul + we) % we;
 
        /* Only a little piece would be left? Show all incl. the piece! */
        if (st < 2 * margin)