Ok... The problem is with grub_errno. There might be other cases where
this problem shows up too. But with font manager this is easy to see.

In my testerr3 testing function (in video.c) I added simple:

  grub_errno = GRUB_ERR_NOT_IMPLEMENTED_YET;
  grub_printf("error: no error :)\n");

Now it corrupted first 'e' character over there.

If I set grub_errno to zero, it outputted correctly. So I started to
think what is the real cause for this. I modified my video driver to
only set grub_errno when there is an real error situation. And the
behavior changed a bit, after setting up grub_errno to non-zero every
character got corrupted until the prompt came.

Now only reason to corrupt this is that something goes to different code
path because grub_errno is set. And this something is most likely the
disk/file system subsystem. Now this is also a problem if there is any
other disk operation done and an error is being set.

Font manager failed because it could not read disk for some reason.

Now I am open for ideas how and where to fix this problem.



_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to