I've noticed since moving to 2.6.x that none of my binary modules would
load correctly.
After reading that CONFIG_REGPARAM was the culprit I disabled it but to
my surprise nothing changed.
Come to find out that in "arch/i386/Makefile":
CFLAGS += -pipe -mregparm=3 -msoft-float -fno-builtin-sprintf -fno-
builtin-log2 -fno-builtin-puts
You'll notice "-mregparm=3"?
After removing this compiler flag my binary modules began to load
correctly.
Anyone care to comment on this?
Earle Nietzel
Here is what the kernel oops looks like with with "-mregparm=3":
Unable to handle kernel paging request at virtual address e0a18ab4
printing eip:
e0a64a58
*pde = 170fc2a5
Oops: 0000 [#1]
CPU: 1
EIP: 0060:[<e0a64a58>] Tainted: PF
EFLAGS: 00010246
EIP is at firegl_init+0x40/0xf6 [fglrx]
eax: e0a891e0 ebx: e0a18ab4 ecx: 00000002 edx: dead4ead
esi: e0a893a0 edi: e0a89210 ebp: c033ebb8 esp: def79f58
ds: 007b es: 007b ss: 0068
Process modprobe (pid: 761, threadinfo=def78000 task=df166000)
Stack: 00000012 00000000 00000000 e0a891e0 e0a88980 e0a891e0 e0a88980
e0807280
e0a18ab4 00000246 09289088 00000000 c032e618 b7e77008 c033ebd8
c033ebd8
c033ebb8 c01450a6 c016bc7c df505578 df5055a0 00000000 b7e77008
bff73658
Call Trace:
[<e0807280>] firegl_init_module+0x110/0x1b0 [fglrx]
[<c01450a6>] sys_init_module+0x136/0x290
[<c016bc7c>] sys_close+0x7c/0xf0
[<c010bc3f>] syscall_call+0x7/0xb
Code: 81 3b 00 00 02 10 74 11 c7 44 24 04 03 7b a7 e0 c7 04 24 40