Hi,
I sent a similar e-mail yesterday but I think it didn't get through.
I have a working version of the netboot support in grub2. I can issue
commands like (seeking in file is not yet possible):
cat (nd0)test.txt
linux (nd0)linux24
but depending on where in the code I free my data blocks, I sometimes
get a "free magic is broken" fatal error msg from grub_free().
I found out that if I use the grub_printf() function just before the
call to grub_free(), the problem disappears.
That is to say that in my grub_net_close function (the close file
function associated with the net binding file system), I do something like:
struct grub_netfs_data * priv = (struct grub_netfs_data *) file->data;
struct grub_netfs_block *pp, * p = priv->head;
grub_printf("FREEING\n");
if (p)
pp = p->next;
while (p) {
if ((p->data)){
grub_free(p->data);
}
If I remove the FREEING msg, I have the panic error message, otherwise,
everything looks fine. The exact error message is
free magic is broken at 0x85900: 0x0
Does someone has an idea ? Is there some documentation available about
the mm in grub2 ?
The full code is available on this web page:
http://www.auto.ucl.ac.be/~guffens/grub2_netboot/index.html