|
@@ -1124,11 +1124,15 @@ static int vgacon_do_font_op(struct vgastate *state,char *arg,int set,int ch512)
|
|
|
|
|
|
if (arg) {
|
|
|
if (set)
|
|
|
- for (i = 0; i < cmapsz; i++)
|
|
|
+ for (i = 0; i < cmapsz; i++) {
|
|
|
vga_writeb(arg[i], charmap + i);
|
|
|
+ cond_resched();
|
|
|
+ }
|
|
|
else
|
|
|
- for (i = 0; i < cmapsz; i++)
|
|
|
+ for (i = 0; i < cmapsz; i++) {
|
|
|
arg[i] = vga_readb(charmap + i);
|
|
|
+ cond_resched();
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
* In 512-character mode, the character map is not contiguous if
|
|
@@ -1139,11 +1143,15 @@ static int vgacon_do_font_op(struct vgastate *state,char *arg,int set,int ch512)
|
|
|
charmap += 2 * cmapsz;
|
|
|
arg += cmapsz;
|
|
|
if (set)
|
|
|
- for (i = 0; i < cmapsz; i++)
|
|
|
+ for (i = 0; i < cmapsz; i++) {
|
|
|
vga_writeb(arg[i], charmap + i);
|
|
|
+ cond_resched();
|
|
|
+ }
|
|
|
else
|
|
|
- for (i = 0; i < cmapsz; i++)
|
|
|
+ for (i = 0; i < cmapsz; i++) {
|
|
|
arg[i] = vga_readb(charmap + i);
|
|
|
+ cond_resched();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|