ESC[[16P crash

Pavel Machek (pavel@atrey.karlin.mff.cuni.cz)
Thu, 1 Oct 1998 22:11:28 +0200


Hi!

I've got to go home and sleep, anyway, crash happens


void fbcon_mfb_bmove(struct display *p, int sy, int sx, int dy, int
dx,
int height, int width)
{
u8 *src, *dest;
u_int rows;

prom_printf(
"fbcon_mfb_bmove\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" );
if (sx == 0 && dx == 0 && width == p->next_line) {
src = p->screen_base+sy*fontheight(p)*width;
dest = p->screen_base+dy*fontheight(p)*width;
mymemmove(dest, src, height*fontheight(p)*width);
} else if (dy <= sy) {
src = p->screen_base+sy*fontheight(p)*p->next_line+sx;
dest = p->screen_base+dy*fontheight(p)*p->next_line+dx;
for (rows = height*fontheight(p); rows--;) {
prom_printf( "branch 2 [%d,%d,%d,%d,%d
... ,%d,%d]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
p->screen_base,sy,fontheight(p),p->next_line,sx,dy,dx );

Values printed are (-big number),53,16,144,16, ..., 53,0.

HERE>> mymemmove(dest, src, width);
src += p->next_line;
dest += p->next_line;
}
} else {
src =
p->screen_base+((sy+height)*fontheight(p)-1)*p->next_line+sx;
dest =
p->screen_base+((dy+height)*fontheight(p)-1)*p->next_line+dx;
for (rows = height*fontheight(p); rows--;) {
mymemmove(dest, src, width);
src -= p->next_line;
dest -= p->next_line;
}
}
prom_printf( "done\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" );
}

Hope this helps someone to find the real problem.

Pavel

-- 
The best software in life is free (not shareware)!		Pavel
GCM d? s-: !g p?:+ au- a--@ w+ v- C++@ UL+++ L++ N++ E++ W--- M- Y- R+

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/