Fixed knetbsd misbehaviour when no module is loaded
This commit is contained in:
parent
ae9eb98c7d
commit
d92b0c01d4
1 changed files with 2 additions and 7 deletions
|
@ -922,23 +922,18 @@ grub_netbsd_add_modules (void)
|
||||||
struct netbsd_module *mod;
|
struct netbsd_module *mod;
|
||||||
unsigned modcnt = 0;
|
unsigned modcnt = 0;
|
||||||
struct grub_netbsd_btinfo_modules *mods;
|
struct grub_netbsd_btinfo_modules *mods;
|
||||||
grub_addr_t last_addr = 0;
|
|
||||||
unsigned i;
|
unsigned i;
|
||||||
grub_err_t err;
|
grub_err_t err;
|
||||||
|
|
||||||
for (mod = netbsd_mods; mod; mod = mod->next)
|
for (mod = netbsd_mods; mod; mod = mod->next)
|
||||||
{
|
modcnt++;
|
||||||
if (mod->mod.addr + mod->mod.size > last_addr)
|
|
||||||
last_addr = mod->mod.addr + mod->mod.size;
|
|
||||||
modcnt++;
|
|
||||||
}
|
|
||||||
|
|
||||||
mods = grub_malloc (sizeof (*mods) + sizeof (mods->mods[0]) * modcnt);
|
mods = grub_malloc (sizeof (*mods) + sizeof (mods->mods[0]) * modcnt);
|
||||||
if (!mods)
|
if (!mods)
|
||||||
return grub_errno;
|
return grub_errno;
|
||||||
|
|
||||||
mods->num = modcnt;
|
mods->num = modcnt;
|
||||||
mods->last_addr = last_addr;
|
mods->last_addr = kern_end;
|
||||||
for (mod = netbsd_mods, i = 0; mod; i++, mod = mod->next)
|
for (mod = netbsd_mods, i = 0; mod; i++, mod = mod->next)
|
||||||
mods->mods[i] = mod->mod;
|
mods->mods[i] = mod->mod;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue