[Hotplug_sig] Re: [Lhms-devel] broken out migration patches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2005-01-07 at 10:48 -0800, Mark Wong wrote:
> I gave this set of patches a try and got the following booting, I'll
> attached my .config:
> 
> ------------[ cut here ]------------
> kernel BUG at include/linux/nonlinear.h:99!

This is usually caused by something doing __pa() or phys_to_virt() of
"highmem".  There is no valid address there, and nonlinear.h catches
that, by design.  You need to feed it a valid address instead.  What I
do most of the time is something like this:

-	if (foo < __pa(high_memory))
+	if (foo <= __pa(high_memory-1))

I don't know exactly what the problem is because the debugging messages
that I added for nonlinear are chopped off.  I know the bug text says to
"cut here", but the messages above that are actually much more important
than the bug text itself.  Please try to include some dmesg context in
all bug reports, especially with development code.  There's debugging
gold in those extra lines.

static inline unsigned long
__pa(const void *ptr_addr)
{
        unsigned long addr = (unsigned long)ptr_addr;
        unsigned long section = addr_to_section(__boot_pa(addr));

        if(mem_section[section].phys_section == INVALID_SECTION) {
                printk("%s(%p):\n", __func__, ptr_addr);
                printk("\tmem_section[%ld]: INVALID\n", section);
                BUG();
        }
        return section_to_addr(mem_section[section].phys_section) |
                section_offset(addr);
}


-- Dave


[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux