Ok, I have a pretty simple solution for this to both maintain speed
and support binary drivers (well, I'm not a Intel hacker, so I may be wrong
- someone should test it):
(I don't have the unmodified 90 source handy, so this is just a pseudo
patch):
arch/i386/kernel/i386_ksyms.c:
EXPORT_SYMBOL_NOVERS(__put_user_2);
EXPORT_SYMBOL_NOVERS(__put_user_4);
+ EXPORT_SYMBOL_NOVERS(__kernel_offset__);
EXPORT_SYMBOL(strncpy_from_user);
include/asm-i386/page.h:
#define __PAGE_OFFSET ((0x1000-CONFIG_MAX_MEMSIZE)<<20)
- #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
+ extern unsigned long __kernel_offset__;
+ #ifdef MODULE
+ # define PAGE_OFFSET ((unsigned long)&__kernel_offset__)
+ #else
+ # define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
+ #endif
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
Cheers,
Jakub
___________________________________________________________________
Jakub Jelinek | jj@sunsite.mff.cuni.cz | http://sunsite.mff.cuni.cz
Administrator of SunSITE Czech Republic, MFF, Charles University
___________________________________________________________________
Ultralinux - first 64bit OS to take full power of the UltraSparc
Linux version 2.1.89 on a sparc64 machine (498.80 BogoMips).
___________________________________________________________________
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu