There is a bit too much layering going on and the
rasops_erasecols_rotated() and rasops_eraserows_rotated() functions
end up calling the vcons functions creating a nice infinite loop.
Simplest fix os for them to simply call rasops_putchar_rotated()
directly.  I don't really see a valid reason not to.  The rotation
code hasn't been used since we removed zaurus, but I intend to use it
again to rotate the framebuffer console on a 2-in-1 amd64 laptop I
have.

ok?


Index: dev/rasops/rasops.c
===================================================================
RCS file: /cvs/src/sys/dev/rasops/rasops.c,v
retrieving revision 1.45
diff -u -p -r1.45 rasops.c
--- dev/rasops/rasops.c 16 May 2017 02:22:51 -0000      1.45
+++ dev/rasops/rasops.c 12 Aug 2017 14:14:54 -0000
@@ -1264,7 +1264,7 @@ rasops_erasecols_rotated(void *cookie, i
        ri = (struct rasops_info *)cookie;
 
        for (i = col; i < col + num; i++) {
-               rc = ri->ri_ops.putchar(cookie, row, i, ' ', attr);
+               rc = rasops_putchar_rotated(cookie, row, i, ' ', attr);
                if (rc != 0)
                        return rc;
        }
@@ -1323,7 +1323,7 @@ rasops_eraserows_rotated(void *cookie, i
 
        for (rn = row; rn < row + num; rn++)
                for (col = 0; col < ri->ri_cols; col++) {
-                       rc = ri->ri_ops.putchar(cookie, rn, col, ' ', attr);
+                       rc = rasops_putchar_rotated(cookie, rn, col, ' ', attr);
                        if (rc != 0)
                                return rc;
                }

Reply via email to