Re: 2.5.59 vmlinux.lds.S change broke modules

Russell King (rmk@arm.linux.org.uk)
Fri, 17 Jan 2003 13:56:38 +0000


On Fri, Jan 17, 2003 at 01:55:21PM +0100, Mikael Pettersson wrote:
> This oops occurs for every module, not just af_packet.ko, at
> resolve_symbol()'s first call to __find_symbol().
>
> What happens is that __find_symbol() oopses because the kernel's
> symbol table is in la-la land. (Note the bogus kernel adress
> 2220c021 it tried to dereference above.)
>
> Reverting 2.5.59's patch to arch/i386/vmlinux.lds.S cured the
> problem and modules now load correctly for me.
>
> I don't know if this is a problem also for non-i386 archs.

Well:

__start___ksymtab = .; \
__ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \
*(__ksymtab) \
} \
__stop___ksymtab = .; \

breaks on some ARM binutils (from a couple of years ago.) The most
reliable way we've found in with ARM binutils is to place the symbols
inside the section - this appears to work 100% every single time and
I've never had any reports of failure (whereas I did with the symbols
outside as above.)

On the topic of these changes, I'd prefer it if people didn't silently
run around making random stuff generic when there are subtle differences
between each architecture version without:

1. querying why things are different.
2. waiting a reasonable time for replies to why things are different.
3. copying such changes to the architecture maintainers for review
in case steps 1 and 2 failed.

Unfortunately, it seems that the BK disease is growing and seems to
be killing the review process, as some people here predicted it
would. ;(

-- 
Russell King (rmk@arm.linux.org.uk)                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html

- 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/