On 08 Mar 2003 18:46:22 +0000
Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> On Sat, 2003-03-08 at 17:18, Stephan von Krawczynski wrote:
> > Hello all,
> >
> > Can any kind soul please tell me what "hm, page xxxx reserved twice" means?
> > And additionally: is there any magic involved in getting a serial console
> > working? There seems no way to make it work on below system. All "echo
> > >/dev/ttyS0 test"
> > do work, but no console output whatsoever visible...
>
> The page reserved twice is just a warning, in this case its harmless and
> really its code that wants tidying up
Hm, from looking at the code (mm/bootmem.c), I would say, that:
static void __init reserve_bootmem_core(bootmem_data_t *bdata, unsigned long
addr, unsigned long size)
{
unsigned long i;
/*
* round up, partially reserved pages are considered
* fully reserved.
*/
unsigned long sidx = (addr - bdata->node_boot_start)/PAGE_SIZE;
unsigned long eidx = (addr + size - bdata->node_boot_start +
PAGE_SIZE-1)/PAGE_SIZE;
unsigned long end = (addr + size + PAGE_SIZE-1)/PAGE_SIZE;
if (!size) BUG();
if (sidx < 0)
BUG();
Can sidx < 0 happen? sidx is unsigned long... Shouldn't "(addr <
bdata->node_boot_start)" be checked instead which would implicitely check eidx,
too. Or not?
if (eidx < 0)
BUG();
s.a. ...
if (sidx >= eidx)
BUG();
if ((addr >> PAGE_SHIFT) >= bdata->node_low_pfn)
BUG();
if (end > bdata->node_low_pfn)
BUG();
for (i = sidx; i < eidx; i++)
if (test_and_set_bit(i, bdata->node_bootmem_map))
printk("hm, page %08lx reserved twice.\n",
i*PAGE_SIZE);
}
Just as a note ... not really important, though.
Regards,
Stephan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sat Mar 15 2003 - 22:00:15 EST