Subject: Re: modules in kernel 2.2.14

From: Ralf Baechle <[email-masked]>
Date: Wed, 6 Sep 2000 10:53:29 +0200

On Tue, Sep 05, 2000 at 02:39:44PM -0400, Rabeeh Khoury wrote:

> module.o: unresolved symbol _gp_disp
> 
> Where this symbol missing, in the kernel or in the module ??!!

Nowhere - there should be no reference to it.

> Did any one encounter this kind of problem ? or have any alternative
> solution ?

Compile your module with the same flags as the kernel, especially use
-fno-pic -mno-abicalls.

  Ralf

---

From: Ralf Baechle <[email-masked]>
Date: Fri, 8 Sep 2000 06:04:12 +0200

On Thu, Sep 07, 2000 at 02:25:20PM -0400, Rabeeh Khoury wrote:

> I'm running kernel 2.2.14 and i'm trying inserting modules.
> 
> In the file kernel/module.c, function sys_create_module calles
> module_map which is defined as vmalloc.
> 
> calling vmalloc returns a pointer to a virtual memory address in the
> memory mapped area (in my case 0xc0000000) and the kernel had an
> exception for accessing this address.

Which means that your TLB exception handlers, cache handling or something
in that area is busted, I recommend to fix that first.

> my work around was defining the following in kernel/module.c
> 
> #define module_map      kmalloc
> #define module_unmap    kfree
> 
> and it worked fine.
> 
> Is this work around sufficient ?

It's ok but can be pretty wasteful on memory.  It also will only work
for modules upto 128kb size.  Also if choose this fix you should delete
-mlong-calls from MODFLAGS in arch/mips/Makefile as an additional
optimization.

  Ralf