64bit kernel & nfs module: Global Offset Table overflow (used 1068, allowed 1023)
With a 64bit Kernel (git head):
c3000:/home/cvs# modprobe nfs FATAL: Error inserting nfs (/lib/modules/2.6.19-rc2-pa0/kernel/fs/nfs/nfs.ko): Invalid argument
dmesg says:
nfs: Global Offset Table overflow (used 1068, allowed 1023)
In the source code arch/parisc/kernel/module.c I found:
/* Maximum number of GOT entries. We use a long displacement ldd from
* the bottom of the table, which has a maximum signed displacement of
* 0x3fff; however, since we're only going forward, this becomes
* 0x1fff, and thus, since each GOT entry is 8 bytes long we can have
* at most 1023 entries */
#define MAX_GOTS 1023
Since I don't have any real idea about GOT and modules in general:
Isn't it possible to increase this number for 64bit kernels ?
Helge
_______________________________________________
parisc-linux mailing list
[email protected]
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
Quoted 18 lines · Helge Deller
With a 64bit Kernel (git head):
c3000:/home/cvs# modprobe nfs FATAL: Error inserting nfs (/lib/modules/2.6.19-rc2-pa0/kernel/fs/nfs/nfs.ko): Invalid argumentdmesg says:
nfs: Global Offset Table overflow (used 1068, allowed 1023)In the source code
arch/parisc/kernel/module.cI found:/* Maximum number of GOT entries. We use a long displacement ldd from
* the bottom of the table, which has a maximum signed displacement of
*0x3fff; however, since we're only going forward, this becomes
*0x1fff, and thus, since each GOT entry is 8 bytes long we can have
* at most 1023 entries */
#defineMAX_GOTS1023
Quoted 2 lines
Since I don't have any real idea about GOT and modules in general:
Isn't it possible to increase this number for 64bit kernels ?
We'd need to make the GOT register point 0x2000 above where it currently does. Then we could use a signed +0x1fff / -0x2000 offset.
I have no idea how to make this happen.